Download
tests et validation du logiciel n.
Skip this Video
Loading SlideShow in 5 Seconds..
Tests et Validation du logiciel PowerPoint Presentation
Download Presentation
Tests et Validation du logiciel

Tests et Validation du logiciel

101 Views Download Presentation
Download Presentation

Tests et Validation du logiciel

- - - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript

  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. • Qu’est ce qu’une limite ? • Valeurs très élevée, nulle,… • Valeurs des bornes d’une 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 à 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

  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 d’un fichier • Dépassement de tableau • Dépassement de capacité d’une 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 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.

  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

  11. 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)

  12. 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

  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 • 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

  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

  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 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.

  19. Approche fonctionnelle Tests syntaxiques • 3 phases : • Définir la grammaire • Construire l’arbre 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 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.

  21. 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

  22. Approche fonctionnelle Tests syntaxiques 1 <Commande> 4 <Supp Source> 2 <Sources> 3 <Fic Zip> 5 <Fichiers> 6 <Repertoires> 8 N OU 7 O OU 9 <Fichier> 10 ,<Fichier> 12 ,<Repertoire> 11 <Repertoire>

  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 • …