Voir le flux RSS

autran

Les tests unitaires et la documentation du code

Noter ce billet
par , 01/04/2017 à 19h35 (221 Affichages)
On ne parle aujourd'hui plus que de développement orientés ou piloté par les tests. Et cette mode n'impose pas que les tests unitaires mais également les tests de recette de fin de sprint...

On n'imagine donc plus développer une classe sans que des tests unitaires ne soient strictement pensés pour chaque méthodes (même les plus implicites). C'est donc une tache supplémentaire qui est demandée au développeur. Cette tache, en amont de la conception et de la production de code, vient donc en supplément d'une autre tache qui incombe également au développeur : la documentation du code.

La documentation du code, le dessert préféré des développeurs devrait en théorie se faire en dans le temps du codage. Heu, j'aimerais que l'on me cite des codeurs qui documentent une classe avant qu'elle ne soit testée, voire avant que les classes appelantes ne soient elles-mêmes testées. Il arrive même que l'application soit totalement recettée par le client sans que le code ne soit encore documenté dans la mesure où c'est un livrable ultérieur.
De plus, documenter le code est souvent inutile au travail du développeur et presque toujours contre-productif. A l’inverse, l'activité de test sera bien acceptée par un développeur qui y trouvera rapidement son intérêt.
Attention je ne dis pas que la documentation du code est inutile, bien au contraire, mais juste qu'elle n'est pas utile au développeur pour livrer un code fiable et performant. Évidemment, elle sera indispensable au développeur qui devra maintenir le code produit par un autre.
On peut donc dire que le développeur ne voit pas toujours l’intérêt de documenter son code mais obtient un retour sur investissement très net avec les tests unitaires. Ne pourrait on pas fusionner les 2 activités suivant quelques règles de bon sens qui respecteraient la physiologie du développeur ?
Respecter la physiologie d'un développeur, c’est comprendre qu'il peut concevoir des algorithmes plus ou moins abstraits pour implémenter dans un langage de programmation les fonctionnalités demandés par le client. En revanche il n'est pas le plus doué pour faire de la prose et expliquer que int a = 0; a += paramQty; signifie que la variable a sera un entier codé sur x octets initialisé à la valeur 0 et sera incrémenté de la valeur passée en paramètre à la méthode et représentant la quantité demandé par l'utilisateur.
Pour mémoire, je rappelle que la documentation du code ne présente un intérêt en lecture que pour un autre développeur qui va reprendre ce code et sera lui aussi d'une physiologie similaire à celui qui a produit le code objet de l'éventuel maintient en condition opérationnelle. Donc il préférera lire du code ou du test que de la prose.

Alors je pense que la règle simple pour faire converger les commentaires de code et les tests unitaires sur une démarche agile est la suivante :
  • Rédiger les tests unitaires lors des ateliers avec le clients. Ou à l'issue de l'atelier pendant que le chef de projet boit le café avec les fonctionnels. Ces tests unitaires suffiront à faire comprendre sans tautologie ce que l'on attend de chaque méthode de classe.
  • Commentez le code uniquement lors de la conception de choses un peu abstraite

Du coup, lors des revues de code et de documentation associée, le chef de projet qui a du mal à comprendre du code Junit, unittest etc.. passera gentiment son chemin et le développeur qui maintiendra le code y trouvera son bonheur.

Et vous, comment vous accommodez-vous de ces 2 activités ?

Envoyer le billet « Les tests unitaires et la documentation du code » dans le blog Viadeo Envoyer le billet « Les tests unitaires et la documentation du code » dans le blog Twitter Envoyer le billet « Les tests unitaires et la documentation du code » dans le blog Google Envoyer le billet « Les tests unitaires et la documentation du code » dans le blog Facebook Envoyer le billet « Les tests unitaires et la documentation du code » dans le blog Digg Envoyer le billet « Les tests unitaires et la documentation du code » dans le blog Delicious Envoyer le billet « Les tests unitaires et la documentation du code » dans le blog MySpace Envoyer le billet « Les tests unitaires et la documentation du code » dans le blog Yahoo

Commentaires