4. Passer les tests et scénarios fonctionnels avec Sélenium
le 15 Juillet 2009, par Stéphane
Quand tous les tests et tous les scénarios sont créés, il est temps de "passer les tests". Aucune difficulté à ce stade : il suffit de d'ouvrir les scénarios un par un puis de les exécuter et d'aller boire un café en attendant.
Avant de commencer
Vous devez disposer de :
- un site / une application à tester ;-)
- un jeu de test : quelques images, vidéos, sons, textes, données représentatives
- Firefox 2.x VERSION PC (nous avons rencontré des problèmes sous Mac)
- l'extension Selenium IDE
- un accès à MySQL ou PHP MyAdmin (pas fondamental mais très pratique, vous verrez)
- un ensemble de tests et de scénarios debuggés
Procéder par étape
Au début, nous restions collés à notre écran, paniqués à chaque problème (et il y en a des problèmes sur des campagnes de 900 tests). Nous stoppions le scénario, essayons de comprendre le problème... C'est exactement ce qu'il ne faut pas faire. Donc, un bon conseil, allez vraiment boire un café après avoir lancé les tests en mode "Fast". Et là vous devez vous demander "Pourquoi en mode Fast ?". Parce que c'est plus rapide ! Mais ça provoque aussi des problèmes... donc ce qu'il faut faire :
- faire couler un café
- lancer le premier scénario en "fast"
- quand c'est fini lancer chaque test en échec en mode "slow" (miracle, la plupart "passent")
- analyser ceux qui posent vraiment problème (soit debugger le test, soit remonter l'anomalie dans votre bugtracker préféré)
Évidemment, nous en parlions au début, il faut lancer les scénarios dans un ordre logique :
- création des utilisateurs,
- paramétrage,
- création des contenus,
- validation,
- publication,
- listage,
- affichage,
- modification,
- suppression.
Les dumps sont tes amis
Pour éviter de relancer à chaque fois tous les scénarios précédents ("création" et "validation" par exemple pour tester "publication"), une bonne pratique consiste à réaliser des dumps de la base à chaque fin de scénario. De cette manière on peut très facilement re-tester des bouts de scénario. C'est tout bête mais il fallait y penser !
En conclusion... Selenium n'est pas magique mais il est très utile
Les outils Selenium permettent d'aller très loin dans l'automatisation des tests. Mais pour couvrir les 20% de tests difficiles à paramétrer (présence d'Ajax, beaucoup de drag & drop...) cela coûte vite 80% de la charge de test. Il est donc nécessaire de savoir s'arrêter pour ne pas tomber dans le debugages... des tests ! A titre d'exemple lors de notre dernière campagne, nous avons réalisé 947 tests dont 858 tests Selenium 100% automatiques (90% des tests), 29 tests Sélenium semi-automatiques c'est à dire nécessitant à un moment une intervention manuelle (3% des tests), 60 tests manuels (6% des tests). Nous avons perdu plusieurs dizaines d'heure de paramétrage inutile car trop complexe ou faisant peu sens.
Selenium force à tester chaque recoin de l'application de manière systématique et c'est une excellente raison de l'utiliser. Selenium est aussi un excellent outil pour traquer les régressions tout au long de la vie du site ou de l'application web (ou même tout au long du processus de recette). Cependant, il ne faut surtout pas partir du principe que parce que "ça passe dans Selenium alors tout va bien". L'outil ne remplacera jamais l'utilisateur et une recette "intelligente" en complément des tests systématique est dans tous les cas indispensable.
Si vous avez des avis, compléments, bonnes pratiques, n'hésitez pas à les partager. Tout ce qui va dans le sens de la qualité web va dans le bon sens !
Pour en savoir plus, le site officiel :