Je fais partie d'une équipe de développeurs qui travaille avec de nombreuses autres équipes pour maintenir et améliorer une application utilisée depuis au moins 15 ans. Quand il a été construit et conçu pour la première fois, TDD était inconnu.
L'application est assez stable, et nous rencontrons rarement un bug d'arrêt de spectacle, mais nous faisons en moyenne un ou deux bugs par semaine, ce qui réduit sérieusement la qualité de service. Ces bogues prennent une éternité à trouver et à corriger, principalement à cause du doigt pointé, et le seul test que nous avons est le test d'interface. Parce qu'il y a beaucoup de temps perdu à chercher où le bogue est avant qu'il ne puisse être corrigé, moi et un autre développeur prévoyons de proposer le développement piloté par les tests. Il y a une nouvelle révision à venir bientôt, et nous aimerions voir des tests unitaires presque complets effectués sur les nouveaux modules, nous prévoyons également de suggérer la construction d'unités de test pour tout code que nous devons modifier qui est hérité (c.-à-d., Correction de bogue ou implémentation de fonctionnalités ), mais sans perdre de temps à développer des cas de test pour du code qui n'a pas causé de problèmes.
Cela me semble raisonnable. Ce mois-ci, nous avons eu un bug qui a pris plus de deux semaines à corriger, mais aurait pu être identifié avant le déploiement si des tests unitaires avaient été effectués. Mais pour nos gestionnaires, il semble qu'ils vont dépenser plus d'argent.
Comment convaincre nos clients qu'ils souhaitent dépenser de l'argent pour les tests unitaires et le développement piloté par les tests? Existe-t-il des études qui montrent le retour sur investissement des tests unitaires?