Le principe de Pareto dit que 80 % de vos échecs de test proviennent de 20 % de vos modes de défaillance. Si vous corrigez les deux ou trois bons problèmes, la plupart de vos problèmes de rendement disparaissent. Mais vous avez besoin de données d'échec structurées pour trouver ces problèmes, et cela commence par la façon dont vous écrivez vos tests.
Ce que l'analyse de Pareto vous apprend
Un diagramme de Pareto classe les modes de défaillance par fréquence, du plus élevé au plus bas, avec une ligne cumulative montrant quelle part du total des échecs chaque mode représente. Il répond à une question : où devez-vous passer votre temps ?
Sans diagramme de Pareto, les équipes poursuivent le dernier échec qu'elles ont vu. Avec un diagramme, vous pouvez voir que « fréquence d'horloge hors plage » cause 40 % de tous les échecs tandis que « timeout de communication » en cause 3 %. Corriger le problème d'horloge en premier vous donne 13 fois plus d'impact.
Écrire des tests avec des modes de défaillance clairs
L'analyse de Pareto ne fonctionne que si vos phases de test correspondent à des modes de défaillance distincts et diagnosticables. Une seule phase qui vérifie 15 choses produit un seul label d'échec quand l'une d'elles casse. Impossible de savoir quel sous-contrôle l'a causé.
Découpez votre test en phases qui couvrent chacune un domaine fonctionnel.
import openhtf as htf
from openhtf.util import units
from tofupilot.openhtf import TofuPilot
@htf.measures(
htf.Measurement("input_voltage")
.with_units(units.VOLT)
.in_range(minimum=4.75, maximum=5.25),
htf.Measurement("inrush_current")
.in_range(maximum=500),
)
def test_power_input(test):
test.measurements.input_voltage = 5.02
test.measurements.inrush_current = 320
@htf.measures(
htf.Measurement("rail_3v3_voltage")
.with_units(units.VOLT)
.in_range(minimum=3.135, maximum=3.465),
htf.Measurement("rail_3v3_ripple")
.in_range(maximum=50),
)
def test_3v3_regulator(test):
test.measurements.rail_3v3_voltage = 3.28
test.measurements.rail_3v3_ripple = 22
@htf.measures(
htf.Measurement("clock_frequency")
.in_range(minimum=7.99, maximum=8.01),
htf.Measurement("clock_jitter")
.in_range(maximum=100),
)
def test_clock(test):
test.measurements.clock_frequency = 8.003
test.measurements.clock_jitter = 45
@htf.measures(
htf.Measurement("spi_loopback_pass"),
htf.Measurement("spi_throughput")
.in_range(minimum=900),
)
def test_spi_interface(test):
test.measurements.spi_loopback_pass = True
test.measurements.spi_throughput = 980
@htf.measures(
htf.Measurement("adc_offset_error")
.in_range(minimum=-2, maximum=2),
htf.Measurement("adc_gain_error_pct")
.in_range(minimum=-0.5, maximum=0.5),
htf.Measurement("adc_snr")
.in_range(minimum=60),
)
def test_adc_accuracy(test):
test.measurements.adc_offset_error = 0.8
test.measurements.adc_gain_error_pct = -0.12
test.measurements.adc_snr = 67.3
def main():
test = htf.Test(
test_power_input,
test_3v3_regulator,
test_clock,
test_spi_interface,
test_adc_accuracy,
)
with TofuPilot(test):
test.execute(test_start=lambda: "SN-2026-01580")
if __name__ == "__main__":
main()Chaque phase couvre un bloc fonctionnel : entrée d'alimentation, régulation de tension, horloge, communication SPI et précision ADC. Quand une unité échoue, l'échec est attribué à une phase et une mesure spécifiques. TofuPilot utilise cette structure pour construire le diagramme de Pareto.
Lire le diagramme de Pareto des défaillances de TofuPilot
Le tableau de bord analytique de TofuPilot inclut un diagramme de Pareto des défaillances qui se met à jour en temps réel à mesure que les données de test arrivent. Voici comment l'utiliser.
Sélectionnez votre périmètre. Filtrez par produit, station ou plage de dates. Un diagramme de Pareto pour tous les produits combinés n'est pas utile car différents produits ont des profils de défaillance différents.
Lisez les barres. Chaque barre représente un mode de défaillance (une phase de test ou une mesure spécifique qui a échoué). La barre la plus haute à gauche est votre plus gros problème.
Suivez la ligne cumulative. La ligne montre quel pourcentage du total des échecs vous avez couvert en allant de gauche à droite. Si les deux premières barres atteignent 70 % sur la ligne cumulative, corriger ces deux problèmes élimine 70 % de vos échecs.
Comparez dans le temps. Après avoir corrigé le mode de défaillance principal, consultez à nouveau le diagramme de Pareto. La distribution aura changé. Ce qui était auparavant le deuxième problème pourrait maintenant être le premier, ou un problème précédemment masqué pourrait apparaître.
Transformer les données Pareto en actions
Un diagramme de Pareto vous donne des priorités. Transformer ces priorités en corrections nécessite une approche systématique.
Pour le mode de défaillance principal
- Affichez l'histogramme de mesure dans TofuPilot pour la mesure en échec. Vérifiez si les échecs se concentrent à une limite ou se répartissent sur la plage.
- Vérifiez le Cpk. Si le Cpk est inférieur à 1,0, votre processus n'est pas capable de respecter les limites de test de manière fiable. Vous devez soit améliorer le processus, soit revoir si les limites sont trop serrées.
- Consultez l'historique unitaire de plusieurs numéros de série en échec. Échouent-ils une fois et passent au retest (problème de fixture), ou échouent-ils de manière constante (vrai défaut) ?
- Vérifiez la corrélation par station. Si les échecs se concentrent sur une station, le problème vient probablement du fixture ou de l'environnement de test, pas du produit.
Pour les échecs récurrents de faible niveau
Certains modes de défaillance représentent individuellement 2 à 5 % mais collectivement 20 à 30 % des échecs. Ce sont souvent l'usure du fixture, la dérive environnementale ou des problèmes de manipulation par l'opérateur. Traitez-les en groupe en améliorant les plannings de maintenance des fixtures et en ajoutant des phases de validation de fixture à vos tests.
À quoi ressemble un bon résultat
Un diagramme de Pareto sain n'a aucun mode de défaillance dominant au-dessus de 15-20 %. Les barres diminuent graduellement de gauche à droite, indiquant l'absence de problème systémique unique.
Si votre diagramme montre une barre dominant toutes les autres, vous avez un problème connu qui n'a pas été traité. Si le diagramme est presque plat avec de nombreuses petites barres, vos échecs sont distribués et probablement aléatoires, ce qui signifie que votre processus est bien maîtrisé et que toute amélioration supplémentaire nécessite de resserrer les tolérances ou de mettre à niveau les composants.
Revoyez le diagramme de Pareto chaque semaine pendant les phases DVT et PVT. En production, une revue mensuelle détecte les nouvelles tendances avant qu'elles ne deviennent coûteuses.