Depuis mon stage chez Sogeti en 3 années quand j’étais aux études chez Supinfo, je suis un str8 up believer dans le TDD.
Si je n’avais qu’une seule recommandation à faire en arrivant quelque part où des gens codent un truc ce serait : “Les gars, les filles il faut mettre en place du TDD :-), Amen”.
Grâce à cela on réduit la pression au niveau responsabilité pour les développeurs (et oui parfois on peut avoir le doute sur la pertinence de ce que l’on à fait mais la on peut se rassurer avec un “le test passe donc c’est OK”). Cela je pense à une bonne influence au niveau organisationnel on se dit que le boss (chef technique et/ou fonctionnel) ne va juger que ce critère en priorité. Et quand on regarde ces objectifs on sait qu’on les a atteints ou non.
Quels techniques utilisez-vous pour en avoir le moins possible ?
Sur développement Spring Java par exemple (ce que j’ai toujours fait à la base en SSII) on va utilisé des outils de couverture de code.
Genre PMD (qui analyse la complexité du code), Cobertura avec derrière Jenkins pour afficher tout cela.
Avec Spring on programme d’office par interface entre les couches donc on peut tester chaque couche DAO, Services, Controller et même Vue.
Mais on contrôlait surtout les Services et les Dao(ou parfois il y avait des requêtes faites à la main(SQL).
Comment la gérer-vous ?
Et bien tout les soirs on fait tourner les tests d’intégrations et unitaires et le matin on vérifie que tout est verts (enfin l’essentiel). Certains choses sont désignés comme prioritaires. Et puis le reste on verra mais on laisse jamais le truc filer. C’est du faux temps gagné. Si on peut corriger rapidement on le fait.
Comment la mesurez-vous ?
Cobertura, Jenkins, Couverture du code quoi.