Vous êtes sur la page 1sur 2

Université de SOUK AHRAS

Faculté des sciences et technologie 1e Année Master Informatique GL, 2017/2018


Département de Mathématiques et Informatique Module: Vérification et tests

Série TD N° 01

Exercice 1 : (Examen 2013-2014)


Soit la spécification suivante pour la fonction ppcm :
"La fonction ppcm prend en paramètre deux nombres entiers (soient x et y) et consiste à calculer
leur plus petit commun multiple.
1) Déterminer les entrées et sorties de cette fonction.
2) Considérant premièrement une approche de tests fonctionnels, proposer des jeux de tests nominaux,
tests aux limites, et tests hors limites pour cette fonction.

 Soit le code suivant pour implémenter cette fonction ppcm:


(1) static int ppcm(int x, int y) {
(2) int p;
(3) int mincm;
(4) p = x*y;
(5) mincm = p;
(6) while ((p > x) && (p > y)) {
(7) if ((p % x == 0) && (p % y == 0)) {
(8) mincm = p;
(9) }
(10) p = p-1;
(11) }
(12) return(mincm);
(13) }

3) Générer le graphe de flot de contrôle pour cette fonction.


4) Soit le jeu de test {(x=3, y=2)}
Ce jeu de tests assure-t-il la couverture des instructions ? la couverture des arcs? la couverture
des conditions? la couverture des chemins?
5) Existe-t-il des chemins infaisables ?
6) Déterminer un jeu de tests pour s’assurer une couverture des chemins.
 Manifestement, le code ne fonctionne pas lorsque les valeurs données en entrée sont égales. On
propose de corriger l’erreur en rajoutant les lignes (a) , (b) et (c):
(1) static int ppcm(int x, int y) {
(2) int p;
(3) int mincm;
(a) if (x == y)
(b) return x;
(c) else {
(4) p = x*y;

1
(5) mincm = p;
(6) while ((p > x) && (p > y)) {
(7) if ((p % x == 0) && (p % y == 0)) {
(8) mincm = p;
(9) }
(10) p = p-1;
(11) }
(12) return(mincm);
(13) }
(14) }

7) Reconstruire le graphe de flot de contrôle du code.


8) Relancer le jeu de tests précédent (de la question 6), et calculer le taux de couverture pour chaque
critère.
9) Trouver un jeu de test pour atteindre une couverture des branches de 100%.
10) D'après les tests réalisés, existe t-il un problème avec ce code?

Vous aimerez peut-être aussi