Software testing
Les tests dans un projet
Cycle de vie
Issu du monde de l'industrie, le Cycle en V présenté par l'illustration ci-dessous est devenu un standard de l'industrie logicielle depuis les années 1980. C'est un modèle de gestion de projet qui permet, en cas d'anomalie, de limiter un retour aux étapes précédentes.
La branche descendante contient les phases de conception du logiciel et la branche montante contient les étapes de tests du logiciel. La pointe du V quant à elle représente la phase de réalisation. Chaque phase de la branche descendante a un lien avec une phase de la branche montante.

Cycle en V
Les niveaux de test
- Tests unitaires : ils consistent à valider unitairement les fonctions ou modules de l'application ;
- Tests d'intégration : ils consitent à valider l'intégration des différents modules entre eux ;
- Tests fonctionnels : ils consistent à valider la conformité de l'application finale quant à ses spécifications (fonctionnelles et techniques) décrites dans le cahier des charges avant livraison ;
- Tests de recette : comme les tests fonctionnels, ils consistent à valider la conformité de l'application finale quant à ses spécifications mais après livraison, chez le client.
Les techniques de test
Technique statique
- Consiste à inspecter le code en le lisant
- Permet de détecter seulement la moitié des fautes
- Impose au développeur de coder proprement
- Le code inspecté est exécuté à la main, ce qui prend du temps
Technique "boîte blanche"
- Ces tests sont conçus par rapport à l'implémentation des modules
- Ils tiennent compte de la structure du code des composants testés
- Ils permettent de déceler les erreurs de développement
Technique "boîte noire"
- Ces tests sont conçus sans connaissance de l'implémentation des modules
- Ils consistent à analyser l'aspect fonctionnel des composants par le biais d'entrées/sorties
- Ils permettent de déceler les erreurs de conception au regard des spécifications
La gestion des tests
Planification
Pour chaque niveau de test présenté ci-dessus, la planification des tests commence au début du processus de test pour ce niveau et continue tout au long du projet jusqu'à l'achèvement des activités de clôture pour ce niveau.
La planification des tests consiste à définir les objectifs de tests et à spécifier les activités de tests à mettre en oeuvre pour atteindre ces objectifs.
Contrôle
Les activités de contrôle sont exécutées tout au long de la campagne de tests afin d'assurer que les tests qui ont été planifiés sont exécutés correctement et que les objectifs sont bien vérifiés.
Conception
La conception des tests est la phase durant laquelle les objectifs de tests sont traduits en conditions de tests (environnement de test défini) et en cas de tests (comportement attendu selon des données injectées en entrée).
Exécution
L'exécution des tests est l'étape où le système est testé suivant des procédures de tests et où le résultat obtenu est comparé avec le résultat attendu afin d'identifier ou non des anomalies.
Il s'agit ensuite d'établir leur cause et de répertorier le tout de manière détaillée afin de faciliter leur correction ultérieure.
Analyse des critères d'arrêt
Au cours de cette activité, l'exécution des tests est évaluée pour chaque niveau de test en fonction des objectifs définis au cours de la phase de planification.
Si un ou plusieurs critères de sortie ne sont pas atteints, il faut soit changer les critères de sortie, soit concevoir et exécuter des cas de tests supplémentaires.