Software testing
Les tests
Définition
Le test logiciel est l'exécution d'un système par des moyens manuels ou automatiques afin de démontrer qu'il répond à ses spécifications ou d'identifier les écarts entre les résultats attendus et les résultats obtenus.
Objectifs des tests
Les objectifs des tests sont dans un premier temps d'assurer la qualité du système développé et dans un second temps d'éviter les bugs.
Qualité logicielle
La qualité d'un logiciel se décompose en plusieurs critères :
- Facilité d'utilisation : simple à prendre par l'utilisateur
- Fiabilité : tolérant aux pannes
- Maintenabilité : facile à corriger et à faire évoluer
- Performances : présente des temps de réponse acceptables
- Portabilité : capable de fonctionner dans des environnements d'excution différents
Les bugs
Les bugs sont des comportements inattendus du système compte-tenu de ses spécifications. Ils sont dûs à des défauts provenant soit d'éléments présents soit d'éléments manquants dans le logiciel. Ces défauts découlent eux-mêmes d'erreurs dans la conception ou dans l'implémentation du système.
En plus d'engendrer des dysfonctionnements au sein d'un système, le coût de correction des bugs est multiplié par 10 à chaque phase de retard du projet, c'est pourquoi il est important de les éviter.
Analyse du risque
Cependant, il est difficile voire impossible d'éliminer l'intégralité des bugs d'un système (faute de temps), c'est pourquoi il est nécessaire de fixer pour chaque objectif de test un facteur de risque.
Fréquence
Priorité |
Inévitable |
Fréquent |
Occasionnel |
Rare |
---|---|---|---|---|
Critique | Haute |
Haute |
Elevée |
Moyenne |
Sévère | Haute |
Elevée |
Elevée |
Basse |
Majeure | Elevée |
Elevée |
Moyenne |
Basse |
Mineure | Moyenne |
Basse |
Basse |
Basse |
Périmètre des test
Un peu de vocabulaire afin de mieux appréhender les tests.
L'objectif de test est un comportement du système à analyser.
Les données de test sont les informations que l'on injecte en entrée du système pour déclencher l'objectif de test.
Le résultat de test est le comportement obtenu en sortie d'exécution de test.
Un cas de test comprend les données en entrée du système et le comportement que l'on attend en sortie de test.
Méthodes de test
L'activité de test ne se suffit pas à elle-même, ce n'est pas parce que l'on peut prouver que le système fait ce qu'il doit faire (respecte ses spécifications) qu'il répond au besoin pour lequel il a été développé.
Ainsi, il existe deux méthodes qui permettent de confirmer le bon fonctionnement d'un système, à savoir :
- Vérification : consiste à prouver que le système fonctionne correctement, on dit dans ce cas qu'il est conforme à ses spécifications ;
- Validation : consiste à prouver que le système répond aux attentes de l'utilisateur.