Les techniques de Tests
Techniques basées sur les structures (boite blanche)
Introduction
Tests basés sur l’analyse du code source de l’application pour établir les
tests en fonction des critères de couvertures => générer un jeu de test
(DT) selon le niveau de couverture souhaité
Ces techniques peuvent être appliquées aux différents niveaux de test,
mais souvent niveau unitaire Le code constitue la base de test pour
ces techniques
Techniques issues de l’analyse de :
o Flot de contrôle : avec différents critères de couverture
(instructions, décisions, branches, etc.)
o Flot de données : avec différents critères de couverture ( toutes les
définitions, toutes les utilisations, etc.)
1
1
R. MZID KEBEILI Test des logiciels
Les techniques de Tests
Techniques basées sur les structures (boite blanche)
Graphe flot de contrôle
Un flot de contrôle est une représentation abstraite de toutes les
séquences du code
Graphe orienté et connexe (N,A,e,s)
o e: un sommet entrée
o s: un sommet sortie
o N. ensemble des nœuds
o A: ensemble des arcs
1
2
R. MZID KEBEILI Test des logiciels
Les techniques de Tests
Techniques basées sur les structures (boite blanche)
Graphe flot de contrôle
Un nœud corresponds à:
o Point de départ (initial).
o Une instruction simple (affectation, lecture, écriture, …),
o Le prédicat d’une instruction conditionnelle ou répétitive (if, while,
for, …).
o Point d’arrivée (sortie)
Un arc entre deux nœuds correspond à un flux de contrôle
possible
1
3
R. MZID KEBEILI Test des logiciels
Les techniques de Tests
Techniques basées sur les structures (boite blanche)
Graphe flot de contrôle
Une exécution possible = un chemin de contrôle dans le graphe
Chemin de contrôle = chemins exécutables + chemins non
exécutables
Chemin exécutable : il y a une DT qui sensibilise ce chemin
Chemin non exécutable : aucune DT qui sensibilise ce chemin
NB: L’existence de chemins non exécutables est un signe de
mauvais codage
1
4
R. MZID KEBEILI Test des logiciels
Les techniques de Tests
Techniques basées sur les structures (boite blanche)
Graphe flot de contrôle
Notation
1
5
R. MZID KEBEILI Test des logiciels
Les techniques de Tests
Techniques basées sur les structures (boite blanche)
Graphe flot de contrôle
Un graphe de contrôle peut être exprimé sous forme algébrique
avec une expression qui donne l’ensemble des chemins de
contrôle
Cas possibles pour l’expression des chemins
1
6
R. MZID KEBEILI Test des logiciels
Les techniques de Tests
Techniques basées sur les structures (boite blanche)
Graphe flot de contrôle
Soit le programme suivant :
Etablir le graphe flot de contrôle de ce programme
Donner les chemins de contrôle puis l’expression des chemins sous forme
réduite
Déduire les chemins exécutables.
1
7
R. MZID KEBEILI Test des logiciels
Les techniques de Tests
Techniques basées sur les structures (boite blanche)
Graphe flot de contrôle
Soit le graphe suivant :
1
8
R. MZID KEBEILI Test des logiciels
Les techniques de Tests
Techniques basées sur les structures (boite blanche)
Graphe flot de contrôle
Le problème des chemins
exécutables/non exécutables
peut s’avérer difficile si la taille
de la graphe est important
Trouver les chemins non
exécutables dans ce graphe
L’arc h-a ne sera jamais sensibilisé car b<c !!
1
9
R. MZID KEBEILI Test des logiciels
Les techniques de Tests
Techniques basées sur les structures (boite blanche)
Critères de couverture flot de contrôle
ISTQB définit 4 critères de couverture pour le flot de contrôle en
allant du plus faible au plus fort :
o Couverture des instructions / Couverture des décisions /Couverture
des conditions / Couverture des chemins
Pour chaque critère de couverture ISTQB définit un type de test
Le problème de chaque test est de trouver les données de test
qui garantit ce niveau de couverture
Des donnés de test avec un indicateur de couverture
1
10
R. MZID KEBEILI Test des logiciels
Les techniques de Tests
Techniques basées sur les structures (boite blanche)
Test des instructions
Le test d’instruction est « une technique de conception de tests
boîte-blanche dans laquelle les cas de test sont conçus (DT) pour
exécuter des instructions » (ISTQB).
Couverture = pourcentage des instructions exécutables qui ont
été exécutées par une suite de tests
o Couverture = (nombre des instructions exécutées (DT) /
nombre total des instructions)
Une instruction = Une action atomique qui doit être exécutée =
un nœud dans le graphe de flot de contrôle
1
11
R. MZID KEBEILI Test des logiciels
Les techniques de Tests
Techniques basées sur les structures (boite blanche)
Test des instructions
Exemple
Un seul test est suffisant pour
assurer la couvertures des deux
instructions (une couverture 100%
des instructions)
1
12
R. MZID KEBEILI Test des logiciels
Les techniques de Tests
Techniques basées sur les structures (boite blanche)
Limite du test des instructions
Soit le programme et le graphe flot de contrôle associé :
Définir les données de test qui assure la couverture toutes les
instructions. Interpréter.
1
13
R. MZID KEBEILI Test des logiciels
Les techniques de Tests
Techniques basées sur les structures (boite blanche)
Test des décisions
Le test des décisions est « une technique de conception de tests
boîte blanche selon laquelle les cas de tests sont conçus pour
exécuter les résultats de décisions » (ISQTB)
Une décision = Le flot d’exécution a au moins deux chemins
possibles (if , select case, while, etc.)
Une branche = Résultat d’une décision. Pour une décision if il y a
deux branches une suite à TRUE et une suite à FALSE
Couverture des décisions : le pourcentage des résultats de
décisions qui ont été exécutées par une suite de tests
=> 100% de couverture des décisions implique 100% de couverture
des branches et 100% de couvertures des instructions 1
14
R. MZID KEBEILI Test des logiciels
Les techniques de Tests
Techniques basées sur les structures (boite blanche)
Test des décisions
Exemple 1
Combien de tests sont nécessaires
pour une couverture 100% de la
décision?
1
15
R. MZID KEBEILI Test des logiciels
Les techniques de Tests
Techniques basées sur les structures (boite blanche)
Test des décisions
Exemple 2 :
Tracer le diagramme de flot de contrôle puis déterminer le
nombre de tests nécessaires pour une couverture 100% de la
décision? 1
16
R. MZID KEBEILI Test des logiciels
Les techniques de Tests
Techniques basées sur les structures (boite blanche)
Test des chemins
Un chemin : une séquence d’exécution dans le code
Un chemin indépendant
o Une suite d’instructions permettant d’aller du début à la fin du
code
o Un chemin du graphe de flot de contrôle qui parcourt au moins
un nouvel arc par rapport aux autres chemins définis (introduit
au moins une nouvelle instruction non parcourue)
Deux couvertures
o Couverture de tous les chemins
o Couverture de tous les chemins indépendants
1
17
R. MZID KEBEILI Test des logiciels
Les techniques de Tests
Techniques basées sur les structures (boite blanche)
Test des chemins
Nombre Cyclomatique donne le nombre de chemins
indépendants au travers d’un programme.
o La complexité Cyclomatique est définie par L –N + 2P
o L: le nombre d’arcs/liens d’un graphe
o N: le nombre de nœuds du graphe
o P: le nombre de parties déconnectées du graphe (appel d’un
sous programme)
1
18
R. MZID KEBEILI Test des logiciels
Les techniques de Tests
Techniques basées sur les structures (boite blanche)
Test des chemins
1
19
R. MZID KEBEILI Test des logiciels
Les techniques de Tests
Techniques basées sur les structures (boite blanche)
Test des chemins
Soit le programme suivant :
Donner le GFC puis déterminer le nombre de tests ainsi que les
DT nécessaires pour assurer 100% de couverture des instructions,
décisions, des chemins indépendants et de tous les chemins.
1
20
R. MZID KEBEILI Test des logiciels