Voici le premier article d’une nouvelle série sur les outils de test que j’apprécie! Comme la plupart les testeurs j’ai été amené à travailler sur de nombreux outils. Parmi ces outils il y en a certains que je n’ai pas aimé, d’autres qui m’ont laissé indifférents et bien sûr d’autres outils que j’ai aimé!
L’objectif de cette série est de vous parler, non pas comme la série outil de test, d’un outil de manière objective et succincte mais bien de vous présenter un peu plus profondément des outils que j’apprécie vraiment ainsi que les raisons pour lesquelles je les apprécie.
Je vous parle donc aujourd’hui d’Agilitest!
Ma découverte d’Agilitest
Avant d’être un outil, Agilitest est avant tout, pour moi, une histoire humaine! Cela joue donc évidemment sur le fait que j’apprécie cet outil. Tout a commencé fin 2017 (ou début 2018) alors que je j’écrivais depuis environ un an. Je suis contacté par Christophe Cressend qui ne souhaite pas me recruter mais qui souhaite échanger avec moi, en tant qu’expert test (cela flattait pas mal mon égo à l’époque), sur mes attentes sur un outil d’automatisation.
J’ai alors été amené à échanger plusieurs fois et longuement avec les créateurs d’un outil en développement: Agilitest.
Son principe ? Rendre l’automatisation des tests accessibles pour des profils fonctionnels et donc non techniques. Le sujet m’a évidemment intéressé et ce pour 2 raisons:
- J’étais et suis toujours quelqu’un de plutôt fonctionnel. Je suis capable d’écrire des tests automatisés que lorsque le framework est déjà en place
- Je sortais d’une mission où j’avais beaucoup automatisé de test au moyen du KDT et j’appréciais (et apprécie toujours) le concept
On m’a présenté alors Agilitest plus en détail en mettant en avant ces concepts:
- L’outil propose l’écriture de vrais scripts sous forme de mots clés comme Robot Framework
- Les scripts sont dans un langage libre (ATS script), il n’est pas nécessaire d’avoir l’outil pour les exécuter, les maintenir voir même les écrire => j’avoue que ce point m’a beaucoup plu.
- Ce n’est pas un « record and replay » mais un outil qui propose un outil de capture permettant de sélectionner les variables pour détecter les objets dans notre test => cela m’a également plu afin de s’affranchir des ID pas toujours présents ou des xpath souvent peu lisibles et parfois variables
J’ai également indiqué les critères importants selon moi pour faire un bon outil d’automatisation de test pour des fonctionnels:
- Pouvoir facilement faire des sous-script => cela diminue la maintenance
- Pouvoir facilement variabiliser les tests => cela diminue la maintenance et enrichit les tests
- Avoir des tests stables et fiables
- Analyser facilement les tests en cas d’échec
Suite à ces discussions j’ai été le premier à tester Agilitest en dehors des personnes qui le développait. Pour la première fois j’étais un bêta testeur pour autre chose qu’un jeu vidéo… et en plus j’étais le premier bêta testeur de l’histoire de l’outil!
Ma prise en main d’Agilitest
La première chose à faire a été l’installation. J’avoue avoir eu pas mal d’appréhension sur cette partie, d’expérience je sais que l’installation de logiciel peut s’avérer compliquée. Cela n’a pas été le cas! L’installation s’est déroulée assez simplement tout comme le téléchargement des librairies qui se fait directement depuis l’outil (quand on a les droits admin).
J’ai alors pu commencer à jouer avec l’outil… sur mon terrain de jeu préféré: le blog de la taverne du testeur!
Au bout de 15 minutes, la joie m’envahit, j’ai mon premier test qui fonctionne! C’est d’ailleurs la toute première fois que j’écrivais un test automatisé en partant de rien. Très vite j’arrive à enchaîner l’écriture de test sans avoir de problème de détection ou de stabilité.
Je passe alors à une étape plus importante et qui me semble plus compliquée: faire des sous-scripts! Là encore la réussite est rapidement au rendez-vous (sans paramétrisation tout du moins).
Je décide alors de paramétrer des tests… ce qui m’obligea à faire l’appel à un ami. Fort heureusement, en tant que premier et seul bêta testeur j’ai eu une réponse très rapide et ai réussi à faire assez simplement après un échange de quelques minutes et la création d’un fichier csv pour gérer les variables (tout depuis l’interface de l’outil).
S’ensuit alors un nouveau challenge: faire des tests sur mon bureau de PC: ça marche aussi.
Enfin, je tente d’exécuter les tests en dehors de l’outil. Cette partie avait alors été assez compliquée, je souhaitais exécuter les tests depuis eclipse et j’ai eu beaucoup de difficultés avec la librairie TestNG et ses dépendances. Je réussis néanmoins à les exécuter.
A noter: Agilitest a fortement évolué depuis. Il est maintenant possible de déployer un serveur Jenkins sur son poste ou se connecter à un serveur distant pour créer des campagnes de tests et les faire exécuter.
Au final je suis plutôt (très) agréablement surpris par cette mise en main et ma capacité à écrire des tests automatisés avec l’outil!
Ce qu’Agilitest m’a apporté
Toute cette expérience, en plus de découvrir un outil m’a beaucoup apporté en tant que testeur et ce particulièrement sur la gestion de l’automatisation. Je pense notamment à:
- Une bonne compréhension de la gestion des paramètres pour faire des tests stables
- Une bonne compréhension de la « modularité » ou « factorisation » des tests
- Une meilleure vision de comment architecturer les automates de test et comment les penser
- Une meilleure vision des problématiques de l’automatisation et donc la capacité de mieux en parler de mieux présenter des points techniques
De manière générale je trouve qu’Agilitest est un super outil pour découvrir et pratiquer l’automatisation lorsque l’on est fonctionnel. Il permet, tout en limitant l’aspect technique, d’appréhender et comprendre les contraintes techniques tout en proposant des tests qui fonctionnent et qui sont assez bien architecturés pour ne pas avoir à dépenser trop de temps sur la technique!
Bref rien que pour cela Agilitest est et restera un outil avec une place à part dans ma vie de testeur.
Et maintenant ?
Agilitest continue de grandir en proposant de plus en plus de fonctionnalités tout en gardant sa simplicité.
J’ai le plaisir d’avoir une licence ce qui me permet d’utiliser Agilitest dans les articles (ou démo rapides) où je veux avoir des tests automatisés. Cela me permet d’automatiser rapidement des tests puis de les exécuter depuis un ALM.
Je suis d’ailleurs maintenant convaincu que l’automatisation sans script à écrire soi même a un avenir et un public dans le monde du logiciel. Cette conviction m’amène à écrire de nombreux articles sur le sujet. J’essaye également de faire connaître Agilitest et des outils semblables comme on peut le remarquer avec la conception avec Michael Granier d’un atelier spécifique à l’automatisation sans script qui se déroulera pour la première fois à la journée des tutoriels de la JFTL 2021.
Pensez à rejoindre le groupe « Le métier du test » si vous souhaitez échanger sur le test
Merci à tous ceux qui mettent « j’aime », partagent ou commentent mes articles
N’hésitez pas à faire vos propres retours d’expérience en commentaire.