I know how to automate, so why should I train?

Have you heard of the ISTQB® Test Automation certification training?
Probably not—and that’s understandable. Despite being around since 2016, it remains relatively unknown to the general public. Accessible after passing the ISTQB® Foundation certification, this course provides the theoretical foundations of test automation. Ideally, it should be taken before any hands-on automation work, to understand the what before diving into the how.

So why is the ISTQB® Test Automation training useful?
The following lines offer a glimpse into the course content—and aim to spark your interest.

 

 

  1. Pourquoi l’automatisation n’est pas automatiquement facile ?

 

L’automatisation des tests n’est ni facile, ni gratuite. Elle est un projet à part entière, qui permet d’améliorer l’efficacité des tests, de réduire le coût des tests tout en améliorant la couverture des tests.

 

Les problèmes inhérents à l’automatisation des tests :

 

  • avoir des attentes irréalistes dans l’automatisation,
  • avoir des tests peu efficaces,
  • constater l’usure des tests passés,
  • croire qu’il n’y a pas de défauts, après une exécution sans test en échec d’une suite de tests,
  • avoir une maintenance insuffisante des tests automatisés.

 

Ces problèmes peuvent être traités par l’application des bonnes pratiques, en particulier le bon assemblage d’une stratégie d’automatisation des tests, avec la conception d’une architecture d’automatisation des tests (TAA) efficiente – maintenable, performante, et avec capacité d’apprentissage – , un framework d’automatisation des tests (TAF) opérant, et un système sous test (SUT) testable.

 

Ainsi les principaux pièges de l’automatisation – ci-dessous – seront évités :

 

  • Un script trop dépendant de l’interface ou de données particulières
  • Un environnement d’automatisation trop sensible au contexte
  • L’utilisation d’un outil de test automatisé sans processus de test dans l’organisation
  • Une conception des tests sans l’application de normes de conception
  • La tentation d’automatiser 100% des tests
  • L’intervention d’un outil de test trop tard dans le SDLC ou l’implication trop tardive des ingénieurs automaticiens de test dans le cycle de vie des applications

 

 

  1. Préparer son automatisation

 

L’automatisation de l’exécution des tests nécessite une bonne préparation. Cela passe par une approche d’automatisation adaptée à la taille et à la complexité du SUT, avec la conception d’interfaces logicielles pour le test. De plus, la sélection d’un outil d’automatisation des tests s’effectue, comme pour tout outil, par l’évaluation de la maturité du processus de test, et des objectifs d’automatisation, par l’évaluation des outils d’automatisation (éditeurs, open source ou maison), par rapport aux objectifs et aux contraintes, et par l’évaluation sur un cas métier du rapport coût-bénéfice de l’outil.

 

La conception de l’architecture générique automatisée de test (gTAA) reste la première phase majeure de l’automatisation des tests, pour développer par la suite une Solution d’Automatisation de test (TAS). La gTAA met en lien l’Automatisation de test avec d’autres processus : Gestion de projet, Gestion des tests, Gestion de configuration dans le Framework d’Automatisation de test.

 

L’Automatisation de test doit d’abord être pensée avant mise en œuvre, selon l’expression des 4 couches de la gTAA :

 

  • génération des tests,
  • définition des tests,
  • d’exécution des tests
  • et d’adaptation des tests.

 

La couche de génération des tests définit comment sont conçus les tests (manuellement ou basé sur des modèles) ; la couche de définition des tests élabore les cas de tests, données de test, et scripts de test, à partir des conditions de test ; la couche d’exécution (automatique) des tests permet de suivre les résultats de tests grâce aux logs de test ; enfin, la couche d’adaptation contrôle le SUT grâce aux interfaces comme les GUI ou les API.

 

 

  1. Déployer la Solution Automatisée de Test (TSA)

  2.  

L’Automatisation de test doit ensuite aussi être réfléchie sur le contenu de l’automatisation (quelles activités automatiser ? quels niveaux de tests automatiser ? quels types de tests automatiser ?) et les rôles de test dans l’organisation.

 

