Lorsque nous envisageons de valider le développement d'une solution, quelle qu'elle soit, les mêmes contraintes se répètent inexorablement : Quel est notre objectif final de qualité ? De combien de ressources disposons-nous ?
Voyons cela étape par étape et découvrons comment l'interface de déploiement Jenkins d'Agilitest vous facilitera la vie.
Composez votre stratégie de test
Dans le domaine des tests, les principes de base décrits par l'ISTQB nous permettent de voir plus clairement ce que de bons tests apporteront (ou non) à l'équipe. De cette façon, nous pouvons anticiper de nombreuses erreurs et pièges et maximiser l'efficacité de l'effort de test.
Les stratégies d'essai garantiront que les équipes de validation sont guidées dans leur approche par des normes, des modèles et simplement de bonnes pratiques d'essai qui ont déjà prouvé leur efficacité. Il est possible de combiner plusieurs stratégies en fonction de tous les critères qui nous importent, tels que les risques, la sécurité, les dangers, les ressources et leur expertise, la technologie, les objectifs et enfin les normes et réglementations.
Vous pourrez choisir parmi les 7 stratégies énumérées dans le syllabus de l'ISTQB :
- Stratégies analytiques
- Stratégies basées sur des modèles
- Stratégies méthodiques
- Stratégies basées sur des processus ou des normes
- Stratégies dynamiques / réactives (déplacement vers la droite)
- Stratégies consultatives
- Stratégies anti-régression
Que devons-nous tester en premier ?
La réponse dépend évidemment du contexte, en fonction des objectifs, des moyens de l'équipe, ou des délais. Quoi qu'il en soit, il faudra toujours trouver un chemin entre les métiers de la solution, leur criticité et leur relative fragilité.
Par expérience, la priorité sera souvent fixée par les risques métiers pour délivrer le meilleur niveau de qualité par rapport à ce qu'attend le client final.Il y a une chose sur laquelle nous pouvons jouer : notre capacité à démultiplier la performance de nos tests pour un temps et un budget donnés. C'est là qu'intervient l'automatisation des tests, avec ses avantages et ses écueils indéniables.
Comment éviter les pièges de l'automatisation des tests ?
En pratique, nous identifierons dès le départ les périmètres fonctionnels automatisables. L'approche multi-chanel d'Agilitest vous ouvre de nombreuses portes pour élargir judicieusement ce périmètre et ainsi optimiser vos efforts de test.
Vous devez partir du principe que vous ne pourrez pas tout automatiser, c'est même une pratique à éviter. Même si Agilitest vous permettra d'augmenter la couverture automatisable avec des retours sur investissement rapides et importants, la bonne recette sera de compléter une couverture importante de tests automatiques par des tests exploratoires réalisés par de vrais utilisateurs et/ou experts fonctionnels dans des conditions de production simulées.
Tout bon testeur d'automatisation sait qu'il ne faut pas tout automatiser sous peine d'augmenter excessivement les coûts de maintenance (avec un budget fixe, rappelons-le). Avec la même priorité, on va donc automatiser des domaines fonctionnels très répétitifs, mais cruciaux et dont les données de test sont potentiellement arborescentes. Un autre avantage puissant d'Agilitest est qu'il permet de mettre en place très facilement des campagnes de tests qui seront pilotées par nos données(Data Driven Testing). Cela nous donne encore plus de confiance dans la qualité globale en assurant une meilleure profondeur de nos cas de test.
Qu'en est-il du test maintenance?
Le Maintenance des tests automatisés (tant l'analyse des cas d'échec, flaky tests ou non, que la modification des cas de tests du à la modification du code), est souvent le talon d'Achille de l'automatisation. C'est parfois la raison principale de l'échec de certains projets, dans les cas où ces maintenance charges ne sont plus maîtrisées. Dans Agilitest, si tout a été pensé pour vous permettre d'automatiser facilement vos cas de tests métier, l'enjeu principal a été de faciliter leur maintenance (Rapports vidéocorrections de tests en direct, ergonomie et accessibilité optimisées...). L'objectif est de réduire au maximum les coûts de maintenance , à la fois en réduisant la fréquence et en l'accélérant si nécessaire.
L'idéal vers lequel nous souhaitons vous conduire est de pouvoir exécuter vos tests en continu afin d'identifier rapidement les anomalies le plus tôt possible lors de l'évolution de la solution testée et d'effectuer un maintenance rapide après diagnostic.
La cerise sur le gâteau : Jenkins
Agilitest vous permet d'installer et de configurer automatiquement un serveur Jenkins local ou même de vous connecter à un Jenkins distant ! C'est simple, rapide et extrêmement pratique.
Création et planification d'une tâche Jenkins à partir d'Agilitest
Vous pourrez programmer des exécutions récurrentes (tous les matins à 6h, tous les jeudis ou même en continu sur une période définie si vous le souhaitez) pour vous assurer que toutes vos fonctions testées sont OK lorsque vous arrivez au travail le matin.
Il y a des tableaux de bord et des moniteurs dans Jenkins qui vous permettent de voir d'un coup d'œil quels sont les travaux KO.
Ces jobs, qui lanceront automatiquement vos tests sur vos solutions Web, Desktop, API ou Mobile (terminaux émulés ou physiques), s'afficheront sur un écran très graphique. C'est ainsi que vous gagnerez en confiance sur la qualité de vos solutions au quotidien.
Une étape vers la très convoitée "validation continue".
Comme nous l'avons vu, avec une méthodologie de test bien pensée en amont, une couverture fonctionnelle optimisée et contrôlée, puis un système de planification de l'exécution tel que Jenkins, vous venez de faire un pas vers le domaine du CI/CD (Continuous Integration/Continuous Deployment), du moins en ce qui concerne les tests.
Rien ne vous empêche alors de déclencher l'exécution de vos jobs sur un commit poussé par les équipes de développement et ainsi de gérer vos campagnes de tests de non-régression de manière totalement autonome, vous laissant mécaniquement le temps nécessaire pour tester les nouvelles fonctions livrées et mieux encore, pour automatiser directement les tests.
Pour en savoir plus, connectez-vous sur www.agilitest.com
Crédit photo : Kelly Sikkema sur Unsplash