Logo ETI Quitter la lecture facile

L’Actu de l’innovation

Améliorer l’automatisation des tests en 8 étapes

Posté le par La rédaction dans Informatique et Numérique

[Tribune] Pradeep Govindasamy

Pour un meilleur retour sur investissement et une meilleure qualité logicielle, le retour d'expérience a permis de définir huit étapes de l'automatisation des tests en entreprise.

L’automatisation ne rend pas forcément le test logiciel plus rapide, plus fiable ou moins onéreux. Les coûts initiaux liés à la configuration et aux outils d’automatisation pouvant être élevés, l’automatisation des tests n’est profitable que si les coûts à long terme compensent ces dépenses initiales. En outre, les outils et méthodologies d’automatisation ne possèdent pas tous les mêmes caractéristiques, fonctionnalités et capacités, et chaque projet peut répondre à des exigences différentes, ce qui a des répercussions sur les coûts et les bénéfices.

Afin de profiter au mieux de l’automatisation des tests, voici huit recommandations issues de notre expérience, acquise au cours de plus de 50 projets internationaux d’automatisation des tests en entreprise. Ces conseils sont destinés à aider l’amélioration du retour sur investissement en automatisation de tests et à améliorer la qualité logicielle.

1 – Choisissez bien ce que vous devez automatiser

Pour atteindre l’équilibre des coûts et des bénéfices, il est essentiel d’identifier les facteurs qui augmentent la complexité de l’automatisation d’un projet de test spécifique. L’automatisation des tests s’applique idéalement à du code qui :

  • joue un rôle important dans une application ;
  • traite de hauts volumes de données ;
  • exécute des processus courants ;
  • est utilisable sur un ensemble d’applications.

  

Un arbre décisionnel de test en 9 points, destiné aux entreprises

 

Il est conseillé aux entreprises de rechercher également les domaines non traditionnels, voire non prévus dans le périmètre, auxquelles elles pourraient étendre leur investissement en automatisation, notamment pour le test des routines d’installation des correctifs et corrections d’anomalies, pour la gestion des tests, et pour la création des rapports de test.

Cognizant a conçu un arbre décisionnel en neuf points (voir ci-dessus) afin de guider le client dans le choix des meilleurs candidats à l’automatisation, en fonction des critères suivants :

  • La faisabilité technique ;
  • La fréquence d’exécution des tests ;
  • Le degré de réutilisabilité des composants de test ;
  • Le nombre total de ressources nécessaires ;
  • La complexité des cas de test ;
  • La possibilité d’utiliser les mêmes cas de test pour de multiples navigateurs ou environnements ;
  • Le temps nécessaire à l’exécution des tests.

2 – Choisissez bien vos outils de test

Les entreprises doivent amortir leur investissement en automatisation. Elles doivent donc choisir des outils de test en mesure de satisfaire leurs besoins sur plusieurs années. Parmi les critères d’évaluation appropriés:

  • La prise en charge de divers types de tests automatisés, notamment le test fonctionnel, la gestion des tests, le test de technologies mobiles, le test d’architecture SOA et le test de logiciel RVI (réponse vocale interactive) ;
  • La prise en charge de multiples frameworks de test ;
  • La capacité de reconnaissance d’objets créés dans une grande diversité de langages de programmation ;
  • La stabilité de la configuration et de l’exploitation sur tout environnement et toute plateforme ;
  • Le degré d’efficacité de l’exécution des tests pour un effort manuel minimum ;
  • La capacité de reprise automatique après défaillance applicative, afin d’empêcher l’interruption des tests ;
  • La performance du langage de script, facilitant le développement de scripts (instructions exécutées dans le cadre d’un test spécifique) réutilisables sur plusieurs plateformes et types de test.

Nous avons mis au point une méthodologie afin d’aider nos clients à choisir le logiciel d’automatisation de test le plus adapté à leurs besoins et à optimiser l’utilisation de ces outils, nouveaux et existants. Cette méthodologie consiste en premier lieu à définir les objectifs auxquels les outils doivent répondre et à spécifier les tests à automatiser, tels que le test fonctionnel ou la validation back-end. Puis, il s’agit de définir les exigences, de créer un tableau de bord d’évaluation, de réaliser une validation de principe et enfin, de préparer les outils pour le déploiement. Les clients peuvent également optimiser l’utilisation de leurs outils d’automatisation grâce à l’identification de l’ensemble des besoins en test à travers l’entreprise, à la création d’un inventaire des outils disponibles et à une revue des accords de licence existants, garantissant que seules les licences nécessaires seront achetées.

    

Choix des outils

3 – Affinez vos processus

