1 / 22

Introduction

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 …

herbst
Download Presentation

Introduction

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Introduction • Pourquoi effectuer des tests ? • A quel moment réaliser les tests et avec quelles exigences ? • Avec quels outils ?

  2. Principe de base Plus un défaut est détecté tard dans le cycle de développement plus son coût est important.

  3. 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.

  4. Le cas Ariane 5

  5. Les normes de développement • Aéronautique civil : Norme DO-178B • Automobile : MISRA

  6. Le cycle en V

  7. 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.

  8. QAC • Outil d’analyse statique du code ( relecture ).

  9. 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.

  10. 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.

  11. Polyspace code verifier • Outil d’analyse dynamique par simulation mathématique du code.

  12. Exemple de code testé par C Verifier

  13. Atouts et inconvénients de Polyspace Verifier C • Pas de préparation nécessaire. D • Pas de tests fonctionnels.

  14. Les tests unitaires

  15. Rational Test Real Time • Outil d’analyse dynamique par simulation du code dans son environnement cible.

  16. 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

  17. 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 ); } }

  18. 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

  19. Résultat de test

  20. Atouts et inconvénients de Test Real Time C • Test fonctionnel. • Test sur l’environnement cible. D • Préparation des tests longues et fastidieuses….

  21. Conclusion • Rappelez vous qu’il n’y a pas d’erreur anodine ! • Testez, testez, testez, … • Les outils sont efficace utilisez les !

More Related