Title: Pr
1(No Transcript)
2Introduction
- Pourquoi effectuer des tests ?
- A quel moment réaliser les tests et avec quelles
exigences ? - Avec quels outils ?
3Principe de base
- Plus un défaut est détecté tard dans le cycle de
développement plus son coût est important.
4A quoi sont dus ces défauts
- Lerreur est humaine
- Manque de maîtrise du langage utilisé.
- Manque de respect des règles de codages et
mauvaise utilisation des outils de programmations.
5Le cas Ariane 5
6Les normes de développement
- Aéronautique civil
- Norme DO-178B
- Automobile
- MISRA
7Le cycle en V
8Pourquoi 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. - Sassurer que le code soit testable.
- Contrôler larchitecture du projet.
-
- Analyse dynamique
- Tester la fonction du module.
- Tester la structure du module.
- Tester linterfaçage entre les modules.
- Tester la robustesse du code.
-
9QAC
- Outil danalyse statique du code ( relecture ).
10Exemple 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_anglecalculate
-
- X\QAC_Qualification\IN_Rules\IN_Rule_9.2\Source
s\test.c(13) WARNING lt3(3815) Implicit
cast double to int. Possible loss of precision.
11Atouts et inconvénients de QA
- Dispose pour chaque langage de plus de 1000
règles standard. - Permet dimplémenter ses propres règles de
vérification. - Navigation simple et efficace.
C
D
- Analyse module par module.
- Pas de vérification dynamique.
12Polyspace code verifier
- Outil danalyse dynamique par simulation
mathématique du code.
13Exemple de code testé par C Verifier
14Atouts et inconvénients de Polyspace Verifier
C
- Pas de préparation nécessaire.
D
- Pas de tests fonctionnels.
15Les tests unitaires
16Rational Test Real Time
- Outil danalyse dynamique par simulation du code
dans son environnement cible.
17Fonctionnement 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 lenvironnement de test vers la cible
CIBLE
Lance la simulation
Génère le rapport de test
18Exemple de module
- extern int f(int)
- extern int global_variable
- int function ( int test )
-
- int i0
- if( i )
-
- return 0
-
- if( test )
-
- return ( f( 1 ) global_variable )
-
- else
-
- return ( f( 0 ) global_variable )
-
19Exemple 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
20Résultat de test
21Atouts et inconvénients de Test Real Time
C
- Test fonctionnel.
- Test sur lenvironnement cible.
D
- Préparation des tests longues et fastidieuses.
22Conclusion
- Rappelez vous quil ny a pas derreur anodine !
- Testez, testez, testez,
- Les outils sont efficace utilisez les !