24
Tests et Validation du logiciel 02/2007 – 06/2007

Tests et Validation du logiciel

  • Upload
    mickey

  • View
    38

  • Download
    0

Embed Size (px)

DESCRIPTION

Tests et Validation du logiciel. 02/2007 – 06/2007. Tests aux limites. Constat : les bugs se cachent dans les coins ! Un aspect des méthodes fonctionnelles les plus efficaces. Qu’est ce qu’une limite ? Valeurs très élevée, nulle,… Valeurs des bornes d’une boucle Données non valides …. - PowerPoint PPT Presentation

Citation preview

Page 1: Tests et Validation du logiciel

Tests et Validation du logiciel

02/2007 – 06/2007

Page 2: Tests et Validation du logiciel

Tests aux limites

Constat : les bugs se cachent dans les coins !

Un aspect des méthodes fonctionnelles les plus efficaces.

Qu’est ce qu’une limite ?Valeurs très élevée, nulle,…Valeurs des bornes d’une boucleDonnées non valides…

Page 3: Tests et Validation du logiciel

Tests aux limites

Identification des intervalles de variation des données pour en déduire des jeux de tests qui solliciteront le composant logiciel avec des valeurs choisies juste à l’intérieur et juste à l’extérieur des bornes de ces domaines.

Remarque : Souvent utilisée avec la technique de partitionnement : les valeurs aux limites peuvent être des valeurs aux frontières des partitions

Page 4: Tests et Validation du logiciel

Tests aux limites

Variable dans un intervalle de valeurs [a,b] :a, b, a +/- Δ, b +/- Δ (Δ : plus petite variation

possible)Variable dans un ensemble de valeurs

{a1, a2, …/… , an} :a1, a2, an-1, an

Page 5: Tests et Validation du logiciel

Tests aux limites

Cas général : pour un paramètre appartenant à un interval, génération de 6 DTExemple P appartient à [0 – 100].Liste des DTs : -1, 0, 1, 99, 100, 101

Page 6: Tests et Validation du logiciel

Tests aux limites

Exemples de bugs aux limites ?Table de base vide, Fichier absentOublie du traitement du premier ou du

dernier record d’un fichierDépassement de tableauDépassement de capacité d’une variable

typée

Page 7: Tests et Validation du logiciel

Tests aux limites - Exemple

Un programme de classification de triangles prend en entrée un triplet de réels (a,b,c) correspondants aux longueurs des 3 côtés d’un triangle. Le programme doit préciser la nature du triangle (équilatéral, isocèle, scalène, impossible)

Donner des exemples de valeurs aux limites.

Page 8: Tests et Validation du logiciel

Tests aux limites - Exemple

(0,0,0) un point, voire rien…(0.1,0.1,0.1) un petit triangle,(1,1,2) un segment,(1,1,1.999) un triangle bien plat,(4,0,3) une des longueurs est nulle(4,4,4.000001) presque équilatéral

Page 9: Tests et Validation du logiciel

Tests aux limites - Exemple

Fonction faisant une recherche dichotomique dans un tableau (trié)

Page 10: Tests et Validation du logiciel

Tests aux limites - Exemple

Fonction faisant une recherche dichotomique dans un tableau (trié)

Exemple DT avec limite

Tableau Elément Table CléSortie(trouv, A)

1 seule valeur Dans le tableau [17] 17 (true, 0)

1 seule valeur Pas dans le tableau [17] 27 (false, ???)

Plus d’une valeur 1er élément dans le tableau [3,17,33,42,58] 3 (true, 0)

Plus d’une valeur dernier élément dans le tableau [3,17,33,42,58] 58 (true, 4)

Plus d’une valeur médian dans le tableau [3,17,33,42,58] 33 (true, 2)

Plus d’une valeur non présent dans le tableau [3,17,33,42,58] 1 (false, ???)

Page 11: Tests et Validation du logiciel

Partitionnelle - Limite

L’analyse partitionnelle est une méthode qui vise à diminuer le nombre de cas de tests par calcul de classes d’équivalence

Le choix de conditions d’entrée aux limites est une heuristique solide de choix de données d’entrée au sein des classes d’équivalence

Le test aux limites produit à la fois des cas de test nominaux (dans l’intervalle) et de robustesse (hors intervalle)

Page 12: Tests et Validation du logiciel

Tests Combinatoires

Les combinaisons de valeurs de domaines d’entrée donne lieu a explosion combinatoire. Exemple : Options d’une boite de dialogue MS

Word. 21^2* 3 = 12 288 combinaisons

Page 13: Tests et Validation du logiciel

Tests Combinatoires – Approche PairWise

Tester un fragment des combinaisons de valeurs qui garantissent que chaque combinaison de 2 variables est testé

Idée sous-jacente : la majorité des fautes sont détectées par des combinaisons de 2 valeurs de variables

Exemple : 4 variables avec 3 valeurs possibles chacune 81 combinaisons 9 paires

Page 14: Tests et Validation du logiciel

Tests Combinatoires – Approche PairWise

