Open source Sushi, Selenium Sandwich et Fitnesse Jus d’orange

Publié par Eric Le Merdy, le 5/05/2009, dans Formation

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.

Nous avons pu ensuite déguster des maki, des pains surprise, et diverses boissons. Ce moment est particulièrement propice aux discutions et j’en profite toujours pour demander au public son ressentit sur la séance écoulée. Enfin, le groupe s’est scindé en deux. La grande salle fut réservée à Etienne Charignon assisté de Grégory Paul pour une démonstration de Selenium. Quant à Gilles, il a réalisé une démonstration de Fitnesse dans une seconde salle.

Ce fut une soirée riche que je qualifierait d’instructive et de sympathique. Le prochain After Work sera consacré à une méthode agile passionnante qui prend ses racines dans le monde de la production industrielle ! Rendez-vous le 10 juin prochain pour un After Work sur le Lean Software Developement.

Edit:
famfamfam silk iconTélécharger la présentation

7 retours sur “Open source Sushi, Selenium Sandwich et Fitnesse Jus d’orange”

  1. D’anciens contributeurs OpenSTA travaillent aujourd’hui sur le produit QTest de Quotium Technologies. Ceci expliquant peut-être cela sur l’abandon d’OpenSTA…

  2. François Sarradin says:

    Bonjour,

    Durant cet AfterWork, j’avais demandé (naïvement!) si il existait des solutions intégrant le BDD et les Mock Objects. Après tout, on y parle de comportement. Il se trouve qu’en réalité des gens y ont pensé. Allez faire un tour sur le projet Mockito (http://mockito.org/).

    Voici un petit exemple:

    Function function = mock(Function.class); // (given)

    when(function.appliesTo(anyDouble())).thenReturn(1.0);

  3. Alexandre Combe says:

    Pour les tests de montée en charge il y a aussi The Grinder (http://grinder.sourceforge.net) qui est un Framework Open Source développé en Java sur lequel viennent se greffer des tests réalisés en Jython.
    C’est un peu un peu pour codeurs barbus mais c’est extrêmement flexible !!

  4. Du côté des outils open source de type référentiels d’exigences et de tests il y a un nouveau venu http://rtmr.net :
    Il s’agit d’un outil de test logiciel open source qui permet :
    * de gérer les exigences d’un logiciel tout au long de son cycle de vie
    * de décrire les scénarios et cas de tests assurant la validation de ces exigences
    * d’exécuter des campagnes de tests ciblées
    La solution intègre un système de gestion de version par projet, par exigence, par scénario et par cas de test qui assure le suivi des évolutions logicielles et permet de couvrir aisément l’ensemble des tests de non régression.

  5. assurances says:

    Je veux les mêmes ;o)

  6. Merci pour cette découverte d’outils de test open source !
    J’èspère que vous vous êtes bien amusés quand même à l’AfterWork ;-)

    A+
    Maxime

Leave a Reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

By submitting this form, you accept the Mollom privacy policy.