Dans de nombreuses entreprises, le manque de processus d’automatisation centralisés et normalisés a entraîné un allongement du cycle de vie des tests, devenu exagérément onéreux et inapte à détecter un nombre maximal d’anomalies. Pour améliorer ces processus, il faut :

  • décrire les risques inhérents aux méthodes actuelles et démontrer que le test peut être réalisé pour un coût moindre et/ou avec une plus grande efficacité ;
  • que la Direction s’implique pour fournir le budget et le support nécessaires à la modification des flux de travail en vue de l’amélioration des processus de test ;
  • obtenir le soutien des équipes de test afin d’atteindre les objectifs d’amélioration ;
  • proposer des formations aux responsables des tests, spécialistes et ingénieurs de test, pour l’acquisition de compétences spécialisées en méthodologies de test ;
  • prioritiser les améliorations des processus en fonction des objectifs de l’entreprise ;
  • mettre en place une mesure continue des processus de test afin d’obtenir un meilleur retour sur investissement.

4 – Choisissez un Framework

Comme pour tout autre outil, les solutions d’automatisation de test doivent être utilisées correctement pour être efficaces. Le choix d’un framework approprié contribue à accroître la réutilisabilité et l’efficacité à long terme.

Un framework ne remplace pas un outil d’automatisation mais sert de feuille de route pour l’utiliser de manière optimale. Dans un espace de stockage différent, il doit également permettre de paramétrer les scripts de test et les données de test, pour que ces derniers soient réutilisables autant que possible et plus simples à gérer.

Parmi les frameworks les plus appréciés, on trouve les frameworks « pilotés par les données », où les données de test sont stockées indépendamment de l’outil d’automatisation. L’utilisation et la personnalisation des rapports sont ainsi simplifiées, de même que la maintenabilité des données, et de multiples cas de test peuvent être réalisés sur plusieurs jeux de données en entrée. Toutefois, les coûts initiaux ainsi que ceux de la maintenance peuvent être considérables.

L’autre approche est celle « déterminée par mots clés ». Les tables de données et les mots clés y sont gérés indépendamment de l’outil d’automatisation et des scripts de test qui pilotent les tests. Toutefois, cette méthodologie demeure plus difficile à utiliser que celle pilotée par les données, qui augmente les coûts et les délais.

Nous avons conçu un framework composite (voir ci-dessous), associant les meilleurs éléments des deux approches –déterminée par mots clés et pilotée par les données. Il assure le stockage des données de test indépendamment de l’outil d’automatisation (en général, dans une feuille Excel), ce qui permet de maintenir et réutiliser les scripts très facilement.

    

Une approche composite de l’automatisation des tests

5 – Ne sous-estimez pas l’effort manuel

Le terme « automatisation » sous-entend que ce sont les machines qui font le travail et non les humains. Le volume d’effort manuel requis dans le cadre des tests automatisés est l’un des aspects les moins bien compris du test logiciel. En effet, les individus doivent configurer les machines de test, créer les scripts, sélectionner les tests, analyser les résultats des tests, enregistrer les anomalies et nettoyer les machines de test. Il est important d’estimer précisément ces coûts, non seulement à des fins de budgétisation et de planification, mais également pour calculer précisément le retour sur investissement.

Au cours de nos missions, nous avons identifié les facteurs que les sociétés informatiques doivent prendre en compte pour estimer l’effort manuel nécessaire à l’automatisation des tests. Parmi ces facteurs : la complexité du langage utilisé pour la création des scripts de test et le volume de travail requis pour planifier, produire, exécuter et maintenir les scripts. Un autre élément contribuant à l’estimation de l’effort consiste à classer les tests par niveau de complexité (simple, moyenne, complexe) en fonction du nombre de transactions et du nombre d’étapes définis par les scripts requis pour chaque cas.

6 – Veillez à la qualité de vos scripts

Respecter les normes est particulièrement important dans le cas de :

  • La gestion des exceptions, qui permet de déterminer si le script de test peut opérer (et dans quelle mesure) une reprise après défaillance de l’application en cours de test ou après comportement inattendu tel que l’affichage d’une fenêtre contextuelle ;
  • L’enregistrement des erreurs, où l’utilisation de normes aide les équipes de développeurs et de testeurs multiples à analyser les résultats de test et à influer sur ces derniers;
  • La documentation, par exemple, pour la mise en commentaire ou la mise en retrait, aide les développeurs à créer des scripts uniformes et à comprendre le code de script créé par d’autres.

   

Des scripts gagnants

 

  Traduction des légendes :

Naming Conventions

Conventions de nommage

Script naming conventions

