Télécharger la présentation
La présentation est en train de télécharger. S'il vous plaît, attendez
Publié parLouie Perez Modifié depuis plus de 11 années
1
Tests et Validation du logiciel 02/2007 – 06/2007
2
Tests aux limites Constat : les bugs se cachent dans les coins ! Un aspect des méthodes fonctionnelles les plus efficaces. Quest ce quune limite ? Valeurs très élevée, nulle,… Valeurs des bornes dune boucle Données non valides …
3
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 à lintérieur et juste à lexté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
4
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
5
Tests aux limites Cas général : pour un paramètre appartenant à un interval, génération de 6 DT Exemple P appartient à [0 – 100]. Liste des DTs : -1, 0, 1, 99, 100, 101
6
Tests aux limites Exemples de bugs aux limites ? Table de base vide, Fichier absent Oublie du traitement du premier ou du dernier record dun fichier Dépassement de tableau Dépassement de capacité dune variable typée
7
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 dun triangle. Le programme doit préciser la nature du triangle (équilatéral, isocèle, scalène, impossible) Donner des exemples de valeurs aux limites.
8
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
9
Tests aux limites - Exemple Fonction faisant une recherche dichotomique dans un tableau (trié)
10
Tests aux limites - Exemple Fonction faisant une recherche dichotomique dans un tableau (trié) Exemple DT avec limite TableauElémentTableClé Sortie (trouv, A) 1 seule valeurDans le tableau[17]17(true, 0) 1 seule valeurPas dans le tableau[17]27(false, ???) Plus dune valeur1er élément dans le tableau[3,17,33,42,58]3(true, 0) Plus dune valeurdernier élément dans le tableau[3,17,33,42,58]58(true, 4) Plus dune valeurmédian dans le tableau[3,17,33,42,58]33(true, 2) Plus dune valeurnon présent dans le tableau[3,17,33,42,58]1(false, ???)
11
Partitionnelle - Limite Lanalyse partitionnelle est une méthode qui vise à diminuer le nombre de cas de tests par calcul de classes déquivalence Le choix de conditions dentrée aux limites est une heuristique solide de choix de données dentrée au sein des classes déquivalence Le test aux limites produit à la fois des cas de test nominaux (dans lintervalle) et de robustesse (hors intervalle)
12
Tests Combinatoires Les combinaisons de valeurs de domaines dentrée donne lieu a explosion combinatoire. Exemple : Options dune boite de dialogue MS Word. 21^2* 3 = 12 288 combinaisons
13
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
14
Tests Combinatoires – Approche PairWise Lapproche 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 nest peut- être pas celle qui détecte le bug … Le résultat attendu de chaque test doit être fournis manuellement
15
Tests Combinatoires – Approche PairWise Exemple adapté : classe déquivalences Nombre de paramètres : 3 CE Nombre de caractères du nom : 2 CE Borne inférieure précédée par «=»: 2 CE Borne supérieure précédée par «To»: 2 CE Borne inférieure entier positive : 4 CE Borne supérieure entier positive : 4 CE 384 combinaison
16
Tests Combinatoires – Approche PairWise Nombre de paramètres Nombre de caractères du nom Borne inférieure précédée par «=» Borne supérieure précédée par «To» Borne inférieure entier positive Borne supérieure entier positive 02nonoui5-10.5for 5 to -10.5 03ouinon505for =50 5 22oui -10.55for ii,jj =-10.5 to 5 13non 550for AAA 5 50 13ouinon-10.5 for AAA =-10.5 -10.5 23nonoui-105for AAA, BBB -10 TO 5 12ouinon55for AA=-10 -10.5 22ouinon-10-10.5for AA,BB=-10 -10.5 12nonoui50-10for AA 50 TO -10 22oui 50 for AA,BB=5 TO 50 23ouinon5-10for AAA,BBB=5 -10 02non -10.5-10for -10.5 -10 02ouinon-10.550for =-10.5 50 23ouinon50-10.5for AAA,BBB=5 -10.5 13oui -10 for AAA=-10 to -10 02ouinon-1050for =-10 50
17
Tests Combinatoires – Approche PairWise Risque de passer à coté du bug Possibilité de préciser le modèle de génération des fichiers de test Exemple : Microsoft PICT
18
Tests syntaxiques Permet de définir les DT à partir dune description formelle des données dentrée. Approche adaptée aux applications qui nécessitent de données dentrée respectant une syntaxe rigide et bien définie.
19
Approche fonctionnelle Tests syntaxiques 3 phases : Définir la grammaire Construire larbre de dérivation de la grammaire Construire les DTs
20
Approche fonctionnelle Tests syntaxiques Première phase : Définition de la grammaire Exemple : Programme « ZipFic » respectant la grammaire dappelle suivante : :== :== | :== 1 à N séparés par «, » :== O | N « :== » signifie « est composé par ». Le « | » représente un « ou » logique.
21
Approche fonctionnelle Tests syntaxiques Seconde phase : Construire larbre de dérivation complet de la grammaire. Les nœuds terminaux sont ceux nadmettant pas dautres sous branches vers le bas. Les nœuds non terminaux sont ceux qui se décomposent en sous branches
22
Approche fonctionnelle Tests syntaxiques 1 2 3 4 5 OU 6 7O7O 8N8N OU 9 11 10, 12,
23
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
24
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 …
Présentations similaires
© 2024 SlidePlayer.fr Inc.
All rights reserved.