Scaling & Monitoring

Comment gérer les tests NPI avec TofuPilot

Structurez vos procédures de test à travers les phases EVT, DVT et PVT. Affinez les limites de mesure à partir des données initiales et suivez les.

JJulien Buteau
intermediate7 min de lecture14 mars 2026

L'introduction d'un nouveau produit signifie que vos procédures de test commencent larges et se resserrent à mesure que la conception mûrit. TofuPilot suit chaque version de vos tests à travers les phases EVT, DVT et PVT, pour que vous puissiez voir comment les limites ont évolué et utiliser les données de production réelles pour définir les spécifications finales.

Les besoins de test à chaque phase NPI

Chaque phase a des objectifs différents, et vos tests doivent le refléter.

PhaseObjectifApproche de test
EVTValider que la conception fonctionneLimites larges, mesures de caractérisation, collecte de données
DVTProuver la fiabilité et la conformitéLimites resserrées, tests de stress environnemental, analyse de marge
PVTConfirmer la maturité de fabricationLimites prêtes pour la production, optimisation du rendement, capabilité du processus

Pendant l'EVT, vous apprenez ce que le produit fait réellement. Pendant le PVT, vous prouvez qu'il peut être fabriqué en volume. Les procédures de test doivent évoluer en conséquence.

EVT : Caractériser avec des limites larges

En EVT, vous ne connaissez pas encore la vraie distribution de vos mesures. Définissez des limites suffisamment larges pour collecter des données sans rejeter inutilement des unités. L'objectif est la caractérisation, pas le filtrage.

test_amplifier_evt.py
import openhtf as htf
from openhtf.util import units
from tofupilot.openhtf import TofuPilot

@htf.measures(
    htf.Measurement("gain")
    .in_range(minimum=18.0, maximum=26.0)
    .doc("EVT : limites larges pour la caractérisation"),
    htf.Measurement("noise_floor")
    .in_range(maximum=-60.0)
    .doc("EVT : borne supérieure uniquement, collecte de la distribution"),
    htf.Measurement("input_impedance")
    .in_range(minimum=40.0, maximum=60.0)
    .with_units(units.OHM)
    .doc("EVT : centré sur 50 ohms nominal, tolérance large"),
)
def test_amplifier_performance(test):
    test.measurements.gain = 21.4
    test.measurements.noise_floor = -72.3
    test.measurements.input_impedance = 49.1

def main():
    test = htf.Test(
        test_amplifier_performance,
        station_id="LAB-BENCH-01",
    )
    with TofuPilot(test):
        test.execute(test_start=lambda: "AMP-EVT-0012")

if __name__ == "__main__":
    main()

Téléversez chaque exécution EVT dans TofuPilot. Même avec seulement 20 à 50 unités, les histogrammes de mesure montrent la distribution naturelle de votre conception. Ce sont ces données que vous utiliserez pour définir les limites DVT.

DVT : Resserrer les limites à partir des données EVT

Après l'EVT, vous disposez de distributions de mesure réelles dans TofuPilot. Utilisez-les pour définir des limites éclairées. Examinez l'histogramme de chaque mesure : la moyenne indique où la conception se centre, la dispersion indique la marge à accorder.

test_amplifier_dvt.py
import openhtf as htf
from openhtf.util import units
from tofupilot.openhtf import TofuPilot

@htf.measures(
    htf.Measurement("gain")
    .in_range(minimum=20.0, maximum=23.0)
    .doc("DVT : resserré d'après les données EVT, objectif Cpk > 1,33"),
    htf.Measurement("noise_floor")
    .in_range(maximum=-65.0)
    .doc("DVT : resserré d'après la distribution EVT"),
    htf.Measurement("input_impedance")
    .in_range(minimum=45.0, maximum=55.0)
    .with_units(units.OHM)
    .doc("DVT : réduit de 40-60 à 45-55 d'après le Cpk EVT"),
)
def test_amplifier_performance(test):
    test.measurements.gain = 21.2
    test.measurements.noise_floor = -73.1
    test.measurements.input_impedance = 50.3

def main():
    test = htf.Test(
        test_amplifier_performance,
        station_id="LAB-BENCH-02",
    )
    with TofuPilot(test):
        test.execute(test_start=lambda: "AMP-DVT-0087")

if __name__ == "__main__":
    main()

