L’automatisation, une première réponse
Nous l’avons vu, tester manuellement un logiciel aujourd’hui ne permet plus de répondre aux enjeux du time to market. Cela dit, le regard humain reste indispensable puisqu’il est le seul à pouvoir développer des stratégies d’exploration et de détection des dysfonctionnements réellement intelligentes. Il s’agit de voir maintenant en quoi la machine peut assister l’homme dans son travail. On peut faire l’analogie entre l’activité de test et la pêche en mer. Il s’agit d’aller dans les zones poissonneuses (celles où il y a le plus de chance de trouver des dysfonctionnements) et d’attraper un maximum de poissons. Ici, le testeur est le capitaine du bateau ; il choisit les zones de pêches. La machine, c’est la taille et la dimension des mailles du filet. Il ne vient pas à l’esprit d’un pêcheur de partir sans un bon filet. La machine est donc un outil qui permet d’augmenter les capacités du testeur pour faire face aux nouveaux enjeux.
Voici les sept bénéfices que l’on peut atteindre en utilisant la machine pour automatiser certaines tâches de l’activité de test :
- Une procédure automatisée est répétable, ce qui permet de massifier les interventions.
- Le lancement d’un automate est simple et beaucoup moins pénible par rapport à son équivalent manuel. L’équipe devient plus réactive.
- La procédure automatisée apporte de la régularité. La fréquence des erreurs se réduit. Les tâches complexes sont sécurisées.
- Les actes automatisés sont banalisés, ce qui permet de confier des travaux à plus de personnes sans compétence particulière.
- Le résultat des tâches automatisées est visible au fil de l’eau. L’état des actions est ainsi régulièrement partagé sans attendre la consolidation d’un reporting.
- Les modes opératoires deviennent exécutables, permettant de documenter efficacement les meilleures pratiques. L’automate devient une documentation vivante beaucoup plus efficace qu’un wiki, qui a tendance à mal vieillir.
- Du temps est libéré sur les tâches répétitives, fastidieuses, complexes. La productivité s’améliore.
Et voici la liste des huit grandes familles d’activité du métier du test :
- la stratégie de test et le maintien du référentiel des exigences et de la couverture des tests,
- la préparation des tests (fiche de test, identification des besoins en jeux de données),
- l’exécution des tests, ici la démarche RPA consiste en l’automatisation des tests,
- la formalisation (collecte des preuves), le diagnostic (identification du partenaire de correction) et le suivi des dysfonctionnements (traçabilité, workflow),
- le déploiement du logiciel,
- le provisionning des jeux de données,
- le provisionning, le monitoring et la maintenance des environnements de test,
- le pilotage des tests.
Au travers de cette liste, on comprend que l’on peut tirer bien plus de bénéfices de l’automatisation que ceux apportés par le test automatique, qui se concentre uniquement sur l’exécution des tests. C’est tout l’enjeu de la démarche RPA appliquée au métier du test.
La démarche RPA appliquée au métier du test
Par RPA, il faut comprendre la mise en place d’un ou plusieurs assistants virtuels (automates) qui permettent d’automatiser des tâches ne nécessitant pas de jugement humain. Ils sont mis en œuvre entre 3 et 7 semaines et sont construits pour interagir avec les applications existantes, en limitant leur empreinte sur l’infrastructure. |
Le premier élément à prendre en compte dans la démarche RPA est probablement la conduite du changement. Les équipes en place sont fortement mobilisées pour produire leur travail quotidien. Cela leur laisse peu de temps pour intégrer un nouvel outil ou une nouvelle façon de travailler. |
Le RPA doit automatiser en priorité les tâches qui sont réellement effectuées par l’équipe et qui rendent le quotidien fastidieux. Le gain sera ainsi clairement perçu comme libérateur et favorisera l’adoption des assistants virtuels.
Ensuite, il faut passer en revue l’ensemble des tâches qui sont :
répétitives (mesurable par une fréquence) | fastidieuses (mesurable par une charge) |
complexes (mesurable par un nombre d’erreurs) | déléguées (mesurable par un délai de prise de charge) |
Cette collecte des tâches avec un potentiel de gain doit s’effectuer au plus près de l’équipe, pour qu’elle soit le reflet de sa pratique. Il faut se méfier des schémas qui sont souvent le reflet de procédures idéalisées. Il existe quatre terrains propices au RPA dans les activités du test :
- La mise en condition de test, l’identification ou la construction d’un jeu de données, par exemple. Cette partie peut représenter jusqu’à 40% du temps du testeur. Il est prioritaire de commencer par automatiser tout ce qui permet de se procurer des jeux de données : requêtes de ciblage, parcours de création de données sur les applications métiers, outil de rechargement. Ceci est d’autant plus indispensable que le besoin en jeux de données va être fortement augmenté, dès lors que des tests automatisés sont mis en place.
- L’exécution de tests fréquents tels que les tests de régression. Il est souvent intéressant d’implémenter le RPA au sein de ces tests dans la mesure où ils sont répétitifs et ennuyeux. Le regard humain baisse en vigilance. Cependant, gardons à l’esprit que l’exécution du test ne concerne que 10% de l’activité d’un testeur. Il faut donc choisir les tests les plus fréquents ou ceux qui sécurisent un service incontournable du métier (une notification client, une facturation par exemple).
- La collecte des preuves, le diagnostic, l’extraction des logs par exemple. Cette partie peut représenter jusqu’à 40% du temps du testeur.
- Le déploiement logiciel est souvent source d’erreurs lorsqu’il est effectué manuellement. Positionné sur le chemin critique du projet, c’est une tâche prioritaire à sécuriser.
La présence de fichiers Excel avec plus de 100 lignes peut également être révélatrice d’un besoin d’automatisation. Il est humainement difficile de maîtriser un tel volume d’information.
Une fois la liste des tâches constituée, il faut la prioriser. Pour cela, le plus simple est d’affecter deux notes à chaque tâche :
- une note de gain de 1 (nice to have) à 10 (gain maximum pour l’équipe) estimée par l’équipe de test,
- une note de simplicité de fabrication de l’assistant virtuel de 1 (un démonstrateur est nécessaire) à 10 (une simple configuration d’un automate existant) estimée par un automaticien.
Le score de priorité est évalué en multipliant la note de gain par la note de simplicité. La liste priorisée des tâches/tests à automatiser constitue le backlog des travaux à engager.
Maintenant que l’on sait ce qu’il faut automatiser et dans quel ordre le faire, il reste à relever les quatre défis de l’automatisation.
Jérôme Beaumont est advenced architect RPA and Test Automation chez Altran part of Capgemini. Depuis 2017, il diffuse la pratique d’automatisation de tests sur les plateaux Altran et conseille les entreprises dans l’industrialisation de leur processus métier. Il a actuellement la charge de déployer le RPA sur l’ensemble des opération Cap Gemini Engeneering France.