Crédits photo: Maki sushi, Piled on, Oranges
Moins d'une semaine après, voici un petit compte rendu de l'After Work sur les Outils de test open source. Environ 30 personnes ont assisté à cette présentation et les consultants étaient nombreux à être présent.Après une rapide présentation de la société et de ses opportunités, Virginie Urtado a laissé la place à Gilles Mantel pour entrer dans le vif du sujet des outils de tests.Gilles a annoncé son ambition de dérouler cette présentation comme on peut le faire régulièrement durant les cours du soir des consultants Valtech. Sa présentation fut le résultat de recherches sur l'actualité des différentes briques open source connues et la consolidation des connaissances et des retours terrain des consultants.Gilles a tout d'abord fait un premier rappel sur la distinction entre open source et gratuit. Pour une organisation, l'indicateur principal qui guide ce choix est le TCO (Total Cost Of Ownership) ou Coût Total de Possession. C'est une valeur qui rend compte du risque lié au choix de composants réalisés par une communauté. On évalue la popularité, la communauté, etc. Par rapport à l'offre, il s'attendait à fournir un focus très précis sur les quelques open sources qui outillent le test logiciel mais force est de constater qu'il a plutôt eu affaire à la multitude et la multiplicité de l'offre en la matière.En clarifiant que cette présentation n'était pas une étude du Gartner ou du Forester, il a plutôt cherché à introduire une vision empirique en introduisant une classification simple :4 catégories (tests unitaires, drivers, frameworks, référentiels de test) sur plusieurs niveaux (populaire, mourant, etc), et même des « duels » !Première catégorie, les tests unitaires
que l'on ne présente plus. Ces outils permettent de tester au plus profond du logiciel, c'est à dire au niveau classe ou méthode.Junit (Java, 1998) > TestNG (Java) > SUnit (Smalltalk)Une nouvelle variante apparaît en 2003, le Behavior Driven Developement (BDD). Cette approche novatrice permet d'écrire une spécification (le comportement) pour guider l'écriture du code. La spécification doit alors respecter une syntaxe particulière:Given (Etant donné que) {condition initiale}When (Quand) {action}Then (Alors) {comportement attendu}
On trouve dans ce rayon:Jbehave (Java) > Rspec (Ruby) > EasyB (Groovy, Java) > Cucumber (Ruby)Les tests fonctionnels: les drivers
On appelle driver de test un script de test qui permet de piloter le passage des tests.Dans le monde du web: Selenium, Watir (sans partie serveur), Canoo Webtest sont trois outils populaires. En java/SWING, on trouve Marathon, Frankeinstein et pour SWT: SWTBot ou Abbot. Pour les web services, SOAP UI reste très populaire; et pyWinAuto permet, lui, de tester les application au niveau du système d'exploitation Windows via la langage Python.Le premier duel de la soirée a vu s'affronter Selenium et Watij.Ce qu'il faut retenir, c'est qu'il ne faut pas forcément choisir le meilleur mais plutôt le plus adapté à ses besoins.Tests fonctionnels: les frameworks
sont des infrastructures de tests qui permettent de piloter l'exécution des tests. Ces frameworks sont « keyword driven » c'est-à-dire qu'ils définissent un certain formalisme pour décrire les tests. Le framework qui monte est Robot. FitNesse a phagocyté FIT et c'est le plus populaire actuellement. Chez Valtech, nous pensons que Cucumber possède de bons atouts.La démarche suivante consiste à coupler un framework à un driver pour piloter la bonne infrastructure cible, le « system under test ».Outils de test de charge
OpenSTA reste très populaire mais en fin de vie, Jmeter étant le plus populaire. Dans la rubrique extra-terrestre, on peut citer Tsung un outil rédigé en ErLang. Attention, WebLoad n'est pas réellement open-source. Seule la partie pour un seul poste utilisateur est libre.Le second duel opposa: OpenSTA et JMeter. Gilles a utilisé une analogie amusante: c'est un peu Sampras contre Federer car comme Sampras qui est un sportif à la retraite, OpenSTA n'est plus forcément beaucoup utilisé...Les référentiels de tests
sont des gestionnaires de test. Le plus célèbre de ces logiciels est propriétaire. Il s'agit d'HP (anciennement Mercury) Quality Center qui permet de gérer une campagne de test: les cas de test, les mesures des métriques, etc. Ces outils permettent de s'interfacer avec des drivers automatisés. Par exemple, Quality Center s'interface avec Quick test pro (non open-source). Justement, côté open-source, on trouve TestLink qui est très similaire à Quality Center.On retrouve aussi FitNesse qui permet d'organiser les tests dans son wiki natif. Salomé-TMF n'est malheureusement plus trop maintenu mais a été écris en français ;-). On sent ici la paternité de France Telecom. Une fonctionnalité clé de ce type d'outil est leur capacité d'import/export dans les outils bureautiques qui sont utilisés massivement par les équipes d'assurance qualité ou les maîtrises d'ouvrage.Le dernier duel de la soirée fut celui de TestLink contre Salomé-TMF.Cette présentation nous a appris que l'open-source couvre l'ensemble du spectre fonctionnel lié aux tests ce qui représente une progression par rapport à l'état des lieux 10 ans plus tôt par exemple. La faiblesse des outils open-source provient peut-être du ciblage technologique, il existe souvent plus de composants que de technologies. Pour conclure sa présentation, Gilles nous a expliqué deux formules choc dont il a le secret:- l'open-source aime l'open-source: aujourd'hui, il y a d'autant plus de contributions open source que le langage est ouvert.
- chose qui nous tient à cœur chez Valtech, l'agilité aime l'open-source: l'agilité favorisant la simplicité, les meilleurs outils open source très spécialisés adressent le problème qu'ils cherchent à résoudre de façon simple.