Enfin, l’Approche d’automatisation des cas de test varie selon la maturité organisationnelle. Plus le niveau de maturité est élevé, plus le niveau d’abstraction augmente. Différentes méthodes de scripting sont présentées ici, avec leurs caractéristiques : le capture / playback, le scripting linéaire, le scripting structuré, le scripting basé sur les données, sur les mots clés, ou encore sur les modèles ou les processus métier.

 

Le développement de la Solution Automatisée de Test (TAS) résulte alors de la bonne conception de la TAA, et se fait en phase et en compatibilité avec le système sous test (SUT). Comme pour tout projet, le développement de la Solution Automatisée de Test (TAS) va être déployé en plusieurs phases : tout d’abord exercée avec un projet pilote, puis à l’ensemble de l’organisation de manière incrémentale.

 

Le projet pilote doit être correctement identifié : ni un projet critique, ni un projet trivial. L’objectif du projet pilote est de vérifier que les promesses de la TAS sont tenues, par exemple en termes d’automatisation des tests de non-régression, tout en sachant que l’automatisation est un investissement à long terme, et que le seuil de rentabilité sera atteint après un délai raisonnable (à quantifier au départ).

 

Le déploiement de la TAS est effectué de façon incrémentale à tous les projets de l’entreprise : la formation des utilisateurs, la création de manuels utilisateur de la TAS, le support aux équipes de test et de dév de la TAS, le contrôle de l’usage, des bénéfices et des coûts de la TAS, l’amélioration continue avec des rétrospectives … sont de bonnes pratiques pour le déploiement général de la TAS à l’ensemble de l’organisation.

 

La TAS ainsi créée, puis déployée, doit pouvoir être maintenue facilement : elle est modulaire, évolutive, documentée, fiable et testable. Il doit aussi être possible de vérifier la TAS (comme pour tout projet logiciel), avec la vérification de l’environnement de test automatisé, et la vérification de la suite de tests automatisés. Il doit enfin être possible de suivre et monitorer les activités d’automatisation, par des métriques d’efficience de la TAS (ex : densité de défauts dans le code de la TAS… ), et des métriques de l’impact sur ces activités (ex : effort d’automatiser ou de maintenir un test, effort d’analyse un test en échec…).

 

L’utilisation de la TAS a pour objectif de créer, in fine, à partir des tests manuels existants, un environnement de tests automatisés. Tous les cas de tests manuels ne devant pas être automatisés, des critères sont nécessaires pour définir lesquels cas de tests manuels sont à automatiser. Ces critères d’aptitude à l’automatisation sont la fréquence d’utilisation, la complexité de l’automatisation, la maturité du processus de test, la durabilité de l’environnement automatisé et la contrôlabilité du système sous test (SUT). Néanmoins, des tests manuels restent toujours importants et nécessaires.

 

Les tests de régression, et les tests de confirmation sont de bons candidats à l’automatisation.

 

 

  1. L’amélioration continue comme clé de réussite

 

Enfin, comme pour tout projet logiciel, l’amélioration continue fait partie des bonnes pratiques de l’automatisation. Si la première priorité de l’automatisation est d’abord de la faire fonctionner, il convient ensuite d’apporter des améliorations supplémentaires sur la TAS ou sur le SUT :

 

  • Amélioration par l’approche de scripting et amélioration des scripts
  • Amélioration de l’exécution des tests (parallélisation / découpage par priorité / élimination des doublons par analyse de couverture)
  • Adaptation de l’automatisation des tests à l’environnement et aux modifications du SUT

 

La TAS et le SUT doivent effectivement rester en phase, tout au long du cycle de vie du développement logiciel.

 

 

Conclusion

 

Tels sont les principaux éléments qui sont abordés dans cette formation ISTQB® Advanced – Automatisation des tests : des bonnes pratiques en automatisation. Cette formation est éclairante à plus d’un titre, et devrait – à mon sens – être envisagée AVANT de commencer à pratiquer tout projet d’automatisation.

Gilles Ménède

en savoir plus Intéressé par cette nouvelle version ?

Découvrez le programme et les prochaines sessions

Partager l'article