L’automatisation des tests est un enjeu majeur du Testing dans un marché très actif. Les entreprises souhaitent délivrer de la valeur métier de plus en plus vite dans des contextes agiles et l’automatisation des tests s’inscrit dans cette optique pour garantir une qualité optimale des applications. Cette dynamique pousse les professionnels à entrer dans le monde de l’automatisation des tests avec des profils divers et variés, allant du testeur fonctionnel qui souhaite évoluer dans un contexte plus technique, au développeur qui se réoriente, en passant par le reconverti qui change complètement de carrière. Chez Aubay, nombreux sont ceux qui franchissent le pas et se lancent dans l’automatisation des tests. Mais les obstacles pour franchir les paliers de montée en compétences peuvent être élevés selon le profil. Quels sont ces obstacles et comment les surmonter ? Est-il facile d’entrer dans le monde des tests automatisés ? C’est à cette question que répond cet article.
Automaticien = développeur ?
Nous avons l’habitude de distinguer les testeurs automaticiens des automaticiens. Les premiers peuvent réaliser une bonne partie des activités de tests automatiques en plus des tests fonctionnels, mais les seconds restent indispensables pour assurer l’ensemble des activités d’automatisation. Il reste encore aujourd’hui important de ne pas sous-estimer la dimension technique de l’automatisation.
Le marché regorge d’outils d’automatisation de tout type. Par exemple, les outils Low Code ou No code qui nécessitent peu d’expertise en langage de développement sont accessibles avec une bonne logique algorithmique. Mais il est toujours nécessaire d’avoir de bonnes compétences techniques pour résoudre certains points bloquants. Les bibliothèques ou frameworks de tests nécessitent des connaissances en développement plus élevées que les outils Low Code / No Code.
À ce jour, un projet d’automatisation des tests, peu importe le type d’outil exploité, reste avant tout un projet de développement construit sur une architecture logicielle robuste, maintenable et maniable. Un tel projet respecte les principes de base de tout type de développement d’application, une logique réfléchie et des bonnes pratiques instaurées. Un automaticien se doit de les comprendre et de les appliquer, peu importe les concepts appliqués, le langage de programmation utilisé ou le contexte métier ;même si la marche n’est pas aussi haute que pour les développeurs.
Même avec l’effervescence de l’intelligence artificielle générative pouvant répondre à certaines problématiques, elle n’est qu’un assistant et ne peut se passer du regard critique et de l’expertise de l’automaticien.
Apprendre un langage demande du temps et maîtriser les bases de la programmation n’est pas chose facile. Mais cela permettra l’apprentissage des concepts liés à la programmation et d’une logique algorithmique qui sont fondamentaux pour devenir automaticien et qui sont exploitables dans tout contexte. L’automatisation est avant tout une activité de développement.
Connaître un logiciel ou une bibliothèque n’est pas suffisant
Avoir une expérience unique sur un logiciel ou une bibliothèque ne fait pas de vous un automaticien. Les outils existants sur ce marché sont légion mais ne se valent pas. Beaucoup de facteurs sont à prendre en compte (bibliothèque vs logiciel, open source vs propriétaire, langages de programmation supportés, types de tests supportés, code vs low code vs no code…).
Les compétences ne sont donc pas équivalentes selon les outils utilisés par un automaticien. Une bibliothèque de fonctions comparée à un logiciel clé en main pour faire du low code / no code ne requiert pas les mêmes compétences. Ne maîtriser qu’une seule technologie n’est pas suffisant. L’automatisation s’inscrit dans un processus d’intégration et de déploiement continu (CI/CD) avec une restitution des résultats pertinente. Il faut voir le spectre de l’automatisation dans sa globalité et avoir des connaissances dans l’écosystème qui l’entoure :
- Développement des tests automatisés sur des outils spécifiques d’automatisation.
- Versionnage du projet d’automatisation.
- Exécution des tests sur des infrastructures dédiées.
- Restitution des résultats d’exécution dans un outil de gestion des tests.
Il existe une multitude d’outils pour les aspects cités ci-dessus. Voici quelques exemples :
- Tests unitaires : xUnit, TestNG…
- Tests IHM : Selenium, Cypress, Playwright, Robot Framework, Katalon, UFT…
- Tests API : Postman, SOAPUI, RestAssured, Karate…
- Reporting & log : AllureReport, ExtentReport, Jasmine Reporting, log4j, slf4J…
- Systèmes de gestion de base de données : MySQL, PostgreSQL, MongoDB, Microsoft SQL Server…
- Versionnage : Git, SVN
- Orchestrateurs : Jenkins, Azure, GitLab CI/CD, Chef…
- Plateformes d’exécution : BrowserStack, Perfecto, Sauce Labs, Selenium Grid…
- Gestion d’environnement, conteneurisation et VM : Docker, VMWare…
- Gestionnaires de tests : Xray, Zephyr, Squash, ALM…
Les plateformes de formation ne donnent que les bases
De nombreuses formations sont disponibles pour monter en compétences sur l’automatisation des tests. Que ce soit sur les langages de programmation, les frameworks d’automatisation ou les technologies liées au CI/CD, les plateformes proposent ces formations. Les supports sont nombreux, ce qui permet un apprentissage selon les méthodes souhaitées (slides, tutoriels, blogs, vidéos ou cours présentiels ou à distance).
Mais ces formations ne dispensent que les bases d’un sujet. Elles sont idéales pour faire le premier pas dans l’automatisation. Les concepts et les idées proposés sur l’application du sujet donné sont théoriques. Les exemples et projets proposés sont des cas fonctionnels assez simples. Mais dans la réalité, ces concepts peuvent être non applicables pour diverses raisons. Les cas fonctionnels sont pour la plupart plus conséquents et complexes, ce qui donne des projets beaucoup plus gros que ce qui est vu en formation.
Pour y remédier, entraînez-vous à développer un projet d’automatisation avec votre propre architecture personnelle et le framework cible que vous souhaitez apprendre. Il existe de nombreux sites web complexes (ou mal codés exprès) qui permettent de s’entraîner sur le développement de tests. Faites des cas pratiques complexes qui semblent faciles manuellement mais compliqués à automatiser. Échangez avec des automaticiens pour partager leur expérience et les difficultés qu’ils ont pu rencontrer. Demandez-leur de l’aide sur les points bloquants. Rien ne vaut l’expérience et commettre des erreurs pour apprendre.
L’automatisation au service du test
La raison principale d’automatiser des tests est de garantir une qualité optimale d’une application sous test avec des charges et des délais réduits, et de permettre à d’autres ressources de se concentrer sur des tâches à plus grande valeur ajoutée au lieu d’exécuter des tests répétitifs. Le test est une activité primordiale dans tout projet de développement logiciel et l’automatisation n’est qu’un facilitateur apportant une plus-value aux activités du test. L’activité de test peut se passer de l’automatisation mais l’inverse n’est pas vrai.
Si les tests automatisés sont développés mais ne sont pas exploités ou n’apportent pas un gain dans les processus de test, l’automatisation n’apportera aucune plus-value dans un quelconque contexte. Les outils ne sont que des moyens de faire de l’automatisation de tests. Même s’ils ont une grande importance dans leur choix et leur exploitation, ils doivent être au service du test. De nombreux projets se lancent dans des travaux car la tendance est à l’automatisation. Mais cette étape doit être réfléchie dans une stratégie de tests automatisés et menée avec les ressources adéquates.
Aborder l’automatisation comme un testeur
Les activités d’un automaticien ressemblent à celles d’un testeur fonctionnel avec la conception, la maintenance, l’exécution et le reporting des tests mais avec une dimension technique supplémentaire. Les échanges avec les testeurs et le métier permettent de récolter leurs besoins, d’avoir leur point de vue et de leur remonter des anomalies. Les échanges avec les développeurs permettent d’avoir une vision technique du fonctionnement d’une application.
L’automaticien est avant tout un testeur ayant des compétences techniques avancées et doit connaître les processus liés aux tests pour intégrer les outils d’automatisation dans ces processus dans le but d’apporter un gain aux activités du test. Il doit comprendre à minima ce que fait l’application fonctionnellement et savoir dérouler un test tel un testeur fonctionnel.
En conclusion, entrer dans le monde de l’automatisation des tests est tout à fait possible pour des testeurs qui ont une bonne appétence technique mais il ne faut pas sous-estimer la complexité pour autant. Cette activité est liée en grande partie au développement. Avoir une appétence technique permet un apprentissage facilité des outils et des environnements dans lesquels ils interagissent. L’automatisation est partie intégrante du testing. L’automaticien a les mêmes objectifs qu’un testeur fonctionnel à savoir garantir la qualité du produit avec une maîtrise technique supplémentaire. Avoir un passé de testeur aide donc énormément pour intégrer l’automatisation dans les processus de tests du cycle de vie d’une application. Et comme tout apprentissage, la motivation reste le levier premier.
En recherche d’une opportunité de carrière dans les métiers du Test ?
RDV dans notre espace carrière dédié 👉 https://aubay.com/carriere-accueil/test-automatisation/