Vous êtes sur la page 1sur 5

Université d’Alger1

Faculté Des Sciences


Département Mathématiques – Informatique
Module : Test et qualité logiciel 3ème année Licence ISIL - 2019/2020
-----------------------------------------------------------------------------------------------------------------

TD4 : Test Structurel

Exercice 1 :
Soit les programmes P1 et P2 suivants :

1- Etablir les graphes de contrôle de ces programmes


2- Fournir l’expression de chemin de chacun.

Exercice 2 :
Soit le programme suivant :

Programme 1 Programme 2
i := 1;
found:= false; if n <= 0 then n := 1-n
while(not found) do endif;
begin if n mod 2 =0
if (a[i] = E) then then n := n / 2
begin else n := 3*n + 1
found:= true; end ;
s := i; write(n);
end;
i := i + 1;
end;
1- Etablir les graphes de contrôle de ces 2 programmes
2- Fournir l’expression de chemin de chacun.

Exercice 3 :
Soit le programme p2 suivant :

 Donner le graphe de contrôle associé au programme P3.


 Donner 3 chemins de contrôle du graphe
 Donner l’expression des chemins de contrôle
 Soit DT1= {b=1,c=2, x=2}. Donner le chemin couvert par DT1.
 On s’intéresse aux instructions en italique, donner des DT qui vont couvrir ces
instructions.
 Donner un chemin de contrôle non exécutable

Exercice 4 :
Soit le programme P4 suivant :
1- Donnez un graphe de contrôle associé au code source fourni.
2- Votre graphe de contrôle a-t-il des possibilités de réduction ?
3- Si oui, réduisez votre graphe de contrôle.

Exercice 5 :
Soit le programme p5 suivant :

Calculer les DT suivant les critères :


1- Tous les noeuds
2- Tous les arcs
3- Tous les chemins indépendants

Exercice 6 :
On veut écrire un jeu de tests pour le programme suivant, en utilisant des critères de
couverture sur le graphe de flot de contrôle.

int tm = 1;
int sum = 1;
int i = 0;
while (sum <= a) {
i = i + 1;
tm = tm + 2;
sum = tm + sum;
}

1. Quelles sont les entrées et les sorties de ce programme ?


2. Construire le graphe de flot de contrôle de ce programme.
3. Sélectionner un ensemble de chemins permettant de satisfaire :
a- le critère « toutes les instructions » (ou tous les nœuds) ;
b- le critère « toutes les décisions » (ou tous les arcs).
4. Donner l'ensemble des chemins qui passent au plus 2 fois dans la boucle. Donner pour
chacun de ces chemins le cas de test associé.

Exercice 7
On considère le programme suivant, qui calcule XN pour N >= 0.

int puissance(int X, int N) {


int S = 1;
int P = N;
while(P >= 1) {
if (P mod 2 != 0) {
P = P - 1;
S = S * X;
}
S = S * S;
P = P/2;
}
return S;
}

On veut générer des tests pour ce programme en utilisant les différents critères de couverture
sur le graphe de flot de contrôle.
1- Construire le graphe de flot de contrôle de ce programme.
2- Donner le plus court chemin possible qui satisfait le critère « toutes les instructions »,
Donner le cas de test qui correspond à ce chemin.
3- Donner le plus court chemin qui satisfait le critère « toutes les branches », donner le
cas de test qui correspond à ce chemin.
4- Donner 2 cas de test pour exécuter 3 fois la boucle « while »
5- Proposer un chemin non exécutable.

Exercice 8 :
Pour la condition suivante :
(((u==0) ou (x>5)) && ((y<6) || (z==0)))

1- Donner tous les cas de test à établir pour le critère de condition multiple.
2- Proposer une réduction dans les cas proposé en se basant sur la méthode MC/DC.

Référence : les TDs de Zemali El Amine