TESTS UNITAIRES

Les tests unitaires semblent être à la phase de test, branche remontante du cycle en V, ce qu'est la conception détaillée dans la branche descendante. Ca "embête" tout le monde. Et pourtant...

Quel plaisir de pouvoir être sûr du comportement d'une fonction et donc d'être en mesure de pouvoir dire que seuls les paramètres d'appel de la fonction peuvent être incriminés! Que de temps gagné! Et quel plaisir de rejouer les tests unitaires d'un seul clic! Et pan dans la régression!

Un test unitaire consiste à rédiger un scénario, scripté ou codé dans le langage de développement, qui peut être lancé, automatiquement ou non, à tout moment. De par sa conception même, ce test est très rapide à dérouler, vraiment très rapide, sauf contrainte liée à la spécification elle-même évidemment (par exemple: mettre A=10 et B=0, puis attendre 30 secondes avant de vérifier B. Dans ce cas, il faudra vraiment attendre 30 secondes, alors que l'initialisation du test et sa vérification ne durent que quelques fractions de secondes!). De plus, il est très facile d'enchaîner les tests unitaires et de tracer leurs résultats. Seul restera le temps à passer pour les dépouiller, et encore, cela peut aussi être automatisé. Mais quel confort!

Le seul problème est le temps mis pour développer un test unitaire, temps que l'on peut empiriquement évaluer comme étant pratiquement identique au temps mis pour développer la fonction testée...

Tout est affaire de stratégie: dans moult projets, les tests unitaires sont ignorés pour gagner du temps. A charge du chef de projet d'évaluer s'il préfère gagner du temps à court terme ou bien gagner du temps et beaucoup d'argent sur la maintenance. A titre personnel, le projet sur lequel j'ai travaillé qui a nécessité le moins de maintenance a été un projet dans lequel les tests unitaires ont été appliqués. Et jamais de régression détectée. C'est vrai que cela a un coût, mais un process bien rôdé incluant des tests unitaires devrait avoir raison de toutes les réticences. Bon courage au chef de projet adepte des tests unitaires!