19 : De l’ATDD pratiquée manuellement à l’ATDD automatisée (1 / 2)

En conclusion de nos articles, d’une part sur l’ATDD avec un outil générant les scénarios de test et les tests (scénarios avec les valeurs spécifiques en conditions et observations), d’autre part une approche ATDD qui spécifie et teste de manière systématique et rapide les exigences, que pouvons-nous dire ?

Le test agile doit rester centré sur le produit à livrer

Souvent on pense que le test en agile c’est le test des US, celles-ci étant souvent créées même lorsqu’elles ne sont pas INVEST. La série d’articles, je l’espère, rectifie cette vision.

  1. Les tests agiles doivent aussi être ceux qui vont valider le produit dans sa globalité (jusqu’aux tests de parcours, notamment pour le PO) : c’est un système dont la complexité peut être forte. Réalisé, ou non, en agile, cette réalité demeure !
  2. Les tests agiles doivent nécessairement s’appuyer sur une spécification claire du système, indépendamment des tickets de réalisation. Comment trouver les tests de non régression si vous ne mettez pas ensemble les règles qui constituent le produit et pouvoir analyser leurs interactions ? Nous avons vu que nous nous appuyons sur les spécifications des fonctionnalités du produit (MUC, UC, tâches) et non pas les artefacts agiles. Ayant testé cette dernière solution, je l’ai abandonnée dès que je me suis aperçu que je perdais en visibilité d’ensemble et en morcelant inutilement le système. Par contre dans la méthode proposée il suffit de poser les fonctionnalités (relativement stables dans leurs libellés, à défaut de leur contenu) et “taguer” les évolutions agiles.
  3. L’algorithme des tamis successifs est donc applicable à ces éléments de produit, avec la capacité de filtrer les impacts des tickets agiles :
    1. En mettant une colonne de “traçabilité tickets agiles” dans les tables
    2. En utilisant BML pour juger de l’utilisation des données dans tout le système, sans se soucier de rechercher dans les documents leurs sprints de création, modification ou utilisation.

Le nombre de scénarios de test doit être proportionnel aux risques encourus

Ce principe existait déjà en mode traditionnel (cycle en V). Toutefois il devient encore plus prégnant en agile du fait des changements fréquents. Il faut de la qualité (elle n’est pas négociable, même en agile !), mais pas de sur-qualité car les délais de réalisation sont contraints.

Ceci implique deux conséquences :

  1. Les générateurs ATDD doivent nous proposer des scénarios de test “à la demande”. Leur intérêt diminue s’ils nous fournissent beaucoup trop de scénarios que nécessaires !
  2. Un algorithme doit être compris et guidé par le bon sens. “L’algorithme des tamis successifs”, que je propose, répond à ces objectifs. Il a le mérite d’avoir été très longuement utilisé sur des projets de toute taille et de toute criticité. 

Il montre bien que la granularité des points à tester s’affine (une analogie avec l’affinage des epics en US pourrait être appliquée : on commence par le plus important – le cas nominal, on finit par les détails – les cas alternatifs). L’algorithme explique bien cette image des “tamis” qui sont d’abord à “grosse maille” puis diminuent. 

Pour les 3 amigos, il faut d’abord se concentrer sur les exigences avant de trouver systématiquement les critères d’acceptation

Les exigences fonctionnelles (nous n’avons parlé que de celles-ci) doivent respecter des critères qualité : elles doivent être complètes, précises, claires, sinon vous vous exposez à des spécifications ambiguës, des développements erronés, des tests insuffisants… et dans ce cas, tout le monde est perdant !

Nous voyons qu’un algorithme fondé sur une grammaire textuelle et/ou graphique, simple mais rigoureuse, amène à des critères d’acceptation et des scénarios de test précis. 

Le langage Gherkin dont beaucoup ne retiennent que la forme n’est pas suffisant puisqu’il faut ajouter des commentaires après chaque étape (Quand) pour connaître le résultat intermédiaire.

Le langage de spécification BML (Business Modeling Language) me paraît plus adapté, tout en ne contredisant pas Gherkin, mais en le précisant.

Des scénarios de test aux tests

Une fois les scénarios de test mis en évidence, les tests d’US INVEST utilisent les données à tester sur chaque affirmation.

Les principes, là aussi, montrent une graduation progressive du nombre de tests en fonction des valeurs spécifiques à tester (limites du spectre des valeurs d’une donnée ou frontières spécifiques, internes au spectre). 

Concernant les tests conçus manuellement en mode ATDD, la désignation des scénarios réutilisables suffit pour le PO pour comprendre les données à utiliser. De la même manière qu’un roadbook pour les vacances désignent, en quelques pages, les villes et visites essentielles, sans indiquer chaque rond-point, le PO connaît l’ application. Inutile de dire plus que l’intention d’un scénario bien décrit par ailleurs.

L’auteur

Didier JOLIOT, Ingénieur Coach agile et formateur

Didier a une grande expérience professionnelle : développeur puis responsable qualité et certification de logiciels temps réels critiques. Ex : Airbus (A320, A340), missiles, spatial, nucléaire, sous-marins, …  Il a été ensuite expert spécifications et tests auprès d’équipes MOE, puis de MOA bancaires. Il a été aussi directeur de projet, et enfin expert auprès des managers pour la stratégie des SI (« Portfolio Management » et architecture d’entreprise).

Il pratique depuis 2012 l’agilité. Il a été coach agile pour le Product management de très gros projets « agiles à l’échelle » au Crédit Agricole et à la Société Générale, et pour de nombreuses équipes Scrum.

Il a écrit 5 livres et de nombreux articles. Il enseigne, depuis des années, dans plusieurs écoles d’ingénieur et dans les entreprises. Il a créé, de plus, plusieurs méthodes : le langage « Business Modeling Language (BML) », l’algorithme ATDD des tamis successifs, la CNV-A, etc.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

ATDD

Les 7 principes du test: tester tôt (3/7)

Dans cette série vous pourrez trouver dans chaque article une présentation d’une des 7 principes fondamentaux du test. Tester tôt Description Ce principe est assez simple à appréhender. Il rappelle qu’il est important/ nécessaire de tester aussi tôt que possible afin d’éviter que des problèmes mineurs et faciles à corriger

Lire la suite »
Image présentant les thématiques du RGESN
Qualité durable

Présentation du RGESN 2024: les spécifications (2/9)

Le RGESN, Référentiel Général d’Ecoconception des Services Numériques, est un référentiel qui a pour but de s’assurer une conception des services numériques. Il est, à l’heure actuelle, divisé en 9 thématiques : Dans cet article je vais me concentrer sur la thématique des spécifications. Les autres thématiques ont fait ou feront

Lire la suite »
Agilité

Les DoD et DoR supports essentiels à la qualité en Agile

Le cycle en V n’est jamais loin! On ne va pas se le cacher, même si les développements logiciels sont de plus en plus fait avec des méthodes Agiles, l’influence des méthodes dites « traditionnelles » comme le cycle en V reste particulièrement prégnante. Cette influence s’explique d’ailleurs assez simplement par le

Lire la suite »