Support de cours de: Wafa Boussellaa Année : 2017-2018 Filières : 2ème ARS Wafa
Support de cours de: Wafa Boussellaa Année : 2017-2018 Filières : 2ème ARS Wafa Boussellaa Année 2017-2018 2 Plan du cours Chapitre I : Principes du Génie Logiciel Chapitre II : Cycle de vie d'un logiciel Chapitre III : Test et qualité d'un logiciel Wafa Boussellaa Année 2017-2018 3 Chapitre III : Test et qualité d'un logiciel Partie I : Introduction au Test des Logiciels Partie II : Le test structurel Partie III : Le test fonctionnel Wafa Boussellaa Année 2017-2018 4 Partie I. Introduction au Test des Logiciels 1. Introduction 2. Définition du Test 3. Difficultés du Test 4. Quelques Notions Fondamentales 5. Classification des tests selon la phase du cycle de vie 6. Les Techniques de test 7. Outils de Test Wafa Boussellaa Année 2017-2018 5 Introduction (Les bugs logiciels) Motivations du test → Coûts d’un Bug logiciel En 1990 : Réseau téléphonique AT&T bloqué durant 9h. → Problème dans un logiciel installé sur 114 routeurs. → bloqué 5 Millions d'appels à travers les USA. En 1996 : la fusée Ariane 5 explose après 30s de vol. → Erreur de conversion entre données numériques → $500M en matériel + $7B en développement En 2000 : « Bug de l'an 2000 » → format de date sur deux chiffres ( année 2000 codée par 00) → 300, 1600, ou même 5000 Milliards de $ de coûts. Wafa Boussellaa Année 2017-2018 6 Introduction (Les bugs logiciels) Motivations du test → Coûts d’un Bug logiciel En 1990 : Réseau téléphonique AT&T bloqué durant 9h. → Problème dans un logiciel installé sur 114 routeurs. → bloqué 5 Millions d'appels à travers les USA. En 1996 : la fusée Ariane 5 explose après 30s de vol. → Erreur de conversion entre données numériques → $500M en matériel + $7B en développement En 2000 : « Bug de l'an 2000 » → format de date sur deux chiffres ( année 2000 codée par 00) → 300, 1600, ou même 5000 Milliards de $ de coûts. Wafa Boussellaa Année 2017-2018 7 Introduction Remarquons que les bugs cités sont provoqués suite à des erreurs La chaîne causale de l'erreur est donc : Erreur → Défaut → Anomalie (ou dites défaillance) Objectif : S'assurer de la qualité des logiciels (Les bugs logiciels) Wafa Boussellaa Année 2017-2018 8 Deux aspects de la notion de qualité : Conformité avec la définition : VALIDATION Réponse à la question : Faisons-nous le bon produit ? ; Est-ce que le logiciel réalise les fonctions attendues ?; Contrôle en cours de réalisation, le plus souvent avec le client Défauts par rapport aux besoins que le produit doit satisfaire Correction d’une phase ou de l’ensemble : VERIFICATION Réponse à la question : Faisons-nous le produit correctement ?; Est-ce que le logiciel fonctionne correctement ?; Tests Erreurs par rapport aux définitions précises établies lors des phases antérieures de développement Introduction (Les Méthodes de Vérification et de Validation V&V) Wafa Boussellaa Année 2017-2018 9 Définition 1 : Selon l'IEEE (Standard Glossary of Software Engineering Terminology ; « Le test est l'exécution ou l'évaluation d'un système ou d'un composant par des moyens automatiques ou manuels, pour vérifier qu'il répond à ses spécications ou identier les différences entre les résultats attendus et les résultats obtenus ». Définition 2 : Selon G. J. Myers ( The art of Software Testing) « Tester, c'est exécuter le programme dans l'intention d'y trouver des anomalies ou des défauts ». Définition du Test Wafa Boussellaa Année 2017-2018 10 Le test logiciel est la méthode la plus populaire pour vérifier un logiciel. Cette méthode représente environ 40-60% du coût total du projet. Difficultés associées au processus d'introduction des défauts Il s'agit du processus de transformations successives réalisé lors des étapes de la démarche de programmation provoquant la perte des informations et l'introduction des erreurs Difficultés d'ordre psycologique ou « culturel » la raison principale est que, pour améliorer la qualité d’un programme, le test passe par une étape destructive, car un bon test est de trouver une erreur et la programmation est un processus constructif. Difficultés formelles le test exhaustif est impossible à réaliser, car il n’existe pas un algorithme général capable de démontrer l’exactitude d’un programme. C’est le problème de l’indécidabilité de la correction d’un programme. Selon E. W. "Testing can reveal the presence of errors but never their absence". Difficultés du Test Wafa Boussellaa Année 2017-2018 11 Évolution de la perception du test dans le temps Années 50 test = mise au point 1960 - 1980 test = «démonstration» (preuve de correction) 1980 test = «destruction» « détruire » = trouver des défauts Aujourd’hui test = «évaluation» moyen d’évaluation de la qualité Wafa Boussellaa Année 2017-2018 12 Quelques Notions Fondamentales Données de test (DT) : Ensemble d’entrées définies à fournir au logiciel lors d’une exécution. L’ensemble de données de test constitue un jeu de test. Pour soumettre ces jeux de test, une séquence d’actions doit être effectuée. On note souvent une DT en utilisant une notation ensembliste ( Exemple : DT1={x=5, y=5, b=56} Scénario de test : Un scénario de test est une séquence d’actions nécessaire à l’exécution du jeu de test. Oracle automatique de test : Outil qui évalue les résultats produits par le logiciel d’une manière automatique, en comparant les résultats du test avec les spécifications (résultats souhaités) du logiciel. Wafa Boussellaa Année 2017-2018 Classification des tests selon la phase du cycle de vie Les cas de tests sont élaborés (plans de test) lors de la partie descendante d’un cycle en V typique, en parallèle des phases de spécification, conception, et de codage. Wafa Boussellaa Année 2017-2018 14 Classification des tests selon la phase du cycle de vie Les tests unitaires : Test d’un programme ou d’un module isolé dans le but de s’assurer qu’il ne comporte pas d’erreur d’analyse ou de programmation. Les tests d'intégration : Tester les interfaces entre les composants. C'est au cours de cette phase que sont généralement pris en compte d'éventuels composants logiciels qui n'ont pas été développés dans le cadre du projet. Les tests de validation ou conformité : Validation de l'adéquation aux spécifications ( s'assurer que le logiciel réalise effectivement tout ce que le client est en droit d'en attendre). Wafa Boussellaa Année 2017-2018 15 Les Techniques de test Le Test fonctionnel ou « Test boite noire » : Technique de test où les cas de tests sont élaborés à partir d'une analyse des spécifications des fonctionnalités d'un composant ou système sans référence à sa structure interne. Les méthodes de test : Analyse partitionnelle Test aux limites Graphes cause-effet Tests syntaxiques Tests aléatoires Wafa Boussellaa Année 2017-2018 16 Les Techniques de test Le Test structurel ou « Test boite blanche » ou « test en verre » : Technique de test où les cas de tests sont basés sur une analyse de la structure interne d'un composant ou système (le code source). Deux classes de tests existent : Test structurel statistique : revues de code, estimation de la complexité, etc. – Test structurel dynamique : – Basés sur le graphe de flot de contrôle (toutes les instructions, toutes les branches, tous les chemins, …) – Basés sur la couverture du flot de données (toutes les définitions de variable, toutes les utilisations, ...) Wafa Boussellaa Année 2017-2018 17 Les outils de test Les outils de test automatique ou « oracle de test » sont classés selon le cas de test en question (fonctionnel ou structurel). Exemples : Test Designer : outil qui génère automatiquement des tests depuis un modèle UML. Junit : oracle de test pour les programmes JAVA. CPPunit et DeepCover : oracle de test pour les programmes C++. Wafa Boussellaa Année 2017-2018 18 Partie II. Le Test Structurel 1. Définition 2. Les Types de test 3. Le Test Structurel Dynamique Wafa Boussellaa Année 2017-2018 19 Définition Le test structurel ou « test à boite blanche » s’appuie sur l’analyse du code source de l’application (ou d’un modèle de celui-ci). Wafa Boussellaa Année 2017-2018 20 Test structurel Statique/dynamique Analyse dynamique Nécessite l’exécution du code Principe : A partir du code source et la spécification, produire des DT qui exécuteront un ensemble de comportements, et comparer les résultats avec ceux attendus. Méthode : Techniques de couverture du graphe de contrôle Couverture du flot de contrôle Couverture du flot de données Analyse statique Ne nécessite pas l’exécution du code Méthode : Parmi les techniques les plus utilisée : Estimation de la complexité Wafa Boussellaa Année 2017-2018 21 Test structurel dynamique : Couverture du graphe de contrôle Objectif : Produire des DT qui exécutent un ensemble de comportements du programme. Ce test utilise la spécification, le code source et le code exécutable du programme. Principe : Chaque programme est représenté par un graphe de contrôle (G) ; Un graphe de contrôle comporte : un seul sommet entrée ; un seul sommet sortie ; Les nœuds du graphe = les blocs d'instructions ; Les arcs ou branches = la possibilité de transfert de l’exécution uploads/Industriel/ 1000-cours-agl-chapitre3.pdf
Documents similaires










-
25
-
0
-
0
Licence et utilisation
Gratuit pour un usage personnel Attribution requise- Détails
- Publié le Nov 13, 2021
- Catégorie Industry / Industr...
- Langue French
- Taille du fichier 0.4291MB