Conventions de nommage des scripts

Data Table naming conventions

Conventions de nommage des tables de base de données

Variable naming conventions

Convention de nommage des variables

Code Standards

Normes de codage

Comments and Standards

Commentaires et normes

Code Organisation and Style

Organisation et style du code

Template

Modèle

Script Header Template

Modèle d’entête de script

Format Header Template

Modèle d’entête de format

Scripting Standards

Normes de script

Script readability

Lisibilité du script

Script Modularity

Modularité du script

Exceptional Handling

Gestion des exceptions

Error Logging

Journalisation des erreurs

 

7 – Identifiez le responsable de l’exécution des tests

Opter pour l’automatisation des tests suscite l’espoir, parmi les responsables, de parvenir à réaliser les tests avec très peu de travail manuel, voire aucun. Par conséquent, ils n’affectent pas les ressources nécessaires à l’exécution des étapes manuelles requises pour le test automatisé, notamment l’analyse des résultats des tests ou la création et le nettoyage des machines de test. La plupart des personnes pressenties pour ces opérations sont soit indisponibles, soit ne disposent pas des compétences idoines.

Par exemple :

  • Les testeurs fonctionnels sont déjà affectés à des tests manuels ;
  • Les ingénieurs en automatisation, malgré leurs compétences en exécution de tests, ne maîtrisent pas suffisamment les exigences fonctionnelles pour pouvoir analyser les scénarios non réussis. Ils sont par ailleurs trop occupés au développement et à la maintenance des tests pour prendre en charge l’exécution des tests et le suivi des anomalies ;
  • Sans une planification rigoureuse du nombre requis de ressources qualifiées, tout programme de test automatisé échouera, victime d’interruptions de service inattendues, de retards et de dépassements de coûts. L’entreprise ne sera pas en mesure d’exécuter un nombre de tests suffisants, à un rythme suffisamment soutenu, pour pouvoir justifier l’investissement en automatisation de tests.

C’est pourquoi il est important de déterminer, dès le début, la personne « propriétaire » chargée d’exécuter l’ensemble des processus liés à l’automatisation concrète des tests.

    

Affectation de ressources à la fonction d’automatisation des tests

 

  Traduction des légendes :

Automation Framework Development

Développement de framework d’automatisation

Automation Script Development

Développement de script d’automatisation

Automation Script Maintenance

Maintenance de script d’automatisation

Automation Script Execution

Exécution de script d’automatisation

Legend

Légende

Functional Tester

Testeur fonctionnel

Automation Engineer

Ingénieur en automatisation

8 – Mesurez votre réussite avec précision

Pour mesurer l’efficacité de l’automatisation des tests, des outils sont disponibles, tel que le « Automated Execution Efficiency Ratio » ou AEER, qui analysent le ratio de l’effort humain en pourcentage de l’effort total requis pour exécuter les tests automatisés.

Cependant, il ne suffit pas de comparer le nombre d’heures-homme requises pour les tests manuels et les tests automatisés pour un volume de code donné. Vous devez également inclure d’autres facteurs positifs, tels que :

  • Le pourcentage plus élevé d’anomalies détectées ;
  • La réduction du temps nécessaire pour les tests ;
  • La réduction du délai de mise sur le marché ;
  • L’amélioration du taux de satisfaction client ;
  • Les gains de productivité suite à l’amélioration de la qualité de l’application.

L’ensemble de ces avantages vérifiés est à mettre en balance avec les coûts de personnel et de licences d’outils afin de déterminer avec précision le retour sur investissement.

L’automatisation du test logiciel n’est ni aussi simple ni aussi rapide que semble l’indiquer cette appellation. Les outils de test logiciel peuvent s’avérer coûteux, tandis que la configuration, l’exécution et l’analyse des résultats de test exigent un effort manuel important. Toutefois, par l’usage d’outils adéquats, notamment de logiciels en Open source, et de processus et frameworks d’automatisation appropriés, les entreprises sont en mesure de réaliser des économies de coûts et de bénéficier de la qualité du test logiciel automatisé.

Par Pradeep Govindasamy, Directeur Centre d’excellence Automatisation, Cognizant / Experts IT

 

Déjà paru :

Posté le par La rédaction


Réagissez à cet article

Commentaire sans connexion

Pour déposer un commentaire en mode invité (sans créer de compte ou sans vous connecter), c’est ici.

Captcha

Connectez-vous

Vous avez déjà un compte ? Connectez-vous et retrouvez plus tard tous vos commentaires dans votre espace personnel.

INSCRIVEZ-VOUS
AUX NEWSLETTERS GRATUITES !