Wednesday, April 11

Selenium Grid et le défi du ROI

Afin d'augmenter l'efficacité et la quantité de tests exécutés, tout d'abord, j'ai implanté l'utilisation de Selenium IDE dans l'écriture et l'exécution des Smoke Test dans l'environnement d'intégration continue. La règle que j'ai conservé en tête durant tout le processus est la loi de Pareto (80/20) : le 20% d'effort donnant un 80% de rendement.

Écriture d'une suite de test (Test Suite) appelée Smoke Test :

  1. Premier cas de test (Test Case). Automatiser la navigation du menu principal. Dans chacune des pages visitées, je valide du texte présent dans chacune des zones (blocks). 
  2. Du deuxième au sixième cas de tests. Automatiser un scénario de base (Test-to-Pass) des 5 fonctions critiques du site. Pour ce faire, je rencontre le chargé de projet du site et avec son avis, nous définissons ensemble les 5 fonctions critiques sans lesquelles le site ne peut fonctionner.
  3. Septième cas de test. La boîte de recherche. La plupart des sites possèdent une boîte de recherche souvent située en haut à droite du site permettant au visiteur de rechercher un contenu spécifique dans le site.
Voilà à quoi ressemble la première suite de tests Smoke Test de chaque site développé. Les tests sont stockés dans un système de contrôle de version (SVN dans notre cas). Ils sont maintenus à jour et les développeurs peuvent y contribuer.

Maintenant que Selenium IDE (Web driver) est utilisé, fonctionne et donne de bons résultats, il est temps de passer à la vitesse supérieure. La faiblesse de Selenium IDE est qu'il s'agit d'une extension Firefox, donc empêcher d'exécuter les tests sur d'autres navigateurs... notamment Microsoft Internet Explorer où les problèmes d'affichage se produisent souvent.

Selenium RC (Remote Control) et Selenium Grid

Voilà le Graal du testeur web! Notre équipe TI et SysAdmin travaille sur une telle installation qui permettra de gérer l'envoi de script de tests automatisés sur plusieurs navigateurs en même temps et retournant les résultats. Ma crainte, le ROI (Return On Investment) au début. Je sais que les tests échoueront à cause de telle ou telle configuration, bugs de Selenium, faux positif, etc. Mais je crois que l'effort en vaut la chandelle quand on sait que Google fait confiance à Selenium pour ses tests internes.