L’approche Pairwisese décline avec des triplets, des quadruplets, …. mais le nombre de tests augmente très vite

http://www.pairwise.org/default.html

Problème du Pairwise: Le choix de la combinaison de valeurs n’est peut-

être pas celle qui détecte le bug … Le résultat attendu de chaque test doit être fournis

manuellement

Page 15: Tests et Validation du logiciel

Tests Combinatoires – Approche PairWise

Exemple adapté : classe d’équivalencesNombre de paramètres : 3 CENombre de caractères du nom : 2 CE Borne inférieure précédée par «=»: 2 CEBorne supérieure précédée par «To»: 2 CEBorne inférieure entier positive : 4 CEBorne supérieure entier positive : 4 CE

384 combinaison

Page 16: Tests et Validation du logiciel

Tests Combinatoires – Approche PairWise

No

mb

re d

e p

ara

tres

No

mb

re d

e c

ara

ctè

res

du

no

m

Bo

rne

infé

rieu

re p

réc

éd

ée

pa

r «=

»

Bo

rne

su

rieu

re p

réc

éd

ée

pa

r «T

Bo

rne

infé

rieu

re e

ntie

r po

sitiv

e

Bo

rne

su

rieu

re e

ntie

r po

sitiv

e

 

0 2 non oui 5 -10.5 for 5 to -10.5

0 3 oui non 50 5 for =50 5

2 2 oui oui -10.5 5 for ii,jj =-10.5 to 5

1 3 non non 5 50 for AAA 5 50

1 3 oui non -10.5 -10.5 for AAA =-10.5 -10.5

2 3 non oui -10 5 for AAA, BBB -10 TO 5

1 2 oui non 5 5 for AA=-10 -10.5

2 2 oui non -10 -10.5 for AA,BB=-10 -10.5

1 2 non oui 50 -10 for AA 50 TO -10

2 2 oui oui 50 50 for AA,BB=5 TO 50

2 3 oui non 5 -10 for AAA,BBB=5 -10

0 2 non non -10.5 -10 for -10.5 -10

0 2 oui non -10.5 50 for =-10.5 50

2 3 oui non 50 -10.5 for AAA,BBB=5 -10.5

1 3 oui oui -10 -10 for AAA=-10 to -10

0 2 oui non -10 50 for =-10 50

Page 17: Tests et Validation du logiciel

Tests Combinatoires – Approche PairWise

Risque de passer à coté du bugPossibilité de préciser le modèle de

génération des fichiers de testExemple : Microsoft PICT

Page 18: Tests et Validation du logiciel

Tests syntaxiques

Permet de définir les DT à partir d’une description formelle des données d’entrée.

Approche adaptée aux applications qui nécessitent de données d’entrée respectant une syntaxe rigide et bien définie.

Page 19: Tests et Validation du logiciel

Approche fonctionnelle Tests syntaxiques

3 phases :Définir la grammaireConstruire l’arbre de dérivation de la

grammaireConstruire les DTs

Page 20: Tests et Validation du logiciel

Approche fonctionnelle Tests syntaxiques

Première phase : Définition de la grammaire

Exemple : Programme « ZipFic » respectant la grammaire d’appelle suivante : <commande> :== <Sources> <Fic Zip> <Supp

source> <Sources> :== <fichiers> | <Répertoires>

<Fichiers> :== 1 à N <Fichier> séparés par « , » <Répertoires> :== 1 à N <Répertoire> séparés par « , »

<Supp source> :== O | N« :== » signifie « est composé par ». Le « | »

représente un « ou » logique.

Page 21: Tests et Validation du logiciel

Approche fonctionnelle Tests syntaxiques

Seconde phase : Construire l’arbre de dérivation complet de la grammaire.

Les nœuds terminaux sont ceux n’admettant pas d’autres sous branches vers le bas.

Les nœuds non terminaux sont ceux qui se décomposent en sous branches

Page 22: Tests et Validation du logiciel

Approche fonctionnelle Tests syntaxiques

1<Commande>

2<Sources>

3<Fic Zip>

4<Supp Source>

5<Fichiers>OU

6<Repertoires> 7

O8N

OU

9<Fichier>

11<Repertoire>

10,<Fichier>

12,<Repertoire>

Page 23: Tests et Validation du logiciel

Approche fonctionnelle Tests syntaxiques

Troisième phase : Définir les DTs Commandes valides:

Couvrir tous les nœuds non-terminaux FIC1 FIC_ZIP O REP1 FIC_ZIP2 O

Couvrir tous les nœud terminaux au moins une fois FIC1,FIC2 FIC_ZIP N REP1,REP2 FIC_ZIP N

Page 24: Tests et Validation du logiciel

Approche fonctionnelle Tests syntaxiques

Commandes invalides : Nombre non défini Erreurs par niveaux

Omission de nœuds à chaque niveau FIC_ZIP O REP1 N FIC1,FIC2 FIC_ZIP

Syntaxe des nœuds terminaux FIC1, REP1 FIC_ZIP FIC1 FIC_ZIP Z …