Scaling & Monitoring

Validation des tests à grande échelle

Découvrez comment valider votre processus de test de production à grande échelle en utilisant l'analyse statistique, le suivi du Cpk et la surveillance du.

JJulien Buteau
advanced11 min de lecture14 mars 2026

Validation des tests de production à grande échelle avec TofuPilot

Faire fonctionner un test sur 10 prototypes est différent de le faire tourner sur 10 000 unités de production. À grande échelle, vous devez valider non seulement le produit, mais le processus de test lui-même. Vos limites sont-elles correctes ? Votre test est-il répétable ? Détectez-vous les vrais défauts sans créer de faux échecs ? Les analyses de TofuPilot aident à répondre à ces questions.

Ce que signifie la validation des tests de production

La validation des tests de production (PVT) répond à trois questions :

  1. Les limites de test sont-elles correctes ? Des limites trop serrées causent de faux échecs. Des limites trop larges laissent passer des unités défectueuses.
  2. Le test est-il répétable ? La même unité testée deux fois doit donner le même résultat.
  3. Le test est-il efficace ? Détecte-t-il les défauts qu'il est censé détecter ?

Étape 1 : Analyser les distributions de mesures

Après avoir exécuté votre test sur les 100 à 200 premières unités de production, analysez les distributions de mesures dans TofuPilot.

distribution_analysis.py
import numpy as np
from tofupilot import TofuPilotClient

client = TofuPilotClient()

runs = client.get_runs(
    procedure_id="FINAL-FUNCTIONAL-V3",
    limit=200,
)

# Extraire les valeurs de mesure
vcc_values = []
for run in runs:
    for step in run.get("steps", []):
        for m in step.get("measurements", []):
            if m["name"] == "vcc_3v3":
                vcc_values.append(m["value"])

values = np.array(vcc_values)
print(f"N:      {len(values)}")
print(f"Moyenne: {np.mean(values):.4f} V")
print(f"Écart-type: {np.std(values, ddof=1):.4f} V")
print(f"Min:    {np.min(values):.4f} V")
print(f"Max:    {np.max(values):.4f} V")
print(f"Étendue: {np.max(values) - np.min(values):.4f} V")

Ce qu'il faut observer :

ObservationAction
Distribution centrée dans les limites, Cpk > 1,33Les limites sont bien définies
Distribution asymétrique vers une limiteEnquêter sur le biais du procédé
Distribution plus large que prévuResserrer le procédé ou élargir les limites
Valeurs aberrantes au-delà de 3 sigmaExaminer ces unités spécifiques
Distribution bimodaleDeux populations, probablement des lots mélangés

Étape 2 : Calculer la capabilité du procédé

Le Cpk indique dans quelle mesure votre procédé s'inscrit dans les limites de test. TofuPilot fournit les données de mesure ; vous calculez le Cpk.

cpk_validation.py
import numpy as np

def calculate_cpk(values, lsl, usl):
    mean = np.mean(values)
    std = np.std(values, ddof=1)
    cpu = (usl - mean) / (3 * std)
    cpl = (mean - lsl) / (3 * std)
    cpk = min(cpu, cpl)
    return cpk, mean, std

# Données issues de TofuPilot
vcc_values = [3.30, 3.31, 3.29, 3.32, 3.30, 3.31, 3.29, 3.30, 3.33, 3.31]
lsl, usl = 3.25, 3.35

cpk, mean, std = calculate_cpk(vcc_values, lsl, usl)
print(f"Cpk : {cpk:.2f}")
print(f"Moyenne : {mean:.3f} V")
print(f"Écart-type : {std:.4f} V")

if cpk >= 1.67:
    print("Excellente capabilité du procédé")
elif cpk >= 1.33:
    print("Capabilité du procédé acceptable")
elif cpk >= 1.0:
    print("Marginale. Envisager de resserrer le procédé ou d'élargir les limites")
else:
    print("Capabilité insuffisante. Action requise")