La limite de gain est passée de 18-26 (EVT) à 20-23 (DVT) parce que les données EVT montraient que la conception se centre naturellement autour de 21 avec une faible dispersion. Les statistiques de Cpk et de mesure de TofuPilot rendent cette analyse simple.

PVT : Verrouiller les limites prêtes pour la production

Le PVT est la dernière étape avant la production en série. Les limites doivent être suffisamment strictes pour détecter les unités défectueuses, mais pas au point de tuer le rendement sur des unités conformes. Utilisez les données DVT pour définir des limites atteignant votre objectif de Cpk.

test_amplifier_pvt.py
import openhtf as htf
from openhtf.util import units
from tofupilot.openhtf import TofuPilot

@htf.measures(
    htf.Measurement("gain")
    .in_range(minimum=20.2, maximum=22.8)
    .doc("PVT : limites de production, Cpk > 1,67"),
    htf.Measurement("noise_floor")
    .in_range(maximum=-67.0)
    .doc("PVT : limite de production avec marge"),
    htf.Measurement("input_impedance")
    .in_range(minimum=46.0, maximum=54.0)
    .with_units(units.OHM)
    .doc("PVT : limites de production finales"),
    htf.Measurement("thd_pct")
    .in_range(maximum=0.5)
    .doc("PVT : ajout du test THD pour le filtrage en production"),
)
def test_amplifier_performance(test):
    test.measurements.gain = 21.3
    test.measurements.noise_floor = -71.8
    test.measurements.input_impedance = 50.1
    test.measurements.thd_pct = 0.12

def main():
    test = htf.Test(
        test_amplifier_performance,
        station_id="SZ-L1-FCT-01",
    )
    with TofuPilot(test):
        test.execute(test_start=lambda: "AMP-PVT-0341")

if __name__ == "__main__":
    main()

Remarquez que la version PVT ajoute aussi une nouvelle mesure (thd_pct) qui n'existait pas en EVT ou DVT. À mesure que vous en apprenez plus sur le produit par les tests, vous ajoutez des tests qui détectent les modes de défaillance découverts pendant la validation.

Versionner l'évolution de vos procédures

Conservez chaque phase NPI en gestion de versions. Taguez les releases pour pouvoir retracer quelles limites étaient actives quand chaque unité a été testée.

v0.1.0 EVT - limites initiales de caractérisation v0.2.0 EVT - ajout de la mesure du plancher de bruit v1.0.0 DVT - resserrement de toutes les limites d'après les données EVT v1.1.0 DVT - ajout de la séquence de stress environnemental v2.0.0 PVT - limites prêtes pour la production, ajout du THD v2.0.1 PVT - ajustement de la limite d'impédance après essai en ligne

TofuPilot suit quelle version de procédure a produit chaque exécution. Vous pouvez filtrer par version pour comparer le rendement entre les limites EVT et DVT, ou pour voir l'impact d'un changement de limite spécifique.

Utiliser les données TofuPilot pour piloter les décisions de limites

Le principal avantage de téléverser chaque exécution de chaque phase est que TofuPilot construit une image complète du comportement de votre produit au fil du temps.

  • Les histogrammes EVT montrent la distribution naturelle de la conception avant toute optimisation des limites
  • Les valeurs de Cpk DVT vous indiquent si vos limites resserrées offrent une marge suffisante pour la production en volume
  • Les tendances de rendement PVT confirment que les limites fonctionnent sur de vraies lignes de production, pas seulement sur des bancs de laboratoire
  • La comparaison inter-phases montre comment la distribution des mesures a changé à mesure que la conception et le processus ont mûri

Ne définissez pas les limites dans un tableur en espérant que tout ira bien. Utilisez les données de mesure réelles de chaque phase NPI pour prendre des décisions éclairées. TofuPilot conserve tout au même endroit, de votre premier prototype EVT jusqu'aux essais en ligne PVT et au-delà vers la production en série.

Transition vers la production en série

Quand le PVT est terminé et les limites verrouillées, la même procédure de test et l'intégration TofuPilot passent directement en production. Il n'y a pas de rupture de transmission. L'équipe de production hérite :

  • De procédures de test validées avec des limites basées sur les données
  • De distributions de mesure historiques pour la comparaison
  • De configurations de stations et conventions de nommage établies
  • De seuils d'alerte affinés pendant les essais en ligne PVT

Les données NPI restent dans TofuPilot aux côtés des données de production, offrant un enregistrement continu du premier prototype à la millionième unité.

Plus de guides

Mettez ce guide en pratique