Existe-t-il des statistiques sur le temps qu'il faudra pour développer des applications lors de la création d'un test unitaire pendant le développement par rapport au codage?
Il y a des recherches très intéressantes à ce sujet. Lisez le livre blanc suivant:
Améliorer la qualité grâce à un développement piloté par les tests: résultats et expériences de quatre équipes industrielles
Le livre blanc et d'autres recherches de l'un de ses auteurs, Nachi Nagappan , sont discutés ici:
http://research.microsoft.com/en-us/news/features/nagappan-100609.aspx
L'étude et ses résultats ont été publiés dans un article intitulé Réaliser l'amélioration de la qualité grâce au développement piloté par les tests: résultats et expériences de quatre équipes industrielles, par Nagappan et ses collègues de recherche E. Michael Maximilien du IBM Almaden Research Center; Thirumalesh Bhat, responsable principal du développement logiciel chez Microsoft; et Laurie Williams de la North Carolina State University. L'équipe de recherche a découvert que les équipes TDD produisaient un code 60 à 90% meilleur en termes de densité de défauts que les équipes non TDD. Ils ont également découvert que les équipes TDD mettaient plus de temps à achever leurs projets - 15 à 35% de plus.
«Sur un cycle de développement de 12 mois, 35% représente encore quatre mois, ce qui est énorme», déclare Nagappan. «Cependant, le compromis est que vous réduisez considérablement les coûts de maintenance après publication, car la qualité du code est bien meilleure. Encore une fois, ce sont des décisions que les gestionnaires doivent prendre - où devraient-ils prendre le coup? Mais maintenant, ils ont en fait des données quantifiées pour prendre ces décisions. »
De plus, Jason Gorman a proposé une telle expérience pour la conférence Software Craftsmanship de cette année. Il a essayé une expérience créant la même application en utilisant une approche TDD et non TDD et il a récemment blogué sur ses résultats :
Sur 3 itérations, le temps moyen nécessaire pour terminer le kata sans TDD était de 28m 40s. Le temps moyen avec TDD était de 25m 27s. Sans TDD, j'ai fait en moyenne 5,7 passes (livrées en test d'acceptation). Avec TDD, j'ai fait en moyenne 1,3 passes (en deux tentatives, ils ont réussi la première fois, en une il a fallu 2 passes.)
Maintenant, c'était une expérience de bébé, bien sûr. Et pas exactement les conditions de laboratoire. Mais je note tout de même quelques choses intéressantes.
Il sera intéressant de voir les résultats complets de cette expérience lorsque plus de gens la réaliseront.
Existe-t-il des statistiques qui montrent combien d'heures de maintenance diminuent lors de (bons) tests unitaires?
Extrait du livre blanc ci-dessus:
Les résultats des études de cas indiquent que la densité des défauts avant la libération des quatre produits a diminué entre 40% et 90% par rapport à des projets similaires qui n’utilisaient pas la pratique TDD.