Tests et validation du logiciel
Download
1 / 19

Tests et Validation du logiciel - PowerPoint PPT Presentation


  • 99 Views
  • Uploaded on

Tests et Validation du logiciel. 02/2007 – 06/2007. 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

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

PowerPoint Slideshow about ' Tests et Validation du logiciel' - tierra


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.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript
Tests et validation du logiciel

Tests et Validation du logiciel

02/2007 – 06/2007


Couverture de flot de contr le
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.


Couverture de flot de contr le1

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

begin

if (a[i] = E) then found:= true;

else found:= false;

i := i + 1;

end;

writeln(found);

end;

Appliquez la démarche

Couverture de flot de contrôle


Couverture de flot de contr le2
Couverture de flot de contrôle valeurs

  • 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


Couverture de flot de contr le3
Couverture de flot de contrôle valeurs

  • 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


Couverture de flot de contr le4
Couverture de flot de contrôle valeurs

  • 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


Couverture de flot de contr le5
Couverture de flot de contrôle valeurs

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


Couverture de flot de contr le6
Couverture de flot de contrôle valeurs

  • 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


Couverture de flot de contr le7
Couverture de flot de contrôle valeurs

  • 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)


Couverture de flot de contr le8
Couverture de flot de contrôle valeurs

  • 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]


Couverture de flot de contr le9
Couverture de flot de contrôle valeurs

  • 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


Couverture de flot de contr le10
Couverture de flot de contrôle valeurs

  • 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


Couverture de flot de contr le11
Couverture de flot de contrôle valeurs

  • 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


Couverture de flot de contr le12
Couverture de flot de contrôle valeurs

  • 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


Couverture de flot de contr le13
Couverture de flot de contrôle valeurs

  • 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]


Couverture de flot de contr le14
Couverture de flot de contrôle valeurs

  • Puissance de cette couverture si on ajoute des chemins qui exécutent 2 fois (ou n fois) la boucle


Couverture de flot de contr le15
Couverture de flot de contrôle valeurs

  • 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


Couverture de flot de contr le16
Couverture de flot de contrôle valeurs

  • 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



ad