Je regarde une petite base de code C # (.NET 4.0, certains Silverlight) (~ 70kLOC générée) qui a une très faible couverture de test. Le code lui-même fonctionne en ce qu'il a réussi les tests d'acceptation des utilisateurs, mais il est fragile et dans certains domaines pas très bien pris en compte. Je voudrais ajouter une couverture de test unitaire solide autour du code hérité en utilisant les suspects habituels (NMock, NUnit, StatLight pour les bits Silverlight).
Mon approche normale est de commencer à travailler sur le projet, les tests unitaires et la refactorisation, jusqu'à ce que je sois satisfait de l'état du code. Je l'ai fait plusieurs fois dans le passé, et cela a bien fonctionné.
Cependant, cette fois, je pense utiliser un générateur de test (en particulier Pex ) pour créer le framework de test, puis l'étoffer manuellement.
Ma question est la suivante: avez-vous utilisé des générateurs de tests unitaires dans le passé lorsque vous avez commencé à travailler sur une base de code héritée, et si oui, les recommanderiez-vous?
Ma crainte est que les tests générés manqueront les nuances sémantiques de la base de code, conduisant à la situation redoutée d'avoir des tests pour le bien de la métrique de couverture, plutôt que des tests qui expriment clairement le comportement prévu dans le code.
la source
Réponses:
Je suggérerais de voir les choses un peu différemment. L'ajout d'un nouveau code de test unitaire à une application existante sans incident peut ne pas vous donner les meilleurs résultats. Si vous faites cela pour vous familiariser avec la base de code ou si vous avez vraiment le temps de tuer et que vous souhaitez tester les générateurs de test, ignorez mes commentaires.
Pour être pragmatique, vous devez parcourir toutes les listes de bogues. Créez ensuite des tests unitaires pour chacun des bogues, ce qui se traduit par la façon dont il doit se comporter. Idéalement, vous n'ajouteriez de nouveau code pour chaque bogue que lorsque vous l'atteindriez.
Temps pour ajouter le code de test unitaire:
Il est difficile de quantifier la valeur de l'ajout de tests unitaires après coup.
Normalement, je ne me permets pas d'écrire des réponses qui vont à l'encontre de ce que le demandeur veut, mais je pense que c'est une bonne leçon à transmettre.
la source