Les tests logiciels : les processus fondamentaux Implémentation des tests logiciels : bonnes pratiques

1.4.3.2. Conception des tests

Les objectifs de tests correspondent aux raisons ou buts que nous avons, lors de la conception et de l'exécution des tests. Ces principes dirigeront nos actions et mèneront à la conception de tests.

La conception des tests consiste à transformer des objectifs de tests en conditions de tests tangibles, puis en cas de tests. Les conditions de tests sont généralement abstraites alors que les cas de tests sont généralement concrets. Pour plus de détails sur la différence entre conception des conditions de tests et des cas de tests, voir chapitre 5.


une traçabilité bidirectionnelle entre la base de tests, les exigences et les
Une traçabilité bidirectionnelle entre la base de tests, les exigences et les risques d'une part et les conditions de tests d'autre part permet de s'assurer que toutes les exigences et tous les risques seront couverts par des tests. © Mindwalker - Fotolia.com

La phase de conception de tests comprend :

 l'identification et la priorisation des conditions de tests basée sur une analyse des objets de tests, de la structure de l'application et du système ;

 la conception des cas de tests de haut niveau et leur priorisation ;

 l'identification des environnements et données de tests nécessaire à l'exécution des tests ;

 la fourniture d'informations d'avancement, permettant de contrôler les activités de tests.

Une traçabilité bidirectionnelle entre la base de tests, les exigences et les risques d'une part et les conditions de tests d'autre part permet de s'assurer que toutes les exigences et tous les risques seront couverts par des tests, et que toute condition de tests est rattachée à un objectif de plus haut niveau.

Le niveau d'intégrité permettra de déterminer la profondeur et l'étendue des tests à effectuer, et donc orienter les conditions de tests à couvrir.


1.4.4. Implémentation des tests

 L'implémentation des tests consiste en la conversion des conditions de tests en cas de tests et en procédures de tests, avec des données de tests spécifiques et des résultats attendus précis. Des précisions sur l'environnement et les données de tests, ainsi que sur la séquences des cas de tests sont nécessaires afin d'anticiper l'exécution des tests.

Les tâches d'implémentation sont (liste non limitative) :

  finaliser, implémenter et ordonnancer les cas de tests en fonction des priorités. Ceci peut résulter des niveaux d'intégrité ou d'autres considérations telles que les risques ou l'importance des composants ;

 développer et ordonnancer les procédures de tests, en organisant les cas de tests et les données de tests. Ceci peut nécessiter la conception de pilotes et de bouchons ou de tests automatisés ;

  créer des suites de tests à partir des procédures et cas de tests, pour rentabiliser l'exécution des tests ;

 définir l'environnement de tests et concevoir les données de tests ;

 s'assurer que la traçabilité bidirectionnelle commencée lors des phases d'analyse et de conception des tests est continuée jusqu'au niveau des cas de tests ;

Il est nécessaire de s'assurer que les modifications n'ont pas introduit d'effet de bord

  fournir des informations d'avancement de réalisation, pour permettre une gestion efficace des activités de tests.

Un cas de tests se caractérise par un environnement de départ, des données d'entrée, des actions effectuées et un état attendu, comprenant les données attendues et l'environnement résultant attendu.

Des modifications de dernière minute, induites par des modifications de
l'environnement de tests, ou une réorganisation des priorités auront pour conséquences une modification des cas de tests, des procédures et des suites de tests. Une traçabilité exhaustive et détaillée permet de ne pas perdre de temps et d'assurer un suivi et un contrôle des tests dans ces conditions difficiles.


1.4.5. Exécution des tests

 L'exécution des tests, dans l'environnement de tests, sur le logiciel ou système à tester, de façon à découvrir des différences entre les résultats attendus et les résultats obtenus, inclut les tâches liées à l'exécution des cas de tests, procédures de tests et suites de test. Cela comprend :

 s'assurer que l'environnement de tests est prêt à l'exécution, y compris la présence de données de tests ;

 exécuter les cas de tests, procédures de tests et suites de test, soit manuellement soit automatiquement, selon l'ordre prévu ;

 noter les résultats de l'exécution des tests et identifier les versions des
composants testés, des outils de test et de l'environnement de tests ;

 comparer les résultats attendus avec les résultats obtenus ;

 identifier et analyser les différences entre les résultats attendus et les résultats obtenus et établir leur cause. Rapporter ces différences comme des incidents ou des anomalies, en fournissant le plus de détails possibles de façon à faciliter les corrections ultérieures ;

 renseigner les informations de suivi et de contrôle afin de permettre une
gestion efficace des activités de tests.


Les activités d'exécution des tests sont généralement des activités répétitives s'exécutant à nouveau à chaque correction anomalie. Il est nécessaire de s'assurer que les corrections ont corrigé le problème (tests de confirmation) et que les modifications introduites n'ont pas introduit d'effet de bord (tests de non-régression).

La traçabilité commencée dans les étapes précédentes doit continuer, pour associer aux objectifs, conditions et cas de tests, des informations sur l'exécution des tests et les résultats obtenus. Ceci permettra – en cas d'anomalie – de déterminer le niveau d'intégrité associé à la condition de tests, et donc l'importance de l'impact pour l'utilisateur et l'urgence des corrections.