Bien tester oui, mais quoi & comment ? Ou comment l’interface Jenkins d’Agilitest va vous simplifier la vie

par Emmanuel Duperray | 19 novembre 2020

Lorsque l’on projette de valider les développements d’une solution, quelle qu’elle soit, les mêmes contraintes se répètent inexorablement.
Quel est notre objectif de qualité finale ? De combien de ressources disposons-nous ? De combien de temps disposons-nous ?

Nous allons voir ça étape par étape et découvrir en quoi l’interface de déploiement Jenkins d’Agilitest va vous simplifier la vie.

Les méthodes comme support structurel essentiel pour composer sa stratégie de test

En testing, les principes de base de l’ISTQB nous permettent d’y voir plus clair dans ce que vont nous apporter (ou pas) de bons tests, toujours par rapport à un objectif fixé (NDLR : par la politique de test). Nous allons ainsi pouvoir anticiper beaucoup d’erreurs et de pièges et pouvoir maximiser l’efficacité de l’effort de test.

Les stratégies de test, autrement dit les méthodologies que l’on souhaite adopter dans notre organisation, seront là pour faire en sorte que les équipes de validation soient encadrées dans leurs démarches par des standards, des modèles et tout simplement les bonnes pratiques de tests qui ont déjà fait leurs preuves. Il est possible de faire un mix entre plusieurs stratégies suivant tous les critères qui nous importent comme les risques, la sécurité, les dangers, les ressources et leur expertise, la technologie, les objectifs et finalement les normes et réglementations.

Vous pourrez composer au choix parmi les 7 stratégies listées selon le Syllabus de l’ISTQB :

  • Les stratégies analytiques
  • Les stratégies basées sur les modèles
  • Les stratégies méthodiques
  • Les stratégies basées sur un processus ou un standard
  • Les stratégies dynamiques / réactives (shift right)
  • Les stratégies consultatives
  • Les stratégies anti-régression

Que devons-nous tester en priorité ?

La réponse dépend évidemment du contexte selon les objectifs fixés, les moyens disponibles, ou encore les urgences du terrain. Quoi qu’il arrive il faudra toujours jongler entre les priorités métier de la solution, leur criticité et leur fragilité relative. D’expérience, la priorité sera souvent fixée par les risques business pour délivrer le meilleur niveau de qualité par rapport à ce qu’attend le client final.

Il y a ceci dit une chose sur laquelle nous pourrons jouer : ce sera notre capacité à démultiplier nos performances de test pour un temps et un budget donné. C’est là que l’automatisation des tests intervient, avec ses avantages indéniables et ses pièges.

Comment éviter les pièges de l’automatisation des tests?

Dans la pratique, nous allons identifier dès le départ les scopes fonctionnels automatisables. L’approche multi-canal d’Agilitest vous ouvre énormément de portes pour élargir judicieusement ce scope et ainsi optimiser les efforts de tests.
Il faut partir du principe que vous ne pourrez pas tout automatiser, et c’est même plutôt 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 importante couverture de tests automatiques par des tests exploratoires réalisés par de vrais utilisateurs et/ou des experts fonctionnels dans des conditions de simili production.

Tout bon automaticien sait qu’il ne faut pas tout automatiser sous peine de faire accroître démesurément les charges de maintenance (avec un budget, on le rappelle, qui est fixe). A priorité égale, nous allons donc automatiser les domaines fonctionnels très répétitifs cruciaux et dont les données de tests seront 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 dirigées par nos données (Data Driven Testing), et ainsi nous apporter encore davantage de confiance sur la qualité globale en garantissant une profondeur améliorée de nos cas de test.

Et la maintenance des tests dans tout ça ?

La maintenance, ou le fait de devoir mettre à jour les tests qui sont en échec pour d’autres raisons que des anomalies trouvées, est souvent le talon d’Achille de l’automatisation. C’est parfois la raison principale pour laquelle certains projets échouent, dans les cas où ces charges de maintenance 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, le principal enjeu a surtout été de faciliter leur maintenance (rapports vidéo, corrections des tests en live, ergonomie et accessibilité optimisées…). L’objectif est que nous puissions réduire au maximum les coûts de maintenance à la fois en en réduisant la fréquence mais également en l’accélérant lorsqu’elle est nécessaire.
L’idéal vers lequel nous souhaitons vous amener est de pouvoir faire tourner vos tests en continu afin de repérer rapidement et au plus tôt les anomalies lorsque la solution testée évolue et en faire une maintenance rapide après diagnostique.

La cerise sur le gâteau: Jenkins

Agilitest permet de mettre en place et configurer automatiquement un serveur Jenkins local voire se raccorder à un Jenkins distant ! C’est simple, rapide et extrêmement pratique.

Création et planification d’un job Jenkins depuis Agilitest

Vous allez pouvoir planifier des exécutions récurrentes (tous les matins à 6h, tous les jeudis voire même en continu sur une plage définie si vous le souhaitez) pour vous assurer que toutes vos fonctions testées sont bien au vert le matin en arrivant au travail.

Il existe d’ailleurs dans Jenkins des Dashboards et Monitors qui ont pour objectif de vous permettre en un coup d’œil de visualiser les jobs qui sont en échec.

Ces jobs, qui vont automatiquement lancer vos tests sur vos solutions Web, Desktop, API ou encore Mobiles (terminaux émulés ou physiques) vont ainsi vous être remontés sur un monitoring très graphique. C’est ainsi que vous allez gagner en confiance au jour le jour sur la qualité de vos solutions.

Une étape vers le convoité « déploiement continu »

Comme nous l’avons vu, avec une méthodologie de test bien pensée en amont, une couverture fonctionnelle optimisée et maîtrisée puis un système de planification d’exécution tel que Jenkins, vous venez de faire un pas vers le domaine de l’ IC/DC (Intégration Continue / Déploiement continu), tout du moins sur sa partie testing.
Ensuite plus rien ne vous empêche de déclencher l’exécution de vos jobs sur un commit poussé par les équipes de développement et ainsi gérer de manière tout à fait autonome vos campagnes de tests de non régression, vous laissant mécaniquement le temps nécessaire pour tester les nouvelles fonctions livrées et mieux encore, pour directement en automatiser les tests.


Pour en savoir plus, connectez vous www.agilitest.com pour nous poser directement vos questions ou bien organiser une démo en ligne.