Archive for mai, 2008

Automatiser oui mais …

lundi, mai 19th, 2008

J’ai trouvé cette citation d’un responsable de test qui résume bien la situation:

« Automated test are by nature scripted, not exploratory. Even with an automation stack which injects all sort of variability, the tests wear grooves in those areas of the product they cover and they ignore everything else.  »

Finalement faire uniquement confiance à des tests automatisés peut conduire à ne pas voir des problèmes liés à des effets de bord: en effet dans un test automatique on ne vérifie que des points particuliers et parfois une action peut affecter de façon non attendu l’application testée. Également il arrive que l’on réinitialise plus fréquemment l’environnement de test ce qui ne nous met pas dans toujours dans des conditions réalistes d’utilisation.

De la même façon lorsque l’on réalise des tests de façon manuelle on le réalise souvent avec des variantes, voir on image de nouveaux tests qui améliore la couverture des tests.

Voilà pourquoi à mon sens et de part quelques expériences récentes je préconiserais de toujours garder une part de test manuel.

Utilisation des langages scriptés pour le test.

mercredi, mai 7th, 2008

Si vous avez une API (Application Program Interface) à tester pourquoi ne pas utiliser un langage scripté tel que jython pour une API Java ou python pour une API C ou C++.

Grâce à leur simplicité vous pourrez obtenir rapidement une implémentation de cette API et vous pourrez également la tester en ligne de commande.

Un petit exemple: une classe java permettant de gérer des complexes:

Jython 2.1 on java1.6.0_03 (JIT: null)
Type « copyright », « credits » or « license » for more information.
>>> import complexe

>>> dir(complexe)
[‘__init__’, ‘add’, ‘imaginaire’, ‘reel’]
>>> x = complexe(1,3)
>>> print x
complexe@142022d
>>> print x.reel()
1
>>> print x.imaginaire()
3
La commande import permet d’importer la classe. La commande dir permet de connaître les méthodes de la classe. Puis sans vraiment coder un seul programme on peut tester rapidement. Sans remplacer une vrai série de tests on peut de cette façon faire un apprentissage de cette API et de l’évaluer facilement.