Technique de test en programmation (test fonctionnel)
Compte rendu : Technique de test en programmation (test fonctionnel). Rechercher de 53 000+ Dissertation Gratuites et MémoiresPar tahlesfou • 9 Avril 2022 • Compte rendu • 2 940 Mots (12 Pages) • 420 Vues
TD N°1: Sur les techniques
de test fonctionnel
I-PROBLÉMATIQUE :
1-L'ingénieur de test doit utiliser des techniques dans le cadre de son activité de test d'un logiciel. Ces techniques sont multiples et variés afin de tester le logiciel le plus efficacement possible. Cette première série de travaux dirigés, a pour but de mettre en œuvre dans la pratique certaines techniques de test fonctionnel introduites en cours, notamment les techniques fondées sur l'analyse partitionnelle, les tests aux limites et le graphe cause-effet.
2-Ces techniques de test fonctionnel ont un même point commun : elles s'appuient sur la spécification. En effet, un test fonctionnel, examine le comportement fonctionnel du logiciel, afin de détecter les erreurs d'omission et de conformité par rapport à la spécification. Pour ceci, l'étude de la spécification permet de générer des jeux de données de test (DT) représentatifs qui seront injectés en entrée du logiciel.
II-RÉALISATION :
A) Cas n°1 : test du logiciel « constructeur de triangles »
Pour ce premier exercice, nous allons étudier sur un constructeur d'objets de type triangle Q. À chaque appel de ce constructeur, il faut entrer trois paramètres correspondant à la longueur des 3 côtés du triangle à dessiner. En fonction de ces 3 paramètres, le résultat peut être le suivant :
- l’objet est un triangle scalène,
- l’objet est un triangle isocèle,
- l’objet est un triangle équilatéral,
- l’objet est un non-triangle,
- cas impossible.
Pour réaliser cet exercice, nous allons premièrement écrire un constructeur simple qui servira de logiciel sous-test, puis définir les classes d'équivalence (qui fait partie de l'analyse partitionnelle de l'exercice) qui nous servira pour élaborer une stratégie de test aux limites et enfin générer à partir des techniques de test qui précèdent un jeu de DT.
Étape 0 : Écrire un constructeur simple de logiciel sous-test :
Dans cette étape, nous avons réalisé un logiciel de sous-test afin de manipuler des triangles et tester facilement, notamment en écrivant un constructeur qui demande successivement la longueur des trois côtés d'un triangle (Exercice1.cpp).
[pic 1][pic 2]
En effectuant une liste de comparaisons entre les valeurs entrées (a, b et c) le logiciel test est capable de déterminer la nature du triangle.
[pic 3]
Dans le constructeur typeTriangle(), nous demandons trois longueurs du triangle comme afficher ci-dessous sur la capture. L'utilisateur rentre alors les trois longueurs du triangle et le constructeur en calcule alors si c'est un :
- un triangle isocèle,
- triangle scalène,
- un triangle équilatéral,
- un non-triangle,
- cas impossible.
[pic 4]
De plus, afin de faciliter la vérification du bon fonctionnement de l'entrée des données, nous avons implémenté une fonction displayTriangle() qui affiche les trois longueurs du triangle demandé.
Étape 1 : Définir les classes d’équivalences :
On peut commencer par définir les classes d’équivalences selon les différents cas des triangles suivant :
Classes des triangles : | Conditions des triangles : |
Triangle isocèle | isocèle si a≥b et a≥c et b+c≥a et (b=c) ≠ a isocèle si b≥a et b≥c et a+c≥b et (a=c) ≠ b isocèle si c≥a et b≥c et a+b≥c et (a=b) ≠ c |
Triangle scalène | scalène si a>b et a>c et b+c≥a et b ≠ c ≠ a scalène si b>a et b>c et a+c≥b et a ≠ c ≠ b scalène si c>b et c>a et b+a≥c et b ≠ a ≠ c |
Triangle équilatéral | équilatéral si a=b=c |
Non-triangle | Non-triangle si a≥b et a≥c et b+c < a Non-triangle si b≥a et b≥c et a+c < b Non-triangle si c≥b et c≥a et b+a < c |
Cas impossible | cas impossible si a, b ou c <0 cas impossible si a, b ou c est un caractère ≠ à un nombre cas impossible si a, b ou c est vide |
Pour résumer, en définissant quatre classes d’équivalences nous pouvons obtenir, (avec A, B et C les trois longueurs d’un triangle) un tableau démontrant tous les cas possibles pour le test du logiciel « constructeur de triangles » tel que
Classe | Entrées | Validité |
C1 : Entrées négatives | A v B v C < 0 | Invalide |
C2 : Entrées nulles | A v B v C = 0 | Invalide |
C3 : Entrées correctes | 0 < A v B v C < MAX Entier + 1 | Valide |
C4 : Entrées trop grandes | MAX Entier < A v B v C | Invalide |
Étape 2 : Élaborer une stratégie de test aux limites :
Le principe de la technique consiste à s’intéresser aux bornes des classes lorsque ces classes partitionnent le domaine D des données d’entrées. Le test aux limites est considéré comme l’une des techniques fonctionnelles les plus efficaces. On constate que souvent les défauts sont dus au fait qu’on n’a pas prévu le comportement d’un logiciel, pour les valeurs limites.
Les DT limites résultent de l’étude des limites des champs de définition des données d’entrées. Le fait d’envisager des valeurs qui dépassent les limites pourrait paraître injustifié. En effet, le logiciel n’a, en principe, pas été conçu pour traiter des données hors spécifications.
De manière générale, les tests aux limites consistent à identifier les domaines de définition de chaque variable d’entrée. Ces valeurs sont combinées pour produire des jeux de DT. Nous allons donc prendre des valeurs qui respectent les conditions des classes d'équivalence et générer un jeu de DT pour démontrer cette stratégie de test aux limites.
Classe | Limites | Validité |
Bornes entre les classes C1,C2 | -4 -3 0 | Invalide Invalide Invalide |
Bornes entre les classes C2, C3 | 0 1 4 MAX Entier -1 | Invalide Valide Valide Valide |
Bornes entre les classes C3, C4 | MAX Entier -1 MAX Entier MAX Entier+1 | Valide Valide Invalide |
Étape 3 : Générer à partir des techniques de test qui précède un jeu de DT :
Grâce aux techniques de test que nous avons préalablement décrite sur les trois premières étapes, nous pouvons générer un jeu de DT sous forme de tableau ci-dessous :
[pic 5][pic 6]
N° DT | DT de tests limites: | Remarques: |
1 | 30,25,17 | Triangle scalène |
2 | 15,16,20 | Triangle scalène |
3 | 12,30,24 | Triangle scalène |
4 | 2,2,1 | Triangle isocèle |
5 | 3,2,2 | Triangle isocèle |
6 | 4,4,1 | Triangle isocèle |
7 | 2,2,2 | Triangle équilatéral |
8 | 3,3,3 | Triangle équilatéral |
9 | 20,20,20 | Triangle équilatéral |
10 | 1,1,5 | Non-triangle |
11 | 4,1000,1 | Non-triangle |
12 | 0,0,0 | Non-triangle |
13 | -1,2,2 | Cas impossible |
14 | A,2,2 | Cas impossible |
15 | « »,1,1 | Cas impossible |
...