Qu'est-ce que le test de recette avec TofuPilot
Le test de recette vérifie qu'un produit respecte les critères convenus entre le fournisseur et le client avant la livraison. C'est la porte contractuelle : si l'unité passe, le client l'accepte. Ce guide couvre ce qu'implique le test de recette pour le matériel, comment construire des procédures de test de recette en Python, et comment générer des enregistrements auditables avec TofuPilot.
Types de tests de recette
| Type | Qui l'exécute | Où | Objectif |
|---|---|---|---|
| FAT (Factory Acceptance Test) | Fournisseur | Installation du fournisseur | Prouver le fonctionnement avant expédition |
| SAT (Site Acceptance Test) | Client ou fournisseur | Installation du client | Prouver le fonctionnement après installation |
| ATP (Acceptance Test Procedure) | L'un ou l'autre | L'un ou l'autre | La procédure de test documentée elle-même |
Le FAT et le SAT exécutent souvent la même procédure de test mais dans des environnements différents. L'ATP définit les étapes exactes, les mesures et les critères de réussite/échec que les deux parties ont acceptés.
Ce qui distingue le test de recette
Le test de recette n'est pas exploratoire. Chaque étape est prédéfinie, et le client examine et approuve généralement l'ATP avant le début des tests.
| Aspect | Test de recette | Test de production |
|---|---|---|
| Périmètre | Selon les exigences contractuelles | Selon la spécification de conception |
| Documentation | Rapport formel requis | Enregistrements internes |
| Témoin | Le client peut être présent | Interne uniquement |
| Critères | Limites convenues contractuellement | Limites d'ingénierie |
| Fréquence | Par lot ou par unité | Chaque unité |
La différence clé : les limites du test de recette proviennent du contrat, pas des marges d'ingénierie. Elles sont souvent plus strictes que les limites de production car le client spécifie ce dont il a besoin, pas ce que la conception peut faire.
Prérequis
- Python 3.10+
- OpenHTF installé (
pip install openhtf) - SDK Python TofuPilot installé (
pip install tofupilot)
Étape 1 : Définir les critères de recette
Associez chaque exigence de l'ATP à une mesure OpenHTF avec les limites contractuelles.
import openhtf as htf
from openhtf.util import units
@htf.measures(
htf.Measurement("output_power_W")
.in_range(minimum=95, maximum=105)
.with_units(units.WATT),
htf.Measurement("efficiency_percent")
.in_range(minimum=92)
.with_units(units.PERCENT),
)
def phase_power_output(test):
"""Section ATP 4.1 : Puissance de sortie et rendement."""
test.measurements.output_power_W = 100.3
test.measurements.efficiency_percent = 94.7
@htf.measures(
htf.Measurement("ripple_voltage_mV")
.in_range(maximum=50)
.with_units(units.MILLIVOLT),
)
def phase_output_quality(test):
"""Section ATP 4.2 : Ondulation résiduelle en pleine charge."""
test.measurements.ripple_voltage_mV = 32.1
@htf.measures(
htf.Measurement("leakage_current_uA")
.in_range(maximum=500)
.with_units(units.MICROAMPERE),
)
def phase_safety(test):
"""Section ATP 4.3 : Courant de fuite selon IEC 60950."""
test.measurements.leakage_current_uA = 120.0Étape 2 : Exécuter le test de recette
Connectez le test à TofuPilot pour que chaque résultat soit enregistré avec le numéro de série de l'unité. Cela crée l'enregistrement de traçabilité dont le client a besoin.
from tofupilot.openhtf import TofuPilot
test = htf.Test(
phase_power_output,
phase_output_quality,
phase_safety,
)
with TofuPilot(test):
test.execute(test_start=lambda: input("Scanner le numéro de série : "))Étape 3 : Générer les enregistrements de recette
TofuPilot stocke chaque mesure, limite et résultat réussite/échec par numéro de série. Ouvrez l'historique de test de l'unité pour voir :
- Enregistrement de test complet avec toutes les mesures par rapport aux limites contractuelles
- Statut réussite/échec pour chaque section de l'ATP
- Horodatages indiquant exactement quand chaque test a été exécuté
- Rapports de test exportables pour revue client et audits
Cela remplace le processus manuel de remplissage des fiches ATP et de numérisation des formulaires papier signés. Le client obtient les mêmes données dans un format consultable et auditable.
Rédiger un bon ATP
Une bonne procédure de test de recette comprend :
| Section | Contenu |
|---|---|
| Périmètre | Quel produit, quelle révision, quel contrat |
| Liste des équipements | Instruments, montages, versions logicielles |
| Environnement | Conditions de température, humidité, alimentation |
| Étapes de test | Numérotées, avec configuration exacte et résultat attendu |
| Critères de réussite/échec | Limites numériques traçables aux exigences contractuelles |
| Enregistrement des données | Ce qui est enregistré, où, et dans quel format |
Maintenez l'ATP stable. Les modifications nécessitent l'approbation du client. Versionnez l'ATP avec vos scripts de test dans Git pour que la procédure de test et le code restent synchronisés.