Ouarzy's Blog

Ouarzy's Blog

De l’amélioration du process de développement à moindre coût (part 2/3)

 

Objectif :

- Montrer comment utiliser un outil simple de génération de tests unitaires paramétrés

 

De la présentation de Pex and Moles:

Pex and moles est un outil de microsoft research (http://research.microsoft.com/en-us/projects/pex/) dont le rôle est de faciliter la création de tests unitaires "basique".

Plus exacetement, c'est un outils qui permet de générer des tests unitaires paramétrés.

Evidemment, il est impossible à l'outil de déterminer automatiquement les résultats attendus par votre soft en entrée et en sortie.

Néanmoins il va tester les "limites" de votre fonction, ensuite ce sera à vous de compléter ces tests. De mon point de vue, un des principales avantages de cet outil est que le taux de couverture des tests est excellent par défaut.

Il faut noter qu'il est capable de générer des tests unitaires en se basant sur différents Framework, notamment MSTests ou Nunit.

Je me contenterai dans cet article de présenter une utilisation extrêmement basique, en n'utilisant que les test auto-générés, avec le Framework Nunit en environnement .NET.

 

 

De son installation:

L'outil s'installe en clique bouton comme un simple plugin Visual Studio.

 

 

De son utilisation:

L'utilisation est très intuitive. Il suffit de se placer sur une fonction ou une classe complète dans Visual Studio, clic droit, sous menu "Pex' puis "Create Parameterized Unit Tests".

Ici il faudra choisir le namespace et le projet dans lequel on veut créer les tests. On pourra aussi choisr le Framework voulu et effectuer un paramétrage pour les règles de nommages.

Une fois que vous aurez cliqué sur OK, les classe de tests vont se générer.

Ensuite, faite à nouveau clic droit sur la classe ou la fonction voulue, puis cliquez sur "Run Pex". Cela va régénérer tout le code de tests, et l'exécuter dans la foulée. Vous allez alors très vraisemblablement voir apparaître un certain nombre d'erreur.

Dans le cas où il s'agit d'erreur "normal" (des exceptions d'un type particulier lancé par vous pour une bonne raison) il est possible de sélectionner "Allow Exception" pour préciser que la réussite du test est justement conditionnée par le lancement de l'exception.

 

 

Du suivi et de l'amélioration:

Pour régénérer les tests: clic droit "Run Pex" sur la classe à tester.

Pour exécuter les tests avec Pex Explorer, clic droit sur le projet de tests, puis "Run Pex Explorer".

 

Il est aussi possible de juste relancer les tests unitaires avec le Framework voulu sur le projet de test.

 

Au niveau de "Pex Explorer", il existe des informations pour aider l'outil à générer des tests plus pertinents. 

Une fois que les tests aux limites sont passés, il vous est possible de prendre le temps de faire évoluer les fonctions de Pex, en lui précisant des valeurs à tester et les valeurs que vous attendez en retour. (en gros il suffit de compléter les "//TODO: add assertions" généré par Pex). 

 

Conclusion: 

Evidemment, il faudrait prendre bien plus de temps pour détailler les nombreuses possibilitées offertes par "Pex and Moles".

Mais le but ici est juste de montrer une utilisation très basique. Simplement pour avoir un élément de réponse à ceux qui vous diront que créer des tests unitaires prend trop de temps. En un clic, vous avez déjà une excellente couverture de code avec des tests aux limites!

Ensuite, il est très facile d'améliorer ces tests en les personnalisant, mais si chaque développeur est déjà capable de valider tous les tests aux limites de ses fonctions bas niveau, la qualité du code en sera significativement améliorée.

 

 

 

 



11/02/2012
0 Poster un commentaire
Ces blogs de Informatique & Internet pourraient vous intéresser