220 likes | 313 Views
Introduction. Pourquoi effectuer des tests ? A quel moment réaliser les tests et avec quelles exigences ? Avec quels outils ?. Principe de base. Plus un défaut est détecté tard dans le cycle de développement plus son coût est important. A quoi sont dus ces défauts. L’erreur est humaine …
E N D
Introduction • Pourquoi effectuer des tests ? • A quel moment réaliser les tests et avec quelles exigences ? • Avec quels outils ?
Principe de base Plus un défaut est détecté tard dans le cycle de développement plus son coût est important.
A quoi sont dus ces défauts • L’erreur est humaine … • Manque de maîtrise du langage utilisé. • Manque de respect des règles de codages et mauvaise utilisation des outils de programmations.
Les normes de développement • Aéronautique civil : Norme DO-178B • Automobile : MISRA
Pourquoi une vérification du code source ? Analyse statique : • Détecter les défauts le plus tôt possible. • Assurer une meilleure lisibilité : maintenance et réutilisation. • S’assurer que le code soit testable. • Contrôler l’architecture du projet. Analyse dynamique : • Tester la fonction du module. • Tester la structure du module. • Tester l’interfaçage entre les modules. • Tester la robustesse du code.
QAC • Outil d’analyse statique du code ( relecture ).
Exemple de vérification de code par QAC typedef double vertical_angle; typedef int ground_angle; void function ( ) { vertical_angle calculate; ground_angle right_angle; /* ... */ right_angle=calculate; } ^ X:\QAC_Qualification\IN_Rules\IN_Rule_9.2\Sources\test.c(13) ++ WARNING ++: <=3=(3815) Implicit cast: double to int. Possible loss of precision.
Atouts et inconvénients de QA C • Dispose pour chaque langage de plus de 1000 règles standard. • Permet d’implémenter ses propres règles de vérification. • Navigation simple et efficace. D • Analyse module par module. • Pas de vérification dynamique.
Polyspace code verifier • Outil d’analyse dynamique par simulation mathématique du code.
Atouts et inconvénients de Polyspace Verifier C • Pas de préparation nécessaire. D • Pas de tests fonctionnels.
Rational Test Real Time • Outil d’analyse dynamique par simulation du code dans son environnement cible.
Fonctionnement de Test Real Time Environnement du module à tester Génère le plan de test unitaire Génère le driver et les stubs Instrumente le code Compile l’environnement de test vers la cible CIBLE Lance la simulation Génère le rapport de test
Exemple de module extern int f(int); extern int global_variable; int function ( int test ) { int i=0; if( i ) { return 0; } if( test ) { return ( f( 1 )+ global_variable ); } else { return ( f( 0 )+ global_variable ); } }
Exemple de squelette -- Tested service parameters declarations #int test; -- By function returned type declaration #int ret_function; TEST 1 FAMILY nominal ELEMENT VAR global_variable, init = 1, ev = init VAR test, init = 1, ev = init VAR ret_function, init = 0, ev = 1 stub f (1) 1 #ret_function = function(test); END ELEMENT END TEST -- TEST 1
Atouts et inconvénients de Test Real Time C • Test fonctionnel. • Test sur l’environnement cible. D • Préparation des tests longues et fastidieuses….
Conclusion • Rappelez vous qu’il n’y a pas d’erreur anodine ! • Testez, testez, testez, … • Les outils sont efficace utilisez les !