Automatisation des tests : révolutionnez vos campagnes de test grâce à l’industrialisation

Publié le : 20 mars 2020

La notion peut paraître abstraite et pourtant la nuance est de taille. Si vous avez mis en place des tests automatisés pour améliorer la qualité de vos livrables sachez qu’il est possible d’aller encore plus loin dans l’automatisation des tests : l’industrialisation. Dans cet article nous faisons le tour de la question : quelles sont les différences entre l’automatisation de tests et l’industrialisation des tests automatisés ?

Il existe au minimum 3 méthodes pour appréhender les tests logiciels : manuelle, automatique ou industrielle. Tout au long de la mise en oeuvre d’une campagne de tests ils existent des étapes communes et d’autres singulières à l’automatisation ou l’industrialisation. Pour illustrer nos propos, prenons en exemple une campagne de tests pour valider le tunnel d’achat d’un site e-commerce.

 1 – Phase de préparation des tests de non régression.

CloudNetCare-phase-de-preparation-des-tests-de-non-regression

Lors de la phase de préparation des tests il convient d’imaginer le(s) scénario(s) à créer. Par exemple les étapes suivantes : accéder au site / page catégories / produits / ajout au panier / achat. 

Dans cette phase de “build” toutes les étapes sont communes aux 3 méthodes de tests : réflexion et échanges entre les équipes métiers, identifier le parcours utilisateur et les produits à tester, générer les jeux de données, déterminer les supports (navigateurs, téléphones), construire le plan de test … L’objectif ici pas de lister toutes les phases nécessaires à la construction des tests logiciel, nous laissons les plus curieux d’entre vous lire notre article à ce sujet : “La bonne démarche de construction des tests logiciel : les définitions préalables”.

Ce qu’il faut retenir c’est que manuelle, automatisée ou industrialisée c’est le même combat pour les 3 méthodes lors de cette phase de préparation dont dépendra, en grande partie, la réussite de votre campagne de tests.

2 – Création, exécution et exploitation des tests

CloudNetCare-phase-de-preparation-des-tests-de-non-regression

À cette étape nous perdons notre ami “Manuel” car pour automatiser ou industrialiser ses tests il faut impérativement passer par un outil, une plateforme adaptée pour construire son scénario étape par étape puis, l’exécuter. Et c’est la vision que l’on va avoir de ces tests automatisés qui va induire ou non une industrialisation. Votre scénario va être intégré à combien d’exécution de séquence de tests ? Combien de campagne de tests allez-vous réaliser ? Combien de tests allez-vous exécuter … 

2.2 – Automatisation des tests : création, exécution et exploitation des tests.

L’automatisation des tests consiste à exécuter le scénario au mieux en injectant des données (si l’outil le permet) sur un support déterminé : un téléphone avec un device spécifique sur une version précise ou un ordinateur avec un navigateur spécifique et une version précise, un émulateur … 

Pour notre exemple, l’automatisation a pour but que le test s’exécute automatiquement sur un ordinateur avec Windows 10 et le navigateur Chrome version 80.0.3987.132. Il ne restera plus qu’à exploiter les résultats sans réelle comparaison possible et quasiment aucun historique pour estimer l’évolution de la qualité des livrables.

2.3 Industrialisation de l’automatisation des tests :  création, exécution et exploitation des tests.

L’industrialisation des tests automatisés s’appuie elle aussi sur un patrimoine de scénarios en injectant des données mais sur des supports déterminés :

  • Windows 10 / Chrome version 80.0.3987.132.
  • Windows 10 / Firefox 74.0
  • MacOs Catalina / Chrome version 80.0.3987.132.
  • MacOs Catalina / Safari version 13.0
  • MacOs Catalina / Firefox 74.0
  • IPhone 10 / Safari version 13.0

À cela l’industrialisation des tests va permettre de programmer l’exécution périodique des tests avec le Graal de réaliser le processus d’intégration continu en les exécutant à chaque build. Il serait purement impossible d’imaginer un déploiement d’une campagne de test sur autant de support et aussi régulièrement que cela avec des scénarios simplement automatisés. Ne parlons même pas des tests manuels.

Du côté de l’exploitation des résultats et des KPIs c’est le jour et la nuit. Il est possible de multiplier les comparaisons entre les différents tests et d’identifier des régressions d’une version à l’autre, propre à un support ou à plusieurs. C’est autant de temps gagné par les équipes de développement pour corriger le défaut identifié.

Pour résumer :

 3 – Maintien en conditions opérationnelles.

CloudNetCare-phase-de-preparation-des-tests-de-non-regression

Pour des tests automatisés ou manuels le maintien en conditions opérationnelles est similaire : laborieux. Nous osons le terme car dans les deux cas les infrastructures sont mises à jour manuellement et par conséquent le sont rarement. Cela limite le nombre de supports utilisables.

Mais pour des tests industrialisés tout cet aspect infrastructure matériel est dissocié de l’équipe de test. Le MCO(Maintien en Condition Opérationnelle) est sous la responsabilité des équipes en charge de l’infrastructure et isolé de l’équipe de tests. Les mises à jour sont industrialisées et conduites par des équipes ou des partenaires dédiés. L’intérêt de l’industrialisation de l’automatisation des tests est de pouvoir exécuter des scénarios sur une multitude de supports pour coller aux comportements des utilisateurs. Si les tests sont conduits sur : 

  • iPhone 11 Pro (dernière version iOS)
  • iPhone 10 (dernière et avant dernière version iOS)
  • Huwei P20 (dernière version Android)
  • Samsung Galaxy A10 (dernière et avant dernière version Android)
  • Windows (version 10 et 8)
    • Chrome
    • Firefox
  • Mac Os (Mojave et Catalina)
    • Chrome
    • Firefox
    • Safari

Ce sont ces 16 supports qu’il faut maintenir en conditions opérationnelles et c’est impossible si ce n’est pas réalisé par des équipes dédiées. Et encore nous n’avons pas tenu compte de la mise à jour des versions de logiciels nécessaires (ex : Selenium, Appium, …) ce qui complique un peu plus le MCO de votre environnement de tests.

Vous l’aurez compris la marche est très haute entre l’automatisation des tests et l’industrialisation des tests automatisés. Le plus gros défi à relever c’est le maintien en conditions opérationnelles des différents supports car, au-delà de l’aspect technique, c’est la résistance au changement des équipes qui risque de présenter le plus de défis. Et pourtant c’est simple : pour réussir l’industrialisation de l’automatisation des tests, afin d’augmenter la qualité des livrables, il faut que toutes les parties prenantes se tournent vers cet objectif commun. Et pour cela on vous invite à lire notre article dédié : quand l’intérêt du projet doit passer avant les intérêts individuels.

Les documents du monde du test

Les livres blancs
Lettre d’information Recevez l’actualité des tests