Compliance & Traceability

Générer des rapports de test pour audits

Structurez vos tests OpenHTF pour que TofuPilot capture des enregistrements prêts pour l'audit avec numéros de série, mesures, limites et métadonnées.

JJulien Buteau
beginner6 min de lecture14 mars 2026

Les auditeurs veulent voir que chaque unité a été testée, ce qui a été mesuré, quelles étaient les limites et si elle a réussi. TofuPilot capture tout cela automatiquement lorsque vous structurez correctement vos tests OpenHTF.

Ce que les auditeurs doivent voir

Quelle que soit la norme (ISO 9001, ISO 13485, IATF 16949, AS9100), les exigences d'audit pour les enregistrements de test partagent les mêmes éléments fondamentaux.

ÉlémentPourquoi les auditeurs le demandent
Numéro de série (DUT ID)Prouve la traçabilité vers une unité spécifique
HorodatageProuve quand le test a eu lieu
ID de stationProuve quel équipement a été utilisé
OpérateurProuve qui a exécuté le test
Mesures avec limitesProuve que des critères d'acceptation ont été appliqués
Verdict réussite/échecProuve que la décision a été enregistrée
Version firmware ou logicielProuve la configuration au moment du test

Si vos enregistrements de test manquent l'un de ces éléments, vous aurez une observation. TofuPilot les stocke tous lorsque vous les incluez dans votre exécution de test.

Écrire un test prêt pour l'audit

Un bon enregistrement de test commence par un test OpenHTF bien structuré. Incluez chaque mesure avec des limites explicites et transmettez les métadonnées dans votre exécution de test.

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

@htf.measures(
    htf.Measurement("input_resistance")
    .in_range(minimum=950, maximum=1050)
    .with_units(units.OHM),
    htf.Measurement("leakage_current")
    .in_range(maximum=0.000005)
    .with_units(units.AMPERE),
    htf.Measurement("dielectric_strength_pass")
    .equals(True),
)
def electrical_safety_test(test):
    test.measurements.input_resistance = 1002
    test.measurements.leakage_current = 0.0000013
    test.measurements.dielectric_strength_pass = True

@htf.measures(
    htf.Measurement("output_power")
    .in_range(minimum=48.0, maximum=52.0)
    .with_units(units.WATT),
    htf.Measurement("efficiency_percent")
    .in_range(minimum=89.0),
)
def performance_test(test):
    test.measurements.output_power = 50.1
    test.measurements.efficiency_percent = 92.4

def main():
    test = htf.Test(
        electrical_safety_test,
        performance_test,
        station_id="STATION-EOL-02",
    )

    with TofuPilot(test):
        test.execute(test_start=lambda: "PSU-2026-00512")

if __name__ == "__main__":
    main()

Chaque mesure est stockée avec sa valeur, ses limites et son verdict dans TofuPilot. Le numéro de série relie l'enregistrement à l'historique complet de l'unité.

Ce qui fait un bon enregistrement de test

Trois éléments distinguent un enregistrement qui satisfait les auditeurs d'un enregistrement qui suscite des questions.

Noms de mesure cohérents. Utilisez le même nom pour la même mesure partout. Si leakage_current s'appelle leak_curr sur une station et leakage_current sur une autre, vous ne pouvez pas démontrer une surveillance cohérente du processus. Choisissez un nom et tenez-vous-y.

Limites explicites sur chaque mesure. Une valeur mesurée sans limites n'est que de la donnée. Les auditeurs veulent voir que vous avez défini des critères d'acceptation avant la production, pas après. Utilisez toujours .in_range() ou .equals() sur chaque mesure.

Métadonnées significatives. Incluez l'opérateur, la station, la version firmware et tout autre contexte défini par votre système qualité. Quand un auditeur demande « qui a testé l'unité X sur quel équipement avec quel logiciel ? », vous devez avoir une réponse.

Consultation et export des enregistrements

Une fois vos tests exécutés, TofuPilot stocke l'enregistrement complet. Vous pouvez y accéder de trois façons.

Page de détail de l'exécution. Recherchez n'importe quelle unité par numéro de série dans le tableau de bord de TofuPilot. La page de détail de l'exécution affiche chaque mesure, sa valeur, ses limites, le verdict, l'horodatage, la station et toutes les métadonnées. C'est votre vue principale lors d'un audit.

Export CSV. Exportez les données d'exécution depuis le tableau de bord pour une revue hors ligne ou pour les joindre à la documentation d'audit. L'export inclut toutes les mesures, limites et métadonnées.

Accès API. Récupérez les enregistrements d'exécution de manière programmatique via l'API REST de TofuPilot à https://tofupilot.app pour l'intégration avec votre SMQ ou système de gestion documentaire. C'est utile si votre équipe qualité a besoin de générer des dossiers de lot ou des certificats de conformité.

Checklist des métadonnées

Avant de passer en production, vérifiez que vos tests capturent tout ce que votre système qualité exige. Voici une checklist de départ.

  • Numéro de série du DUT (unique par unité)
  • ID de station de test (correspond aux enregistrements d'étalonnage)
  • ID opérateur (correspond aux enregistrements de formation)
  • Version firmware/logiciel (correspond aux enregistrements de release)
  • Toutes les mesures ont des limites définies
  • Les noms de mesures sont cohérents entre les stations
  • Le nom ou l'ID de la procédure de test est inclus
  • Numéro d'ordre de fabrication ou de lot (si applicable)

Si l'un de ces éléments manque, ajoutez-le à vos définitions de mesures avant le lancement en production. Il est beaucoup plus difficile de compléter rétroactivement les données de traçabilité.

Plus de guides

Mettez ce guide en pratique