Plusieurs postes sont disponibles chez Nmédia!Amène ton talent, on fournit le plaisir!
Les tests unitaires ou l’assurance d’un livrable de qualité

Les tests unitaires ou l’assurance d’un livrable de qualité

14 août 2014Par Mathieu Blais
Catégorie :

L’importance des tests unitaires

En programmation, on néglige souvent l’importance de faire des tests unitaires afin de vérifier le bon fonctionnement du code que l’on écrit. On croit, à tort, que le temps passé à coder nos tests est du temps perdu qui pourrait être utilisé à coder autre chose. En réalité, cette étape fait partie d’un bon processus d’assurance qualité et nous assure que le code qu’on écrit répond bien aux requis de la fonctionnalité qu’il nous a été demandé de programmer.

Découvrez différentes plateformes de tests

Il existe plusieurs plateformes pour effectuer des tests unitaires mais les deux principales en .NET sont NUnit et MSTest. Elles sont comparables, et à part quelques petites différences que je ne listerai pas dans cet article, les deux offrent majoritairement les mêmes fonctionnalités. Une recherche sur Google vous permettra de trouver rapidement des comparatifs de ces deux plateformes. Notez que les exemples de cet article ont été écrits avec MSTest de Microsoft.

RedGreenRefactor, un patron bien connu des testeurs

[img]06-red-green-refactor.jpg|350||true|06_Red_Green_Refactor|Source : http://agileinaflash.blogspot.ca/2009/02/red-green-refactor.html/[/img]


Un des patrons de programmation bien connu pour faire des tests unitaires est le RedGreenRefactor. Ce patron consiste à écrire en premier lieu un test unitaire qui échoue (Red). Ensuite, écrire juste assez de code afin de faire en sorte que le test s’exécute avec succès (Green). Enfin, améliorer notre code en exécutant notre test après chaque changement pour s’assurer qu’il s’exécute toujours avec succès (Refactor). Il est très important que la première étape soit celle d’avoir un test qui échoue car sinon nous n’aurons jamais la certitude que notre test fait vraiment le travail.

RedGreenRefactor en action

Voici simplement mais concrètement, comment implémenter le patron RedGreenRefactor. Nous allons utiliser une classe définissant un usager et coder le test qui vérifiera si la méthode de validation garantissant que l’usager a un nom et un prénom fait bien son travail.

Utilisons la définition de classe suivante :

[img]capture-3.png|450||true|Capture 3|[/img]


Ensuite, codons un test qui vérifiera la méthode de validation « ValideNomPrenom ». Présentement la méthode retourne toujours false donc lorsque nous exécuterons notre test une première fois il échouera. Nous serons alors au stade Red du patron.

[img]capture-2.png|450||true|Capture 2|[/img]

[img]image-blogue-2.png|450||true|Image blogue 2|[/img]

Maintenant, écrivons le minimum de code pour faire en sorte que notre test s’exécute avec succès. Modifions la méthode « ValideNomPrenom » pour que le code ressemble à ce qui suit et exécutons notre test à nouveau. Nous serons alors au stade Green du patron.

[img]capture4.png|450||true|Capture|[/img]

[img]image-blogue2.png|450||true|Image blogue 2|[/img]


Maintenant qu’on sait que notre test fait le travail, il ne nous reste qu’à améliorer notre code et exécuter notre test après chaque changement (Refactor).

En conclusion

Rappelez-vous toujours que « Tout code est coupable tant qu’il n’est pas prouvé innocent » alors assurez-vous de livrer de la qualité en testant le code que vous écrivez. Ces tests ne sont pas perdus, bien au contraire, au fil du temps, ils vous assureront que malgré les changements et améliorations que vous faites à votre code, ce qui fonctionnait avant vos changements fonctionne toujours après. Vous aurez la certitude de ne pas avoir introduit d’erreur et votre code sera assurément plus robuste et plus fiable.