La conception des tests est l’activité qui permet d’identifier et d’extraire à partir d’une base de test, les éléments suivants :
- Les conditions de test : c’est-à-dire les fonctions à vérifier
- Les cas de test qui décrivent comment ces fonctions seront testés
- Et les données à utiliser pour réaliser les tests
Il existe plusieurs techniques qui permettent de concevoir des tests. Dans ce syllabus de l’ISTQB, 3 techniques seront présentées :
- Les techniques de conception de tests de type « Boite Noire »
- Les techniques de conception de tests de type « Boite blanche »
- Et des techniques de conception de tests basées sur l’expérience
Boite noire :
Les techniques de conception Boite Noire sont aussi appelées techniques de conception basées sur les spécifications.
Ces techniques permettent de juger le produit selon ce qu’il est sensé faire, sans s’attarder sur les détails techniques de sa fabrication.
Les tests conçus selon les techniques boites noire sont directement dérivés de la documentation qui décrit le comportement fonctionnel et non fonctionnel attendu de l’application.
- L’application doit permettre de créer des commandes en ligne
- De consulter les commandes en cours
- De modifier les commandes en cours
- De réaliser des transactions en moins de 5 secondes.
- De permettre à un nombre précis d’utilisateurs de se connecter en même temps.
- Etc..
Toutes ces exigences ne dépendent pas ni du langage de programmation, ni de la base de données utilisés.
Les tests boite noire n’utilisent aucune information concernant la structure interne du système à tester.
Boite blanche :
Les techniques boite blanche par contre sont basées sur la structure interne du système.
Pour réaliser des tests de type boite blanche, il faut connaitre les modules qui composent le logiciel et comment ils sont développés.
Ces tests sont donc réalisés par des intervenants qui ont accès à la structure logicielle de l’application.
Ces techniques boite blanches sont aussi appelées les techniques structurelles ou les techniques basées sur les structures.
Techniques basées sur l’expérience :
A côtés de des techniques boite noire et des techniques boite blanche, il existe des techniques issues de l’expérience de celui qui réalise le test pour détecter les faiblesses de l’application.
Ces techniques ne se basent ni sur la documentation ni sur la structure logicielle mais sur l’intuition de celui qui réalise les tests, qu’il soit développeur, testeur ou utilisateur.
Une technique de conception peut faire partie de plusieurs catégories.
Si on utilise la documentation de spécifications pour concevoir les cas de tests alors on utilise une technique de conception de type boite noire.
Si on utilise la structure interne d’un logiciel pour dériver les cas de tests alors on utilise une technique de conception de type boite blanche.
Caractéristiques habituelles des techniques de conception :
Boite noire :
Les spécifications peuvent être purement textuelle ou elle peuvent contenir des modèles et des diagrammes pour représenter le fonctionnement d’une application.
Le fonctionnement d’une application peut être modélisé sous forme d’un diagramme qui représente les utilisations possibles qu’on peut faire d’un système.
Ce modèle ou diagramme peut représenter des chemins fonctionnels possibles selon les actions de l’utilisateurs.
On peut directement dériver des cas de tests à partir de ces modèles.
Boite blanche :
Des cas de tests peuvent être dérivés du code source de l’application ou à partir de la conception de son architecture logicielle.
Le code source d’une application peut aussi être modélisé sous forme d’un graphe.
Ce graphe reprend toutes les instructions du code source et identifie les chemins d’exécution possibles.
Les cas de test peuvent avoir un bon niveau de couverture de l’application logicielle si les cas de tests vérifient tous les chemins possibles du graphe.
Si les cas de tests ne couvrent pas tous les chemins possibles du graphe alors des cas de test complémentaires peuvent être conçus pour améliorer la couverture du logiciel par les tests.
L’expérience :
Ce type de techniques se base sur :
le niveau d’expertise dans les tests logiciels et le domaine métier testé des personnes qui font les tests.
Ce qui est valorisé dans ce type de test est le degré d’expérience que possède celui qui va faire les tests dans ce même type de produit logiciel qui fera l’objet des tests et de son environnement technique.
Parfois les testeurs ont un tel niveau de recul sur le produit fabriqué qu’ils apportent des check-lists déjà prêtes contenants les défauts et les vulnérabilités possibles que les produits du même type (que celui à tester) ont habituellement, cela apporte un gain de temps et d’efficacité des tests appréciables.