Je peux souvent identifier de nombreuses zones qui sont bien encapsulées et facilement testées unitaires, mais je trouve également que beaucoup de code dans lesquels des tests unitaires ne semblent pas vraiment fonctionner aussi bien - généralement accès aux données et interface utilisateur. Peu importe les tests de l'unité "Techniques" que j'essaye, j'ai tendance à trouver que, dans ces endroits, il ne s'agit pas seulement de nombreux efforts pour créer des tests d'unités de fonctionnement, mais ces tests ont tendance à être très fragiles et ne testent pas vraiment beaucoup. p>
à quel moment vous arrêtez-vous et décidez que les avantages du test unitaire ne valent pas le coût? P>
11 Réponses :
Quand il n'y a pas de temps dans le plan de projet pour cela et le temps consacre à trouver des moyens de tester plutôt que de travailler vers l'objectif du projet. P>
Cela ferait des retards plus importants dans un proche avenir.
C'est quand des choses comme des délais et des cibles entrent en jeu. Par conséquent, quand il n'y a pas de temps dans le plan de projet pour cela "
-1. Ne pas avoir de temps dans le plan de projet devrait signifier que vous négociez soit de la durée, du coût ou de la portée des parties prenantes - non pas réduites sur la qualité. Je préférerais avoir moins de choses de bonne qualité que tout ce qui ne fonctionne pas la plupart du temps.
-1 pour dire qu'il n'y a pas de temps dans un projet. Découpez les autres tests plutôt que des tests unitaires
TBH, je préfère perdre un test unitaire qu'un test QA ou un test UAT. Un peu de code peut fonctionner magnifiquement et ne jamais échouer, mais ne pas faire ce qui était nécessaire.
Mon opinion semble être un énorme point de division, mais je crois que c'est la même chose que "quand tu peux offrir une meilleure valeur en faisant autre chose.". Peu importe. : o)
N'est-ce pas assez souvent le problème de la qualité médiocre de rejet dans les projets, car aucun temps n'a été attribué pour formuler un bon régime de test?
Si vous avez l'accès à certaines données en direct, vous pouvez l'utiliser vers un test unitaire. Vous pouvez également utiliser des générateurs de données et des données aléatoires. Les tests unitaires vous donnent un certain niveau de confiance que cela ne créera pas de problèmes à l'avenir. Si vous êtes confiant avec vos tests, vous pouvez interrompre des tests d'unité P>
J'ai tendance à ne tester que le modèle
Lorsque vous pouvez fournir une meilleure valeur en faisant autre chose. P>
J'aime le titre de la question. En dehors de cela, je pense que c'est une dupe de Y a-t-il une telle chose comme des tests d'unité excessive? A > p>
Je dirais quand vous avez gagné un niveau de confiance acceptable. Aussi, comme pour mon projet au travail, nous sommes sous des exigences temporelles aussi serrées que je n'ai vraiment pas à tester certaines parties du code (pas toutes) pour me donner un bon niveau de confiance. P>
Généralement, je ne teste que le modèle et le contrôleur. Le test de l'unité est difficile à appliquer pour l'interface utilisateur, il préfère généralement tester manuellement l'application. P>
Si la création de ce test coûte plus de temps que de tester manuellement chaque fois que vous pourriez avoir une régression, le test est inutile (facile à dire, mais ne pas évaluer ...). P>
Si vous avez besoin de couper des tests, de couper l'intégration ou des tests de bout en bout. Misko Heusvery sur Google l'explique vraiment bien ici . < / p>
"Le test unitaire vous donne plus de bang pour votre buck " p> blockQuote>
est la meilleure citation à sortir de son article. P>
Autre que cela, lorsque vous avez une couverture décente du code et manipulez quelques cas de bord de votre code, c'est un bon moment pour arrêter le test de l'unité. P>
En ce qui concerne les tests d'accès aux données, vous avez essayé de simuler des tests pour simuler des réponses. P>
La règle de base du pouce que je suivrais est si l'effort de construction du test de l'unité est plus que l'effort de tester manuellement manuellement la fonctionnalité de travail humain em>. p>.
Si vous examinez les projets de test dans l'édition d'équipe Visual Studio pour les testeurs, un tel article est appelé un "test manuel" qui est essentiellement un document d'instruction pour indiquer à l'homme comment effectuer le test et le transmettre manuellement . Certaines choses, comme vous mentionnez des tests de l'interface utilisateur, ou du code pour contourcer le comportement matériellement étrange ou buggy dans le cadre ou le conducteur sous-jacent, sont mieux vérifiés par des yeux humains. P>
Si vous utilisez TDD, vous arrêtez le test de l'unité lorsque tous les tests de la liste de tests ont réussi. P>
Sinon, vous arrêtez le test de l'unité lorsque le coût de la recherche d'autres bogues via les tests unitaires dépasse le coût de les rechercher via votre processus d'assurance qualité. et lorsque vous avez atteint un niveau acceptable de couverture de code grâce à la combinaison de tous tests. P>