Vous êtes sur la page 1sur 5

LOG1000

Génie logiciel

C05F
LOG1000
Exercices sur
les tests Ingénierie logicielle
1. CFG

2. Couverture
des branches

3. Code avec
CppUnit Exercices sur les tests

Département de génie informatique et de


génie logiciel 1

Avec du matériel produit par Bram Adams, Michel Gagnon et Nikolay Radoev 1
LOG1000
Génie logiciel CFG (Control Flow Graph)
C05F
Exercices sur
les tests

Faites le graphe de flot de contrôle du code
suivant :
1. CFG int calculeTaxes(
2. Couverture float montant,
des branches int nb_taxes,
3. Code avec float* taxes) {
CppUnit

if (nb_taxes==0 || montant<=0) return montant;

for(int i=0 ; i<nb_taxes ; i++) {


montant = montant * (1 + taxes[i]/100);
}

return montant;
}

On fera la couverture des branches, donc pas besoin


de séparer les prédicats en conditions atomiques. 2
LOG1000
Génie logiciel Solution : CFG + Couverture des branches
C05F
Exercices sur
les tests

1. CFG

2. Couverture
des branches

3. Code avec
CppUnit


À partir du CFG, trouver les cas de tests qui vous permettront
de satisfaire la couverture des branches.

Utilisez la convention vue en cours :
3
– d1 = <{entrée1, entrée2}, {sortie1, sortie2}>
LOG1000
Génie logiciel Solution possible : Couverture des branches
C05F
Exercices sur
les tests

1. CFG

2. Couverture
des branches

3. Code avec
CppUnit

4
LOG1000
Génie logiciel Code avec CppUnit
C05F
Exercices sur
les tests

Soit l'exemple de code disponible au :

git clone https://gitlab.com/polytechnique-montreal-log1000/exercice_cppunit.git


1. CFG

2. Couverture
des branches ●
Construisez le CFG de la fonction "calculer" de la
3. Code avec
CppUnit
classe "Calculateur".

Le code contient déjà un test unitaire. Ajoutez les
tests unitaires manquants afin d'assurer la
couverture des branches.

Notez que votre travail est d'écrire les tests
correspondants au code → et non de changer
le code existant ... même s'il pourrait être
grandement amélioré !
5

Vous aimerez peut-être aussi