Qu'est-ce qu'une pile de test continue
Une pile de test continue connecte chaque étape du test de fabrication en un seul workflow intégré : écrire les tests, les déployer sur les stations, les exécuter en production, collecter les données et analyser les résultats. Au lieu d'outils déconnectés à chaque étape, une pile continue fait remonter les données de production vers le développement des tests, créant une boucle qui améliore la qualité des tests au fil du temps.
Le problème de la pile fragmentée
La plupart des opérations de test de fabrication ressemblent à ceci :
| Étape | Outil | Format des données | Connexion à l'étape suivante |
|---|---|---|---|
| Écrire les tests | Éditeur de texte ou IDE | Fichiers Python/LabVIEW | Copie manuelle vers la station |
| Déployer sur les stations | Clé USB ou dossier partagé | Exécutable ou script | Aucune |
| Exécuter les tests | Exécutif de test (OpenHTF, TestStand) | Format interne | Export CSV ou base de données locale |
| Stocker les résultats | Serveur de fichiers ou tableur | CSV, Excel | Génération manuelle de rapports |
| Analyser | Excel, scripts personnalisés | Graphiques, tableaux croisés dynamiques | Email vers l'ingénierie |
| Améliorer | L'ingénieur lit le rapport, met à jour le test | Retour à l'étape 1 | Manuel, différé |
Chaque transfert entre les étapes est manuel. Les données changent de format. Le contexte est perdu. La boucle de retour entre les données de production et l'amélioration des tests prend des semaines ou des mois.
La pile continue
Une pile de test continue élimine les transferts :
| Étape | Fonctionnement | Boucle de retour |
|---|---|---|
| Écrire les tests | Scripts Python dans Git | Les données de défaillance en production informent sur les prochains tests |
| Déployer sur les stations | pip install ou Docker pull | Versionné, reproductible |
| Exécuter les tests | OpenHTF exécute les phases, diffuse les résultats | Interface opérateur en temps réel |
| Stocker les résultats | Envoi automatique vers TofuPilot | Structuré, recherchable, traçable |
| Analyser | Tableaux de bord en temps réel, alertes automatiques | Visibilité immédiate |
| Améliorer | L'ingénieur voit les données, met à jour le test, pousse vers Git | En heures, pas en semaines |
La différence clé : les données circulent automatiquement de l'exécution vers l'analyse, et les enseignements remontent vers le développement. Il n'y a pas d'étape d'export manuelle, pas de traitement Excel, pas de rapports envoyés par email.
Composants d'une pile de test continue
| Composant | Objectif | Option open source |
|---|---|---|
| Framework de test | Séquencer et exécuter les phases de test | OpenHTF, pytest |
| Contrôle de version | Suivre les modifications des scripts de test | Git |
| Gestion de paquets | Déployer les scripts de test sur les stations | pip, Docker |
| Plateforme de données | Stocker et interroger les résultats de test | TofuPilot |
| Interface opérateur | Interface de production | Streaming TofuPilot |
| Analytique | Rendement, SPC, Pareto, tendances | TofuPilot Analytics |
| Alertes | Notifier en cas de baisse de rendement ou de dérive | Alertes TofuPilot |
Prérequis
- Python 3.10+
- OpenHTF installé (
pip install openhtf) - SDK Python TofuPilot installé (
pip install tofupilot) - Git pour le contrôle de version
Étape 1 : Écrire les tests dans Git
Conservez les scripts de test dans un dépôt Git. Chaque modification est suivie, révisable et réversible.
import openhtf as htf
from openhtf.util import units
@htf.measures(
htf.Measurement("output_voltage_V")
.in_range(minimum=4.9, maximum=5.1)
.with_units(units.VOLT),
htf.Measurement("current_draw_mA")
.in_range(minimum=90, maximum=110)
.with_units(units.MILLIAMPERE),
)
def phase_electrical(test):
"""Test électrique de production."""
test.measurements.output_voltage_V = 5.01
test.measurements.current_draw_mA = 99.3Étape 2 : Déployer avec pip
Empaquetez vos tests sous forme de package Python. Les stations installent ou mettent à jour avec une seule commande.
pip install --upgrade your-test-packageCela remplace le workflow par clé USB. Chaque station exécute la même version. Les mises à jour sont traçables.
Étape 3 : Diffuser les résultats vers TofuPilot
Connectez le test à TofuPilot. Les résultats circulent automatiquement depuis chaque station vers une plateforme centralisée.
from tofupilot.openhtf import TofuPilot
test = htf.Test(phase_electrical)
with TofuPilot(test):
test.execute(test_start=lambda: input("Scan serial: "))Étape 4 : Fermer la boucle
La partie continue : utiliser les données de production pour améliorer les tests.
| Signal dans TofuPilot | Action |
|---|---|
| Phase avec 0% de taux de défaillance sur 10K unités | Envisager de la retirer du test de production |
| Mesure constamment à 99% de la limite | Investiguer la marge de conception, ajuster la limite |
| Baisse de rendement après mise à jour du script de test | Identifier le changement avec git blame, revenir en arrière si nécessaire |
| Nouveau mode de défaillance apparu | Ajouter une phase de test pour le détecter |
| La station 3 a un rendement inférieur aux stations 1-2 | Investiguer le montage ou l'équipement de la station 3 |
Chaque action se traduit par une modification de code dans Git, un nouveau déploiement sur les stations, et le cycle continue. La pile est continue parce que les données circulent en boucle, pas en ligne droite.
Pile continue vs solutions ponctuelles
| Approche | Avantages | Inconvénients |
|---|---|---|
| Solutions ponctuelles (TestStand + base de données personnalisée + Excel) | Chaque outil est le meilleur pour son étape | Pas d'intégration, transferts manuels, silos de données |
| Pile continue (OpenHTF + Git + TofuPilot) | Flux de données intégré, boucles de retour rapides | Nécessite des décisions d'architecture en amont |
| Tout construit en interne | Parfaitement adapté | Coûteux à construire et à maintenir |
L'approche de la pile continue échange une certaine flexibilité par outil contre une intégration de bout en bout. Le retour sur investissement provient de boucles de retour plus rapides : lorsque vous pouvez passer de « le rendement a baissé » à « cause racine identifiée » puis à « correctif déployé » en heures au lieu de semaines, l'investissement se rentabilise rapidement.