CpkSignificationDPMO (approx.)
2,0Excellent0,002
1,67Très bon0,6
1,33Bon63
1,0Marginal2 700
0,67Insuffisant45 500

Étape 3 : Valider la répétabilité du test (R&R de jauge)

Testez la même unité plusieurs fois pour mesurer la répétabilité de votre système de test.

repeatability_test.py
from tofupilot import TofuPilotClient

client = TofuPilotClient()

# Tester la même unité 30 fois
serial = "GRR-GOLDEN-001"
for i in range(30):
    vcc = measure_voltage()
    client.create_run(
        procedure_id="GRR-FUNCTIONAL-V3",
        unit_under_test={"serial_number": serial},
        run_passed=True,
        steps=[{
            "name": "Power Rail",
            "step_type": "measurement",
            "status": True,
            "measurements": [{
                "name": "vcc_3v3",
                "value": vcc,
                "unit": "V",
                "limit_low": 3.25,
                "limit_high": 3.35,
            }],
        }],
    )

Après 30 tests, analysez la dispersion dans TofuPilot :

MétriqueObjectifSignification
R&R % de la tolérance< 10 %Excellent système de mesure
R&R % de la tolérance10-30 %Acceptable, à surveiller
R&R % de la tolérance> 30 %Le système de mesure doit être amélioré

Si la mesure de votre test varie de 0,04 V sur la même unité et que votre tolérance est de 0,10 V, cela représente 40 % de R&R. Votre test est trop bruité pour distinguer de manière fiable les bonnes unités des mauvaises.

Étape 4 : Optimiser les limites de test

Utilisez les données de production pour optimiser les limites. L'objectif : détecter les vrais défauts sans rejeter les bonnes unités.

Resserrer les limites

Si le Cpk > 2,0 et que vous n'observez aucun faux échec, vos limites sont peut-être trop larges. Des limites plus serrées détectent les unités marginales avant qu'elles ne deviennent des défaillances terrain.

Élargir les limites

Si le Cpk < 1,0 et que vous observez des faux échecs (des unités qui échouent au test mais fonctionnent parfaitement sur le terrain), vos limites sont trop serrées pour la capabilité actuelle de votre procédé.

Limites dynamiques

Certaines équipes utilisent les données TofuPilot pour définir les limites en fonction de la distribution de production :

dynamic_limits.py
# Calculer les limites à partir des données de production
mean = 3.310
std = 0.015

# Limites à 4 sigma pour un Cpk = 1,33
dynamic_low = mean - 4 * std   # 3.250
dynamic_high = mean + 4 * std  # 3.370

Étape 5 : Surveiller à grande échelle

Une fois votre test validé, surveillez-le en continu. La montée en charge introduit de nouvelles variables :

  • Différents opérateurs
  • Différents lots de composants au fil des mois
  • Usure des fixtures sur des milliers de cycles
  • Changements environnementaux (saison, humidité)
  • Dérive de calibration des équipements

Les tableaux de bord de tendances de TofuPilot font remonter ces changements. Mettez en place une surveillance pour :

  1. Tendance du FPY : Détecter les baisses de rendement en quelques heures
  2. Tendance du Cpk : Détecter la dégradation de la capabilité du procédé en quelques jours
  3. Décalage de la moyenne des mesures : Détecter la dérive avant qu'elle ne cause des défaillances
  4. Changements du Pareto des défaillances : Détecter les nouveaux modes de défaillance précocement

Liste de contrôle de validation

Avant d'approuver un test pour la production en volume :

  • Les distributions de mesures sont normales (ou de forme attendue)
  • Cpk > 1,33 pour toutes les mesures critiques
  • R&R < 30 % pour toutes les mesures
  • Aucun faux échec sur les 200 dernières unités
  • Le test détecte les modes de défaut connus (vérifié avec des unités défectueuses connues)
  • Le temps de cycle du test respecte les exigences de débit
  • Toutes les stations produisent des résultats équivalents (corrélation inter-stations)

Plus de guides

Mettez ce guide en pratique