Télécharger la présentation
1
Tests et Validation du logiciel
02/2007 – 06/2007
2
Couverture de flot de contrôle
Inconvénients tous-les-chemins-indépendants La modification du flot d’un décision ne génère pas forcément un chemin indépendant Démarche vectorielle. Un « bug » sur un chemin complexe ne sera pas forcément décelé. Un chemin est une combinaison de chemins de base. Couvrir tous les chemins de base, ne signifie pas couvrir tous les chemins.
3
Couverture de flot de contrôle
Exemple : P recherche d’une valeur dans un tableau à 2 valeurs program p (input, output) ; var a : array[1..2] of integer; E, i : integer; begin read(i, E, a[1], a[2]); found:= false; while i <= 2 do if (a[i] = E) then found:= true; else found:= false; i := i + 1; end; writeln(found); Appliquez la démarche
4
Couverture de flot de contrôle
A DT au hasard DT1={i=3} C1=[u1,u2] Modification du sens de 2 DT2={i=1,E=10,a[1]=20, a[2]=10} C2=[u1,u3,u4,u6,u8,u3,u5,u7,u8,u2] Modification du sens de 3 DT3={i=1,E=10,a[1]=1à,a[2]=20} C3=[u1,u3,u5,u7,u8,u3,u4,u6,u8,u2] C2 et C3 ne sont pas indépendant car ils acceptent le même vecteur V=[1,1,2,1,1,1,1,2] C2 et C3 différents mais passent par les mêmes arcs le même nombre de fois. exclusion de DT3
5
Couverture de flot de contrôle
L’ajout de DT aurait permis de trouver d’autres chemins indépendants : DT4={i=1,E=10,a[1]=10,a[2]=10} DT5={i=1,E=10,a[1]=20,a[2]=30} Constat sur les résultats Seul C3 pouvait mettre en évidence le bug, cependant on l’a exclus car elle n’apportait pas de nouveau chemin indépendant
6
Couverture de flot de contrôle
Couverture des PLCS (Portion Linéaire de Code Suivie d’un Saut) Objectif : augmenter le nombre de chemins pour accroître les possibilités de détection d’erreurs
7
Couverture de flot de contrôle
On considère, dans le graphe de flot de contrôle, 2 type de noeuds l’entrée et la sortie et les noeuds qui constituent l’arrivée d’un branchement : type (a) les autres noeuds : type (b). On considère, dans le graphe de flot de contrôle, 2 type d’arcs Ceux qui constituent un saut Les autres noeud On appelle PLCS un chemin partant d’un noeud de type (a) et aboutissant à nouveau à un noeud de type (a); l’avant dernier et le dernier noeud doivent constituer le seul saut du chemin.
8
Couverture de flot de contrôle
Exemple 005 INPUT A, C 010 B = 2 * A 020 A = A + 1 030 IF A < 0 THEN GOTO 60 040 B = -A 050 PRINT A + B 060 IF B = 2 * C THEN GOTO 80 070 A = 1 : GOTO 90 080 A = -2 : GOTO 20 090 PRINT A 100 END
9
Couverture de flot de contrôle
Rappel : On appelle PLCS un chemin partant d’un noeud de type (a) et aboutissant à nouveau à un noeud de type (a); l’avant dernier et le dernier noeud doivent constituer le seul saut du chemin. Exemple : [K20,K30,K40,K60,K80] est un PLCS [K60,K80,K20] n’est pas PLCS (2 sauts)
10
Couverture de flot de contrôle
PLCS : [K5, K20, K30, K60] [K5, K20, K30, K40, K60, K80] [K5, K20, K30, K40, K60, K70, K90] [K20, K30, K60] [K20, K30, K40, K60, K80] [K20, K30, K40, K60, K70, K90] [K60, K80] [K60, K70, K90] [K80, K20] [K90, K100]
11
Couverture de flot de contrôle
Critère de couverture : TER3 = PLCS couvertes / Total des PLCS TER3=1TER2=1TER1=1 Autres critères de type PLCS TER4=Chemins composés de 2 PLCS / Total des chemins composés de 2 PLCS TER5 =Chemins composés de 3 PLCS / Total des chemins composés de 3 PLCS
12
Couverture de flot de contrôle
Couverture des chemins limites et intérieurs Les chemins limites traversent la boucle mais ne l’itèrent pas Les chemins intérieurs itèrent la boucle une seule fois
13
Couverture de flot de contrôle
Couverture des chemins limites et intérieurs Les chemins limites traversent la boucle mais ne l’itèrent pas Les chemins intérieurs itèrent la boucle une seule fois
14
Couverture de flot de contrôle
Chemin limite G1 [1,2,3] Chemin intérieur G1 [1,2,1,2,3] G2 [1,2,4,2,3] Pour satisfaire ce critère de couverture, il faut couvrir tous les chemins intérieurs et limites de chaque boucle
15
Couverture de flot de contrôle
Chemins limites : [1,2,3,5,6] [1,2,4,5,6] Chemins intérieurs : [1,2,3,5,2,3,5,6] [1,2,3,5,2,4,5,6] [1,2,4,5,2,3,5,6] [1,2,4,5,2,4,5,6]
16
Couverture de flot de contrôle
Puissance de cette couverture si on ajoute des chemins qui exécutent 2 fois (ou n fois) la boucle
17
Couverture de flot de contrôle
Le critère MCDC (Modified Condition Decision Coverage) Norme DO178B Pour remplir ce critère il faut satisfaire les contraintes suivantes : Chaque condition doit avoir été au moins une fois Vrai et une fois Fausse La décision doit avoir été au moins une fois Vraie et une fois Fausse Chaque condition seule influe sur le résultat de la décision
18
Couverture de flot de contrôle
Exemple : If ((c1 and c2) or (c3 and c4)) and c5 then Vrai/Faux 2 DTs suffisent au test VRAI : DT1={c1=vrai, c2=vrai, c5=vrai} FAUX : DT2={c5=false} Test exhaustif : 32 combinaisons
19
Couverture de flot de contrôle
Conditions Décision DT c1 c2 c3 c4 C5 ((c1 and c2…. 1 F T 2 3 4 5 6 7
Présentations similaires
© 2024 SlidePlayer.fr Inc.
All rights reserved.