Lorsque je dois implémenter une nouvelle fonctionnalité ou corriger un bug, j'essaie généralement de recréer la situation avec un test. Je passe parfois environ 3 heures à trouver des appareils et à écrire le test. L'implémentation des fonctionnalités ou la correction des bogues prend moins d'une heure.
Quelqu'un d'autre passe-t-il au moins 3 fois plus de temps à écrire un test que de mettre en œuvre une fonctionnalité ou de corriger un bogue? Quel est le rapport acceptable entre le temps passé à écrire le test et le code?
unit-testing
Thierry Lam
la source
la source
Réponses:
Cela varie en fonction de la complexité du bogue ou de la fonctionnalité. Je me souviens d'un projet qui avait une fois une estimation de développement de 1,5 semaine ... et une estimation de test de 3 mois. Le changement de code était modeste, une poignée de lignes ici et là, mais il a eu un impact sur un certain nombre de composants d'un système d'assurance de plusieurs manières, il a donc fallu le tester très soigneusement. Une autre fois, il y a eu un bug impliquant une parenthèse au mauvais endroit. Il a fallu 2 heures pour le trouver, 2 secondes pour le réparer, mais environ une semaine pour tester des dizaines de scénarios qui pourraient avoir été affectés par le changement de logique.
En général, je ne m'inquiète pas du rapport entre le temps passé à coder et le temps passé à tester, car il n'y a tout simplement aucun moyen d'être précis. Je trouve que dans certains projets, un rapport relatif au projet apparaît qui est généralement standard (par rapport au projet), mais même alors, cela peut changer plus tard.
Passez autant de temps que nécessaire pour dire avec confiance que le code fonctionne correctement.
la source
Que diriez-vous de passer suffisamment de temps à écrire les tests jusqu'à ce que vous ayez montré que la fonctionnalité fonctionne comme prévu ou que le bogue a été correctement corrigé.
Chaque situation sera différente; il ne peut pas y avoir une sorte de ratio. Certains tests prendront un dixième du temps de mise en œuvre, d'autres prendront des centaines de fois plus de temps.
la source
J'ai fait une fois une étude après avoir introduit des tests unitaires dans un projet. Résultat: le temps passé à rédiger les tests représentait à nouveau environ 40% du temps consacré à la mise en œuvre. Mais nous ne visions pas une couverture complète là-bas, et c'était un projet bien établi avec une structure et des conventions solides.
la source
Je dirais que le codage temporel par rapport aux tests unitaires d'écriture temporelle devrait être approximativement égal. Peut-être un peu plus parfois. Jetez un oeil à cet article sur SO Ratio de temps passé sur le codage par rapport aux tests unitaires
la source
Comptez-vous bien? Afin de faire une comptabilité précise du temps que vous passez sur les tests, vous devez écrire le code sans le test.
S'il vous a vraiment fallu trois heures pour écrire le test et une pour écrire du code pour qu'il passe, vous pouvez constater qu'il faut plus de 5 heures pour corriger le même bogue sans écrire de tests.
Oui, je passe souvent beaucoup plus de temps sur le test que le code correctif réel.
la source