La présentation est en train de télécharger. S'il vous plaît, attendez

La présentation est en train de télécharger. S'il vous plaît, attendez

Tests et Validation du logiciel 02/2007 – 06/2007.

Présentations similaires


Présentation au sujet: "Tests et Validation du logiciel 02/2007 – 06/2007."— Transcription de 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 dun 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 dune 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 begin if (a[i] = E) then found:= true; else found:= false; i := i + 1; end; writeln(found); end; 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 Lajout de DT aurait permis de trouver dautres 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 la exclus car elle napportait pas de nouveau chemin indépendant

6 Couverture de flot de contrôle Couverture des PLCS (Portion Linéaire de Code Suivie dun Saut) Objectif : augmenter le nombre de chemins pour accroître les possibilités de détection derreurs

7 Couverture de flot de contrôle On considère, dans le graphe de flot de contrôle, 2 type de noeuds lentrée et la sortie et les noeuds qui constituent larrivée dun branchement : type (a) les autres noeuds : type (b). On considère, dans le graphe de flot de contrôle, 2 type darcs Ceux qui constituent un saut Les autres noeud On appelle PLCS un chemin partant dun noeud de type (a) et aboutissant à nouveau à un noeud de type (a); lavant 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 IF A < 0 THEN GOTO B = -A 050 PRINT A + B 060 IF B = 2 * C THEN GOTO A = 1 : GOTO A = -2 : GOTO PRINT A 100 END

9 Couverture de flot de contrôle Rappel : On appelle PLCS un chemin partant dun noeud de type (a) et aboutissant à nouveau à un noeud de type (a); lavant dernier et le dernier noeud doivent constituer le seul saut du chemin. Exemple : [K20,K30,K40,K60,K80] est un PLCS [K60,K80,K20] nest pas PLCS (2 sauts)

10 Couverture de flot de contrôle PLCS : 1) [K5, K20, K30, K60] 2) [K5, K20, K30, K40, K60, K80] 3) [K5, K20, K30, K40, K60, K70, K90] 4) [K20, K30, K60] 5) [K20, K30, K40, K60, K80] 6) [K20, K30, K40, K60, K70, K90] 7) [K60, K80] 8) [K60, K70, K90] 9) [K80, K20] 10) [K90, K100]

11 Couverture de flot de contrôle Critère de couverture : TER3 = PLCS couvertes / Total des PLCS TER3=1 TER2=1 TER1=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 litè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 litè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 ConditionsDécision DTc1c2c3c4C5((c1 and c2…. 1FTFTTF 2TTFTTT 3TFFTTF 4TFTTTT 5TFTFTF 6TTTTFF 7TTTTTT


Télécharger ppt "Tests et Validation du logiciel 02/2007 – 06/2007."

Présentations similaires


Annonces Google