Selenium 2.0 : Le meilleur de 2 mondes

Publié le 13 août 2009 par Luc
Bonjour,

Je voulais faire écho à une bonne nouvelle lue sur le user-group de webdriver et qui je pense va être un pas important pour l'automatisation des tests d'applications web.

En effet, les codes sources de Selenium et de Webdriver, deux des principaux frameworks de test d'applications web, ont fusionné pour créer un nouveau produit nommé Selenium 2.0.



Selenium est actuellement la solution open-source leader pour automatiser les tests d'une application web. Elle permet de piloter les principaux navigateurs du marché (Firefox, IE, Opera, Safari...) à partir d'une interface commune. On écrit donc les scripts de test une fois et on peut valider le bon fonctionnement de l'application sur les principaux navigateurs. Les problèmes de compatibilités entre navigateurs étant un des problèmes les plus importants pour un développeur web, on voit ainsi un bénéfice supplémentaire à l'automatisation des tests.

Selenium est très complet fonctionnellement: Il supporte les principaux navigateurs, il est possible d'écrire des scripts avec les principaux langages de programmation (python en particulier). Il permet aussi d'enregistrer les actions utilisateurs et de générer le script correspondant afin de faciliter l'écriture du code de test.

Magré toutes ces qualités, un projet open-source concurrent a vu le jour: Webdriver propose des fonctionnalités similaires mais avec une approche technique différente. Alors que le pilotage de Selenium s'effectue grâce à du code javascript injecté dans la page à tester, Webdriver propose un accès "natif" au navigateur: Aucun code javascript n'est nécessaire car Webdriver accède directement aux API du navigateur (les fameux objets COM pour Internet Explorer par exemple). Il en découle de meilleures performances et l'assurance que l'application n'est pas impactée par le code javascript.

Un autre bénéfice de Webdriver est le support de HtmlUnit, un navigateur sans interface graphique, qui permet de tester l'application de la manière la plus rapide possible. HtmlUnit n'affiche pas les pages d'où un gain de ressources importants. Cela peut paraître dérisoire mais si on imagine une large batterie de tests exécutée en intégration continue, le temps d'exécution a son importance.

On voit alors que ces deux solutions ont leurs points forts: Selenium est déjà disponible en version officielle et possède une large base installée et les principales fonctionnalités que l'on attend d'un framework de test automatisés. Webdriver, s'il a un retard fonctionnelle, dispose d'une meilleure architecture et laisse entrevoir des possibilités plus importantes.

La bonne nouvelle, c'est que ces 2 mondes ont décidé de fusionner pour n'en former qu'un seul avec pour le but d'apporter aux utilisateurs le meilleur de chacun. Quand on pense aux débats stériles qui ont jalonné l'histoire de l'informatique à chaque fois que deux solutions concurrentes (open-source ou non) se faisaient face (Linux/Windows, Java/.NET, Perl/Python, Emacs/Vim...), on peut penser que la collaboration entre ces deux équipes est une bonne nouvelle et annonce, je l'espère, le meilleur outil possible qui permettra d'améliorer la qualité des innombrables applications internet qui sont devenues des outils indispensables de nos vies modernes.