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 :

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 :