1 / 36

Tests et Validation du logiciel

Tests et Validation du logiciel. 02/2007 – 06/2007. Tests de validation. Dès la fin des tests d’intégration Objectif : « Vérifier qu’on a fait le bon logiciel » Point de vue du développeur  point de vue du client Tests boîtes noires Aspect contractuel Utilisation des spécifications.

royal
Download Presentation

Tests et Validation du logiciel

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Tests et Validation du logiciel 02/2007 – 06/2007

  2. Tests de validation • Dès la fin des tests d’intégration • Objectif : « Vérifier qu’on a fait le bon logiciel » • Point de vue du développeur  point de vue du client • Tests boîtes noires • Aspect contractuel • Utilisation des spécifications

  3. Tests de validation • 1ère Stratégie • Identification de toutes les fonctions du logiciel et les tester séquentiellement • 2nde Stratégie • Tests des caractéristiques du logiciel • Interfaces (conformité avec les spécifications : écrans, fichiers, messages d’erreurs, …) • Ergonomie • Performance, endurance (temps de réponse, utilisation des ressources) • Robustesse, sûreté (mode dégradé) • Installation, configuration • …

  4. Tests de validation • Validation dans un environnement le plus proche possible de celui de production (ex de la jvm) • Données réelles

  5. Conception et tests • Préoccupation des tests avant la production de code • Préparation des dossiers de test dès la stabilisation des spécifications • Penser « tests » en • Ecrivant les spécifications. • Pensant l’architecture. • Ecrivant le code.

  6. Conception et tests • Spécification : • 1 paragraphe fonctionnel de 50 lignes -> 20 lignes individuelles représentant chacune une règle de gestion • Architecture : • Penser une architecture facilitant le test et a fortiori l’identification de problèmes • Ex : centraliser les accès aux données dans une module unique • Code : • If … XOR  if … and ….

  7. Techniques de test Introduction Classification des techniques Approche fonctionnelle Approche structurelle Plan

  8. Techniques de tests - Introduction Premier type d’approche • Tests boîtes noires • Tests fonctionnels • Méconnaissance de l’implémentation technique du besoin fonctionnel • Les jeux d’essai dépendent des spécification du besoin • Tests boîtes blanches • Tests structurels • Les jeux d’essai dépendent de l’analyse du code source

  9. Techniques de tests - Introduction Second type d’approche • Tests dynamiques : Produire des DT, à partir du code source et spécification, qui exécuteront un ensemble de comportements, comparer les résultats avec ceux attendus… • Techniques de couverture du graphe de contrôle • Couverture du flot de contrôle • Couverture du flot de données • Test mutationnel (test par injection de défaut) • Exécution abstraite • Test évolutionniste (algorithme génétique) • Tests statiques : pas d’exécution de code • Revue de code • Estimation de la complexité • Preuve formelle (prouveur, vérifieur ou model-checking) • Exécution symbolique • Interprétation abstraite

  10. Techniques de tests - Introduction • Approche dynamique • Limité par l’exécution partielle de l’exhaustivité des comportement du programme • Approche statique • Détection d’erreurs indépendantes de l’application • Vue globale algorithmique • Limites tests statiques (être dissociés de l’exécution réelle du programme)

  11. Techniques de tests - Introduction

  12. Techniques de tests - Introduction • Test positif • Test négatif

  13. Techniques de tests - Introduction • Exemple : test d’une voiture • Vérification du comportement extérieur du véhicule par rapport aux spécification (vitesse maximal, freinage, fonctionnement ordinateur de bord, …) •  tests fonctionnels, boîte noire

  14. Techniques de tests - Introduction • Examen du moteur : Vérification de la structure interne du véhicule. • Tests structurels • Moteur démarré • Tests accélération : Test dynamique • Moteur arrêté • Montage pistons, angle de serrage du berceau, etc..). Test statique

  15. Techniques de tests - Introduction • Positif – négatif • Débrancher un des composants du régulateur de vitesse

  16. Techniques de tests • Avantage - inconvénient des techniques Function sum (x as integer, y as integer) as integer If (x=600) and (y = 500) then sum := x-y Else sum := x+y End

  17. Techniques de tests • Test fonctionnel • Pas d’accès au code source • Quasi impossibilité de détecter le défaut du logiciel • Test structurel • Exemple : couverture de toutes les instructions • Erreur sur 600+500=100 au lieu de 1100 • Problématique de l’oracle !

  18. Techniques de tests • Erreurs commises (comission error) •  tests structurels • Erreurs d’omission (omission error) •  tests fonctionnels • Analogie correcteur d’orthographe • Analyse du texte : erreurs commises et pas les phrases absentes

  19. Techniques de tests • Efficacité des techniques de tests / facteurs dépendants • La chance (et oui) • Le type d’application • L’expérience du testeur • L’environnement matériel • Type d’erreur recherchée • Méthode de développement • La documentation • Précision de la localisation d’erreur de le technique de tests • Localisation de l’anomalie • Structurel : localisation assez précise • Fonctionnel : localisation floue…

  20. Classification des techniques de tests • Nécessité d’au moins un des objets : • Spécifications du programme • Code source du programme • Code binaire correspondant

  21. Classification des techniques

  22. Classification des techniques • Fonctionnelles (boîtes noires): • Classes 1,4,5 • Structurelles (boîtes blanches) • Classes 2,3,6,7 • Dynamiques • Classes 1,3,5,7 • Statiques • Classes 2,4,6

  23. Classification des techniques • Il n’existe pas de classification officielle !Chaque ouvrage, auteur, site défini à sa manière les différentes techniques de test.

  24. Techniques de test Introduction Classification des techniques Approche fonctionnelle Approche classique Analyse partitionnelle Test aux limites Graphes cause-effet Tests syntaxiques Tests aléatoires … Approche structurelle Comparaison des approches Efficacité des techniques de tests Plan

  25. Approche fonctionnelle classique • Objectifs • « tester que le logiciel fait effectivement ce qu’il est censé faire ». • Test de chacune des fonctions que le composant doit accomplir sans ce soucier de la structure interne du programme. • Boite Noire • Doc de spécifications / cahier des charges • Approche privilégiée à ce jour.

  26. Approche fonctionnelle classique

  27. Approche fonctionnelle classique • Exemple : Logiciel d’écoute de port • La bouton de validation permet d’ouvrir le port indiqué dans la zone de saisie concernée • Le logiciel trace : • L’ouverture du port • Les ouvertures de connexion cliente • Les fermeture de connexion cliente • Le texte reçu à chaque réception du caractère CR ou LF • La réception du mot « QUIT », case sensitive, met fin à la communication •  préparer dossier de test + DT

  28. Une classe d’équivalence correspond à un ensemble de données de tests supposées tester le même comportement, c’est-à-dire activer le même défaut. L’analyse partitionnelle

  29. L’analyse partitionnelle • Se base sur le domaine de variation des données en entrée du composant logiciel. • Segmente les cas fonctionnels en supposant que touts cas d'un segment se comporte comme les autres • Axiome: si le test est validé pour un cas A , il est forcément bon pour tout cas du même ensemble. Établissement de classes de données équivalents. • Une DT = au moins un choix quelconque d'un représentant de chaque Classe

  30. L’analyse partitionnelle • Méthode : Trois phases • Pour chaque donnée d ’entrée, calcul de classes d ’équivalence sur les domaines de valeurs, • Choix d’un représentant de chaque classe d’équivalence, • Composition par produit cartésien sur l’ensemble des données d ’entrée pour établir les DT.

  31. L’analyse partitionnelle • Règles de partitionnement des domaines • Si la valeur appartient à un intervalle, construire : • une classe pour les valeurs inférieures, • une classe pour les valeurs supérieures, • n classes valides. • Si la donnée est un ensemble de valeurs, construire : • une classe avec l ’ensemble vide, • une classe avec trop de valeurs, • n classes valides. • Si la donnée est une obligation ou une contrainte (forme, sens, syntaxe), construire : • une classe avec la contrainte respectée, • une classe avec la contrainte non-respectée

  32. L’analyse partitionnelle - Exemples • Soit F, fonction qui calcule la valeur absolue du produit des entrées E1 et E2 de type INT. • Deux données en entrée : E1 et E2.

  33. L’analyse partitionnelle - Exemple

  34. L’analyse partitionnelle - Exemple • Le programme à spécifier reçoit en entrée trois valeurs entières censées représenter les longueurs des cotés d’un triangle. Il doit vérifier si ces valeurs peuvent définir un triangle. • Si la réponse est positive, le programme doit calculer le type du triangle : • scalène, isocèle, équilatéral. • Des valeurs entières x, y et z peuvent définir un triangle si et seulement si elles vérifient les inégalités suivantes : • x < y + z &&y < z + x &&z < x + y

  35. L’analyse partitionnelle - Exemple • L’instruction FOR n’accepte qu’un seul paramètre en tant que variable auxiliaire. Son nom ne doit pas dépasser 2 caractères non blancs. Une borne supérieure et une borne inférieure doivent être précisées: la borne inférieure est précédée du mot-clé ‘=‘ et la borne supérieure est précédée par le mot-clé ‘TO’. Les bornes sont des entiers positifs.

  36. Classe d’équivalence : Nombre de paramètres DT (0,1,2) Nombre de caractères du nom DT (‘A’,’AB’,’ABC’) Borne Inférieure DT (précédée par = , non précédée par =) Borne Supérieure DT (précédée par To, non précédée par To) For A=1 to 10 For =1 to 10 For A,B =1 To 10 For AB=1 to 10 For ABC=1 to 10 For A 1 to 10 For a=1 10 L’analyse partitionnelle - Exemple

More Related