Avez-vous déjà entendu parler de la formation à la certification ISTQB® en automatisation des tests?
Probablement pas, et c'est tout à fait compréhensible. Bien qu'elle existe depuis 2016, elle reste relativement méconnue du grand public. Accessible après avoir obtenu la certification ISTQB® Foundation, cette formation fournit les bases théoriques de l'automatisation des tests. Idéalement, elle devrait être suivie avant toute mise en pratique de l'automatisation, afin de comprendre le « quoi » avant de se plonger dans le « comment ».
Alors, en quoi la formation ISTQB® Test Automation est-elle utile ?
Les lignes qui suivent vous donnent un aperçu du contenu de la formation et visent à éveiller votre intérêt.
L’automatisation des tests n’est ni facile, ni gratuite. Il s’agit d’un projet à part entière, qui permet d’améliorer l’efficacité des tests, de réduire leur coût tout en améliorant leur couverture.
Les problèmes inhérents à l’automatisation des tests :
Ces problèmes peuvent être résolus par l’application des bonnes pratiques, notamment la mise en place d’une stratégie d’automatisation des tests, associée à la conception d’une architecture d’automatisation des tests (TAA) efficace – maintenable, performante et dotée d’une capacité d’apprentissage –, d’un framework d’automatisation des tests (TAF) opérationnel et d’un système sous test (SUT) testable.
Ainsi, les principaux écueils de l’automatisation – énumérés ci-dessous – seront évités :
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 système sous test (SUT), avec la conception d’interfaces logicielles dédiées aux tests. De plus, le choix d’un outil d’automatisation des tests s’effectue, comme pour tout outil, en évaluant la maturité du processus de test et les objectifs d’automatisation, en évaluant les outils d’automatisation (éditeurs, open source ou développés en interne), au regard des objectifs et des contraintes, ainsi que 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 de test automatisé (gTAA) reste la première phase majeure de l’automatisation des tests, en vue de développer par la suite une solution d’automatisation des tests (TAS). La gTAA relie l’automatisation des tests à d’autres processus : gestion de projet, gestion des tests, gestion de configuration au sein du cadre d’automatisation des tests.
L’automatisation des tests doit d’abord être pensée avant sa mise en œuvre, selon les quatre couches de la gTAA :
La couche de génération des tests définit comment les tests sont conçus (manuellement ou à partir de modèles) ; la couche de définition des tests élabore les cas de test, les données de test et les scripts de test à partir des conditions de test ; la couche d’exécution (automatique) des tests permet de suivre les résultats des tests grâce aux journaux de test ; enfin, la couche d’adaptation contrôle le système sous test (SUT) via des interfaces telles que les interfaces graphiques (GUI) ou les API.
L’automatisation des tests doit ensuite également être réfléchie en termes de contenu (quelles activités automatiser ? quels niveaux de tests automatiser ? quels types de tests automatiser ?) et de rôles de test au sein de l’organisation.
Enfin, l’approche d’automatisation des cas de test varie en fonction de la maturité organisationnelle. Plus le niveau de maturité est élevé, plus le niveau d’abstraction augmente. Différentes méthodes de création de scripts sont présentées ici, avec leurs caractéristiques : la capture/lecture, la création de scripts linéaire, la création de scripts structurée, la création de scripts basée 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 de test automatisée (TAS) résulte alors d’une conception adéquate de la TAA et s’effectue en phase et en compatibilité avec le système sous test (SUT). Comme pour tout projet, le développement de la solution de test automatisée (TAS) se déroulera en plusieurs phases : tout d’abord dans le cadre d’un projet pilote, puis à l’échelle de l’ensemble de l’organisation de manière incrémentale.
Le projet pilote doit être correctement identifié : il ne doit s’agir ni d’un projet critique, ni d’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 dès le départ).
Le déploiement de la TAS s’effectue de manière incrémentale sur l’ensemble des projets de l’entreprise : la formation des utilisateurs, la création de manuels d’utilisation de la TAS, l’accompagnement des équipes de test et de développement dans l’utilisation de la TAS, le suivi de l’utilisation, des bénéfices et des coûts de la TAS, l’amélioration continue à travers des rétrospectives… constituent des bonnes pratiques pour le déploiement généralisé 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 également être possible de vérifier la TAS (comme pour tout projet logiciel), notamment en vérifiant l’environnement de test automatisé et la suite de tests automatisés. Il doit enfin être possible de suivre et de surveiller les activités d’automatisation, à l’aide de métriques d’efficacité de la TAS (par exemple : densité de défauts dans le code de la TAS…), et des indicateurs d’impact sur ces activités (par exemple : l’effort nécessaire pour automatiser ou maintenir un test, l’effort d’analyse d’un test ayant échoué…).
L’utilisation de la TAS a pour objectif de créer, à terme, à partir des tests manuels existants, un environnement de tests automatisés. Tous les cas de test manuels ne devant pas nécessairement être automatisés, des critères sont nécessaires pour définir quels cas de test manuels doivent être automatisés. 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 pérennité de l’environnement automatisé et la contrôlabilité du système sous test (SUT). Néanmoins, les tests manuels restent toujours importants et nécessaires.
Les tests de régression et les tests de confirmation sont de bons candidats à l’automatisation.
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 avant tout de la rendre opérationnelle, il convient ensuite d’apporter des améliorations supplémentaires au TAS ou au SUT :
La TAS et le SUT doivent en effet rester en phase tout au long du cycle de vie du développement logiciel.
Tels sont les principaux éléments abordés dans cette formation ISTQB® Advanced – Automatisation des tests: les bonnes pratiques en matière d’automatisation. Cette formation est enrichissante à plus d’un titre et devrait, à mon sens, être envisagée AVANT de se lancer dans tout projet d’automatisation.