0% ont trouvé ce document utile (0 vote)
579 vues2 pages

Tests de Flux de Contrôle en TD

Ce document présente trois exercices sur le test à partir du graphe de flot de contrôle. L'exercice 1 concerne l'analyse d'un programme mystère, l'exercice 2 concerne le test d'une fonction de calcul de racine carrée, et l'exercice 3 concerne le test d'une fonction de calcul de puissance.

Transféré par

Maxima
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
579 vues2 pages

Tests de Flux de Contrôle en TD

Ce document présente trois exercices sur le test à partir du graphe de flot de contrôle. L'exercice 1 concerne l'analyse d'un programme mystère, l'exercice 2 concerne le test d'une fonction de calcul de racine carrée, et l'exercice 3 concerne le test d'une fonction de calcul de puissance.

Transféré par

Maxima
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

Génie Logiciel Avancé

Année 2014-2015

Prof. Burkhart Wolff Thibaut Balabonski, Delphine Longuet


[email protected] [email protected], [email protected]

TD 5 - Test à partir du graphe de flot de contrôle


Semaine du 3 novembre 2014

Exercice 1
On considère le programme suivant.
procedure mystere(A,B,X:positive)
if (A > 1 && B = 0) then X := X / A; endif;
if (A = 2 || X > 1) then X := X + 1; endif;
return X;
1. Donner le graphe de contrôle de la procédure mystere.
2. Quel est le nombre de chemins ? Quel est le nombre de chemins exécutables ?
3. Donner un ensemble de données d’entrée permettant de couvrir toutes les instructions.
4. Donner un ensemble de données d’entrée permettant de couvrir toutes les décisions (ou
tous les arcs).
5. Donner un ensemble de données d’entrée permettant de couvrir tous les chemins exécu-
tables.
Exercice 2
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 sqrt(int a) {
int tm = 1;
int sum = 1;
int i = 0;
while(sum <= a) {
i = i + 1;
tm = tm + 2;
sum = tm + sum;
}
return i;
}

1. Donner une spécification 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 le critère « toutes les
instructions ». Que peut-on dire à propos de la satisfaction du critère « toutes les déci-
sions » ?

1
4. On considère l’ensemble des chemins qui passent au plus 3 fois dans la boucle. Don-
ner pour chacun de ces chemins le cas de test associé en construisant par exécution
symbolique la condition de chemin correspondante.
5. Choisir une instance de test pour chacun de ces cas de test.

Exercice 3
On considère le programme suivant, qui calcule X N 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 un critère de couverture sur le
graphe de flot de contrôle.
1. Écrire la spécification de ce programme sous forme de pré et post-conditions.
2. Construire le graphe de flot de contrôle de ce programme.
3. Sélectionner un ensemble de chemins pour satisfaire le critère « toutes les décisions »
(équivalent au critère « tous les arcs »).
4. Sélectionner un ensemble de chemins pour satisfaire le critère « toutes les chemins de
longueur au plus k », où la longueur d’un chemin est comptée en nombre de nœuds.
Choisir k de façon à sélectionner les chemins passant au plus deux fois dans la boucle.
5. Pour trois des chemins trouvés à la question précédente, calculer par exécution symbo-
lique les conditions de chemin associées.
6. Donner des tests concrets pour chacun des cas de test obtenus.

Vous aimerez peut-être aussi