Question

Y at-il un bon outil pour générer des cas de tests unitaires donnés dire un projet .NET ou Java, il génère des cas de tests unitaires qui couvriraient une couverture de code presque 100%. Le nombre de cas de test peut être directement proportionnelle à la complexité cyclomatique du code (plus l'imbrication des boucles et des conditions plus la complexité cyclomatique) où plus la complexité cyclomatique, plus l'ensemble des cas de test sont générés. Je ne m'y attendais pas à être pleinement fonctionnel (dire que je vais construire les tests unitaires et l'exécuter après son été généré), mais je dirais que cela peut avoir un style de modèle dans le cas de test où vous devez modifier le cas qui convient à vos besoins prévus. Mais il faut aussi avoir une méthode de configuration et teardown appropriée et est assez bon pour détecter si des objets fictifs pour les tests unitaires doivent être utilisés En cas de dépendances. Alors, est-il un tel outil qui existe?

Était-ce utile?

La solution

Pour .NET, Microsoft a Pex qui ira, espérons pour intégrer NET 4.0, ainsi que contrats . Je vous recommande vivement de regarder la vidéo Channel 9.

Il me semble que ce genre de chose est très bon pour les classes très axées sur les données - parseurs etc. Je ne vois pas que je serais très souvent Commençons avec elle, mais utile outil à avoir dans votre salle d'armes quand même.

Autres conseils

Pour C # (ou .NET en général), PEX peut-être cet outil. Il fonctionne au niveau IL, et tente de forcer son chemin dans toutes les branches. Il a découvert avec succès un large éventail de bugs (dans la BCL etc).

Bien qu'il semble contre-intuituve, vous pouvez également être intéressé par les cadres de génération de tests aléatoires. La recherche a prouvé qu'il peut être tout aussi efficace pour trouver des bugs que des approches systématiques basées sur la couverture, comme vous le suggérez.

Consultez Randoop à la fois pour .NET et Java. Il fonctionne en générant une séquence plus ou moins aléatoire d'appels de méthode, et les contrats de chèques, etc. accidents Il est entièrement automatique.

Aussi, vous pouvez consulter d'autres outils de tests aléatoires basés sur QuickCheck , par exemple pour Java, Scala, F #. qui sont plus semblables à Pex, à savoir vous donner une spécification, ou test unitaire paramétrée, et l'outil qu'il vérifie un certain nombre d'arguments d'entrée générées.

J'ai trouvé que cette façon « paramétrisé » des tests unitaires d'écriture est en fait beaucoup plus naturel dans au moins 60% des cas, et trouve beaucoup plus de bugs.

Pour Java, vous pouvez consulter évoSuite , qui est open source et active (disclaimer, je suis de ses collaborateurs). Voir aussi lié question pour une liste de plus d'outils .

Pour Java, essayez JUnit-Tools . Il dispose de son propre plugin Eclipse avec une bonne documentation.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top