Choisir son Selenium

LuneSelenium est un système permettant de manipuler automatiquement l’IHM (Interface Homme-Machine) d’une application Web, on peut donc s’en servir pour tester des IHM*.

Dans le cadre du développement d’une application Ruby on Rails, Selenium complète admirablement les tests fonctionnels et les test d’intégration car ces derniers ont des possibilités très limitées de test d’IHM, en particulier parce qu’ils ne prennent pas en compte le JavaScript.

Les tests Selenium peuvent être créés de trois manières :

Selenium IDE permet de créer des tests à la souris. Il est même possible d’enregistrer un test à la manière dont on enregistre une macro. C’est très pratique pour comprendre Selenium et créer ses premiers tests. Néanmoins on court le risque de créer des tests qui peuvent être cassés par des modifications même légères de l’application. Par ailleurs, comme un test ne peut pas en appeler un autre, la mise en place d’un panel complet de tests est pénible et répétitif.

Selenium RC permet d’écrire des tests dans son langage de programmation favori. Sont disponibles actuellement Java, Python, .Net et bien sûr Ruby. Selenium RC est plus compliqué à mettre en place au tout début (voir ce tutorial indispensable), néanmoins il a de multiples avantages par rapport à Selenium IDE :

  • On peut créer et gérer les tests Selenium RC comme des tests classiques. En particulier, on peut utiliser les fixtures.
  • Comme on utilise un langage de programmation, on peut factoriser tant que de besoin le code ce qui permet de faire des tests plus complexes et plus adaptables à un changement de version de l’application, en factorisant les parties les plus sensibles.
  • Le test, comme n’importe quel test classique, a un accès direct au serveur, ce qui permet de construire dynamiquement les données utiles pour un cas particulier mais surtout de vérifier que les commandes envoyées à l’IHM donnent le résultat voulu côté serveur.

Selenium On Rails est une sorte de voie médiane. Son fonctionnement est assez semblable à Selenium RC dans la mesure où on peut écrire ses tests en Ruby (RSelene) et utiliser les fixtures. Mais comme les tests produits sont transformés en une liste de commandes Selenium qui sont exécutées après le code du test, on ne peut pas interagir avec le serveur pour vérifier la prise en compte des commandes envoyées à l’IHM. Son avantage réside dans le fait que les tests sont exécutés à partir d’une page web, ce qui permet de lancer les tests dans n’importe quel navigateur, là où les deux voies précédentes posent quelques limitations techniques.

Le choix entre ces différentes possibilités se fera vraisemblablement en fonction de l’ampleur de tests à mettre en place : Selenium IDE pour un nombre limité de tests ou Selenium RC pour un nombre important de tests. Selenium On Rails ne semble intéressant que pour ceux dont la priorité est de tester le plus grand nombre de navigateurs possible.

* On peut également tester une application via son IHM, ce qui n’est pas tout à fait la même chose. C’est le domaine du test de validation (ou acceptance testing en anglais).

Pas de commentaire »

Pas encore de commentaire.

Laisser un commentaire

Nous ne revendons pas les adresses collectées