GL4
Test Logiciel
Introduction
Olfa Mosbahi
[Link]@[Link]
Introduction
Quelques échecs logiciels :
▪ Non différenciation entre avion civil et avion militaire : guerre du Golfe
– Airbus iranien abattu (3 juillet 1988 ): 280 morts,
▪ Le crash d’Ariane 5 (4 juin 1996 ): 37 s après décollage réussi, Ariane
5 se fait exploser en vol. L’explosion est due à un défaut du logiciel de
contrôle (dépassement de capacité dans le calculateur du système de
guidage, problème de codage de la vitesse qui pouvait atteindre 300
qui nécessite 9 bits et pas 8 bits).
▪ Facteurs de non qualité du logiciel : mauvaises spécifications,
mauvaises réalisations, …
2
Introduction
Objectifs :
→ Présenter les concepts clés liés au test logiciel
→ A l’issue de ce module, un étudiant doit être capable de :
▪ Faire la différence entre les différents niveaux de tests,
▪ Comprendre le processus et les objectifs de tests,
▪ Extraire les cas de test à partir d’une spécification logicielle en
utilisant une technique de test,
▪ Faire la différence entre le métier du développeur et le métier
du testeur.
3
Introduction
Objectifs :
4
Introduction
Pourquoi les tests sont-ils nécessaires?
▪ Applications grand public (Ex. Logiciels des jeux, applications
web) ➔ Mécontentement et risque de perte du client
▪ Applications bancaires, commerce électronique ➔ Pertes
financières, risques des entreprises
▪ Logiciels pour automobiles, avionique, médecine ➔ Risque
sur les vies humaines
▪ Logiciels pour les engins de guerre, les stations nucléaires..
➔ Risque sur toute l’humanité
▪ Exemple de bug célèbre : Explosion de Ariane 5 en 1996
5
Introduction
Origine des défauts logiciels
▪ Erreurs humaines
o TimeToMarket de plus en plus serré
o Des systèmes logiciels de plus en plus complexes
o Des technologies de plus en plus innovantes
o Multiples interactions entre les systèmes
o Manque de communication
▪ Les conditions de l’environnement
o Radiations
o Magnétismes
o Pollution
6
Introduction
▪ Qualité
o C’est L’aptitude d’un produit ou d’un service à satisfaire les besoins des
utilisateurs.
▪ Assurance Qualité
o Mise en œuvre d’un ensemble approprié de dispositions préétablies et
systématiques destinées à donner confiance en l’obtention de la qualité
requise.
▪ Critères de qualité
o Confidentialité : Le logiciel est protégé contre tout accès non autorisé
o Efficacité : Aptitude d'un logiciel à bien utiliser les ressources matérielles telles
la mémoire, la puissance de l’U.C., etc. Minimisation de la consommation des
ressources (CPU, mémoire, disque, . . . )
o Robustesse : Aptitude à conserver un comportement conforme aux besoins
même dans des situations imprévues
o Adaptabilité : Facilité d’ajout/modification/suppression de fonctionnalités
7
Introduction
o Testabilité : Facilité de réalisation de tests
o Réutilisabilité : possibilité de réutiliser des portions de code dans le
cadre d’un autre projet
o Correction : degré de conformité par rapport aux spécifications.
o Fiabilité : aptitude d'un logiciel à assurer de manière continue le service
attendu,
o Traçabilité : capacité à identifier et/ou suivre un élément du cahier des
charges lié à un composant d'un logiciel,
o Extensibilité : facilité d'adaptation d'un logiciel aux changements de
spécification,
o Portabilité : Facilité à changer d’environnement d’exécution (Système
d’exploitation, matériel, . . . )
8
Introduction
▪ Vérification
o Avons-nous construit le produit correctement ?
o Vérifier une spécification par rapport aux attentes techniques
o Détection des Erreurs par rapport aux définitions précises établies lors
des phases antérieures de développement
➔ Le logiciel doit être conforme á sa spécification
▪ Validation
o Avons-nous construit le bon produit?
o Vérifier une spécification par rapport aux attentes métiers
o Détection des défauts par rapport aux besoins que le produit doit
satisfaire
➔ Le logiciel doit faire ce dont l’utilisateur a besoin
▪ Vérification : concerne les développeurs,
▪ Validation : concerne les utilisateurs. 9
Introduction
▪ Erreur/Défaut (bug)/Défaillance
o Erreur : Action humaine produisant un résultat incorrect. L’erreur est
humaine.
o Défaut (Bug) : Manifestation d’une erreur dans un logiciel.
o Défaillance (anomalie) : Modification d’un comportement requis
d’un système. Quand un code est exécuté cela peut générer une
défaillance.
➔ La défaillance est un événement, Un bug est l’état d’un logiciel
causé par une erreur.
10
Introduction
▪ Les types de V&V
o Statique : Analyse, contrôle
→ Vérifier des propriétés avant exécution afin de découvrir des
problèmes ou prouver sa correction (manuel ou automatique)
o Dynamique : Evaluer, expérimenter
→ Le système est exécuté sur des données de test et son exécution est
observé
▪ Les techniques de V&V
o Vérification symbolique : Run-time cheking, Exécution symbolique, etc.
o Vérification formelle : preuve ou model-cheking
o Analyse : de sécurité, risque, temps réel, etc.
o Les tests
▪ Les tests des logiciels
11
Objectif de ce cours !!
Introduction
Certification ISTQB : International Software Testing Qualification Board
Déroulement de l’examen
12
Introduction
13
Plan du cours
Chapitre 1 : Fondamentaux des tests
Chapitre 2 : Tester pendant le cycle de vie Logiciel
Chapitre 3 : Techniques Statiques
Chapitre 4 : Techniques de conception de tests
Chapitre 5 : Gestion des Tests
Chapitre 6 : Outils de Supports aux Tests
14