Traçabilité des tests DO-178C avec TofuPilot
La DO-178C (Software Considerations in Airborne Systems and Equipment Certification) exige une traçabilité complète des exigences aux cas de test, puis aux résultats de test. Pour les systèmes intégrant matériel et logiciel, cela signifie relier chaque mesure de test à l'exigence qu'elle vérifie. TofuPilot fournit la couche de données de test structurées.
DO-178C et tests
La DO-178C définit cinq niveaux d'assurance de conception (DAL), de A (catastrophique) à E (sans effet sur la sécurité). Les niveaux supérieurs exigent des tests et une documentation plus rigoureux.
| DAL | Condition de défaillance | Rigueur des tests |
|---|---|---|
| A | Catastrophique | Couverture MC/DC complète, indépendance |
| B | Dangereuse | Couverture complète des décisions |
| C | Majeure | Couverture complète des instructions |
| D | Mineure | Tests de base |
| E | Sans effet | Minimal |
Quel que soit le DAL, tous les niveaux exigent une traçabilité entre exigences, cas de test et résultats de test.
La chaîne de traçabilité
Exigences → Cas de test → Procédures de test → Résultats de test
↓ ↓ ↓ ↓
DOORS Plan de Procédure Résultats
ou Jama test TofuPilot TofuPilot
TofuPilot gère la moitié droite : les procédures de test (définies comme des identifiants de procédure avec des étapes et des mesures) et les résultats de test (données d'exécution réelles avec pass/fail).
Associer les exigences aux procédures de test
Utilisez une convention de nommage cohérente qui relie les procédures TofuPilot aux exigences.
from tofupilot import TofuPilotClient
client = TofuPilotClient()
# L'identifiant de procédure inclut la référence de l'exigence
client.create_run(
procedure_id="TC-SW-REQ-042-AIRSPEED-COMPUTATION",
unit_under_test={
"serial_number": "ADC-UNIT-007",
"part_number": "AIR-DATA-COMPUTER-V2",
},
run_passed=True,
steps=[{
"name": "Airspeed Computation Accuracy",
"step_type": "measurement",
"status": True,
"measurements": [
{"name": "indicated_airspeed_error_kts", "value": 0.8, "unit": "kts", "limit_high": 2.0},
{"name": "true_airspeed_error_kts", "value": 1.2, "unit": "kts", "limit_high": 3.0},
{"name": "mach_number_error", "value": 0.002, "unit": "Mach", "limit_high": 0.005},
],
}, {
"name": "Airspeed Range Verification",
"step_type": "measurement",
"status": True,
"measurements": [
{"name": "min_airspeed_kts", "value": 30, "unit": "kts", "limit_high": 40},
{"name": "max_airspeed_kts", "value": 450, "unit": "kts", "limit_low": 400},
],
}],
)Matrice de traçabilité des exigences
| ID Exigence | Exigence | Procédure de test | Mesure TofuPilot | Limite |
|---|---|---|---|---|
| SW-REQ-042 | Précision du calcul de vitesse air < 2 kts | TC-SW-REQ-042 | indicated_airspeed_error_kts | < 2,0 kts |
| SW-REQ-043 | Précision de la vitesse vraie < 3 kts | TC-SW-REQ-042 | true_airspeed_error_kts | < 3,0 kts |
| SW-REQ-044 | Précision du calcul Mach < 0,005 | TC-SW-REQ-042 | mach_number_error | < 0,005 |
| SW-REQ-045 | Fonctionnement de 40 à 400 kts | TC-SW-REQ-042 | min/max_airspeed_kts | 40/400 |
Tests d'intégration matériel-logiciel
La section 6.4 de la DO-178C couvre les tests d'intégration matériel/logiciel. Ces tests vérifient que le logiciel fonctionne correctement sur le matériel cible.
# Test d'intégration matériel/logiciel
client.create_run(
procedure_id="HWSW-INT-ADC-ARINC429",
unit_under_test={"serial_number": "ADC-UNIT-007"},
run_passed=True,
steps=[{
"name": "ARINC 429 Output Verification",
"step_type": "measurement",
"status": True,
"measurements": [
{"name": "label_airspeed_rate_hz", "value": 25.0, "unit": "Hz", "limit_low": 24.5, "limit_high": 25.5},
{"name": "label_altitude_rate_hz", "value": 12.5, "unit": "Hz", "limit_low": 12.0, "limit_high": 13.0},
{"name": "ssm_status_normal", "value": 1, "unit": "bool", "limit_low": 1},
{"name": "data_latency_ms", "value": 18.2, "unit": "ms", "limit_high": 40.0},
],
}, {
"name": "Watchdog Timer Verification",
"step_type": "measurement",
"status": True,
"measurements": [
{"name": "watchdog_timeout_ms", "value": 50, "unit": "ms", "limit_low": 45, "limit_high": 55},
{"name": "reset_recovery_ms", "value": 120, "unit": "ms", "limit_high": 200},
],
}],
)Tests de régression
Lorsque le logiciel est modifié, la DO-178C exige des tests de régression pour vérifier l'absence d'effets indésirables. TofuPilot rend le suivi de régression simple :
- Exécuter la suite de tests complète sur la nouvelle version du logiciel
- Comparer les résultats avec la référence (version précédente) dans TofuPilot
- Signaler toute mesure qui a changé au-delà de la tolérance attendue
# Comparer les résultats de test entre les versions logicielles
baseline_runs = client.get_runs(
procedure_id="TC-SW-REQ-042-AIRSPEED-COMPUTATION",
limit=10,
)
# Filtrer par version logicielle via les métadonnées de l'unité ou la plage de dates
# Comparer les valeurs de mesure entre les versionsSi une mesure qui était à 0,8 kts d'erreur en version 2.1 passe à 1,9 kts d'erreur en version 2.2, le test de régression le détecte avant la soumission pour certification.
Dossier de preuves pour le DER/auditeur
Lors de la présentation des preuves de test à un DER (Designated Engineering Representative) ou à l'autorité de certification :
| Document | Source |
|---|---|
| Matrice de traçabilité des exigences | Votre outil d'exigences + mapping des procédures TofuPilot |
| Procédures de test | Définitions des procédures TofuPilot avec étapes et limites |
| Résultats de test | Données d'exécution TofuPilot avec mesures et pass/fail |
| Analyse de couverture des tests | Correspondance entre exigences et procédures TofuPilot |
| Rapport de test de régression | Comparaison TofuPilot entre les versions logicielles |
TofuPilot fournit les preuves de test structurées et horodatées. Votre dossier de certification référence les données TofuPilot comme l'enregistrement de test faisant autorité.
Tests matériels DO-254
Pour la DO-254 (assurance matérielle), les mêmes principes de traçabilité s'appliquent. Les exigences matérielles sont associées aux procédures de test matériel, qui sont associées aux résultats de test dans TofuPilot.
Types de tests DO-254 couramment suivis dans TofuPilot :
- Vérification fonctionnelle des FPGA
- Qualification environnementale
- Conformité EMI/EMC
- Caractérisation des alimentations
- Vérification des performances et du timing
Utilisez la même convention de nommage des procédures (identifiant d'exigence dans l'identifiant de procédure) pour une traçabilité cohérente entre les tests matériels et logiciels.