Mon chef m’a demandé de faire des tests

  • Sharebar

Mais c’est quoi un test?

Je crois que finalement la réponse n’est pas si simple qu’elle en a l’air: test unitaire (au niveau d’une méthode ou d’une classe ou de plusieurs classes, test d’intégration (de plusieurs classes entre elles ou de plusieurs projets entre eux), test fonctionnels, test de mes tests…

Est-il possible de définir une classification des tests et de leur trouver une place dans nos projets? Lesquels peuvent être automatisés? …

On peut définir 3 grandes familles de tests.

Test unitaire

C’est un test qui valide une portion de code la plus petite possible. Il peut s’appliquer à une méthode ou une classe ou un ensemble de classe…

Pour faire simple une méthode ou une classe définit un contrat. Le test unitaire permet de s’assurer que le contrat est rempli. De cette manière on s’assure de la non-régression lors des prochains refactorings…

Test d’intégration

Tests pour valider l’intégration de l’ensemble des briques logicielles d’une application. Ces tests s’appliquent sur l’application finale: l’application est construite, assemblée et installée sur un environnement dédié et on exécute ces tests dessus.

Tests fonctionnels

Tests qui permettent de valider que le logiciel répond bien aux spécifications fonctionnelles. Ces tests peuvent prendre la forme de scenario joué par les utilisateurs.

On peut citer Selenium pour des tests d’interface.

On peut aussi parler de FitNesse ou GreenPepper pour les spécification fonctionnelles exécutables: les spécification fonctionnelles sont déclinées en scenarii de testes fonctionnels. Ces tests sont rédigés dans un langage wiki et peuvent ensuite être exécutes automatiquement sur le code développé.

Comme nous venons de le voir, tous ces tests, qu’il s’agisse d’un test de la plus petite ligne de code ou d’un test correspondant à un scénario utilisateur sont réalisables à l’aide d’outils et peuvent être automatisés. Cette automatisation des tests à tous les niveaux est très importante voir nécessaire dans tout projet qui souhaite garantir la qualité et la maintenabilité du produit. C’est ce que permet de couvrir des outils d’intégration continue tels de Hudson ou Cruise Control.

This entry was posted in Integration Continue, Test. Bookmark the permalink.

Leave a Reply