Aller au contenu

Le test logiciel dans l'agilité

Le test ne se prépare pas de la même façon selon que le projet avance en cascade, en V ou par sprints. Cette page reprend les modèles de cycle de vie, la place du test dans l'agilité et le DevOps, et les pratiques qui font écrire le test avant le code plutôt qu'après.

00 — Sommaire
  1. Les modèles de cycle de vie
  2. Agilité et DevOps
  3. Shift-left et shift-right
  4. TDD, BDD, ATDD
  5. Les 3C et la création d'une User Story
  6. Le•la testeur•se dans un contexte agile
  7. A retenir
  8. Testez votre compréhension

01 — Cycle de vie

Les modèles de cycle de vie

Le test ne se place pas au même endroit selon la façon dont le projet est organisé. Cliquez sur une carte pour voir quand utiliser chaque modèle, comment il fonctionne, et un exemple.

02 — Agilité et DevOps

Le test à chaque sprint, pas à la fin

Hors syllabus Fondation

L'agilité renverse la logique du cycle en V : au lieu de tout spécifier avant de coder, l'équipe construit le produit par sprints courts, généralement de deux ou trois semaines, en intégrant le test à chaque étape plutôt qu'à la toute fin. Le DevOpsContraction de « Development » et « Operations » : une culture qui rapproche développement et exploitation pour livrer plus vite et plus souvent, en gardant la qualité à chaque étape. prolonge cette logique jusqu'à la mise en production et au-delà.

01

Sprint planning

Début
L'équipe choisit les user stories du sprint à venir et discute des critères d'acceptation, avant même que le développement ne commence.

02

Daily

Pendant
Le point quotidien permet à chacun de signaler tôt ce qui le bloque : un blocage de développement, un blocage de test, un environnement instable ou une anomalie qui retarde la validation d'une story.

03

Sprint review

Fin
Les fonctionnalités terminées sont démontrées au•à la client•e ou au Product Owner, notamment sous forme de recette utilisateur. Le•la testeur•se peut y présenter les résultats de test et les risques restants.

04

Rétrospective

Fin
L'équipe revient ensemble sur ce qui a bien ou mal fonctionné pendant le sprint : organisation, collaboration, outils, qualité — tests qui ont manqué, anomalies découvertes tardivement.

Avantages :

Approche toute l'équipe

La qualité n'appartient plus seulement au•à la testeur•se. Développeur•ses, Product Owner et testeur•ses la partagent tout au long du sprint, plutôt que de la reporter sur une seule personne à la fin.

Intégration continue

Une chaîne automatisée exécute les tests à chaque commit. Un défaut est détecté en quelques minutes plutôt qu'en quelques semaines.

Déploiement continu

Selon le projet

Le logiciel validé est mis en production automatiquement, souvent plusieurs fois par jour. Le test se prolonge après la mise en ligne, avec du monitoring et des vérifications ciblées.

03 — Shift-left et shift-right

Étendre le test avant et après le développement

Ces deux notions décrivent le même mouvement, dans deux directions opposées : sortir le test de sa place traditionnelle, entre le développement et la mise en production.

Shift-left

Déplacer le test vers l'amont du projet, avant même que le code existe : revue des exigences, tests unitaires écrits en même temps que le code, critères d'acceptation définis avant le développement. L'objectif est de détecter un défaut au moment où il coûte le moins cher à corriger.

Shift-right

Prolonger le test vers l'aval, une fois le logiciel en production : monitoring, tests A/BComparer deux versions d'une fonctionnalité auprès d'utilisateurs réels, pour mesurer laquelle fonctionne le mieux avant de généraliser., feature flagsInterrupteurs qui activent ou désactivent une fonctionnalité en production sans redéployer le code, utiles pour tester progressivement ou revenir en arrière rapidement., tests de résilience. L'objectif est de vérifier le comportement réel du logiciel, dans des conditions qu'un environnement de test ne reproduit pas toujours fidèlement.

04 — Approches pilotées par les tests

TDD, BDD, ATDD

Trois pratiques différentes, mais un point commun : le test ou le critère d'acceptation s'écrit avant le code, pas après.

TDD (Test-Driven Development)

Le•la développeur•se répète un cycle en trois temps :
  • Rouge : il•elle écrit un test qui échoue avant d'écrire le code.
  • Vert : il•elle écrit le code minimal nécessaire pour le faire passer.
  • Refactor : il•elle nettoie le code sans changer son comportement, en s'appuyant sur le test pour vérifier qu'il ne casse rien.

Exemple : Avant de coder une fonction de remise, le•la développeur•se écrit d'abord un test qui vérifie qu'un panier de 120 euros avec un code promo de 10 % donne 108 euros (rouge), il•elle code la fonction jusqu'à ce que ce test passe (vert), puis il•elle nettoie l'implémentation (refactor).

BDD (Behavior-Driven Development)

Le comportement attendu du logiciel est décrit dans un langage commun à l'équipe et au métier, avant d'être développé. Ce langage, souvent appelé GherkinLangage structuré utilisé pour écrire des scénarios BDD lisibles à la fois par les humains et par des outils d'automatisation (Cucumber, Behave...)., structure chaque scénario au format Given/When/Then (en français « Étant donné que, quand, alors »). Cela réduit les malentendus entre ce que le métier demande et ce que l'équipe comprend.

Exemple : « Étant donné que le panier contient 120 euros, quand le•la client•e applique un code promo de 10 %, alors le total affiché est de 108 euros. »

ATDD (Acceptance Test-Driven Development)

Les critères d'acceptation d'une user story sont écrits collectivement par le•la testeur•se, le•la développeur•se et le Product Owner avant que le développement ne commence, pour que tout le monde partage la même définition de « terminé ».

Exemple : Avant de développer le code promo, testeur•se, développeur•se et Product Owner s'accordent ensemble sur les cas à couvrir : code valide, expiré, déjà utilisé, cumul interdit.

05 — Les 3C

Construire une user story à plusieurs

Les 3C décrivent comment une user story agile prend forme, de son écriture initiale jusqu'à la confirmation qu'elle est terminée.

C

Carte

Une user story se résume sur une carte, en une ou deux phrases. Elle ne décrit pas tout, elle sert surtout de point de départ à la discussion.

C

Conversation

Les détails de la story se construisent par la discussion entre l'équipe et le métier, plutôt que d'être figés dans un document écrit à l'avance.

C

Confirmation

Des critères d'acceptation, souvent au format « Étant donné que, quand, alors », confirment ce que « terminé » veut dire pour cette story précise.

06 — Le•la testeur•se dans l'agilité

Le•la testeur•se, du sprint planning à la review

Le•la testeur•se agile n'attend plus la fin du sprint pour entrer en scène. Il·elle est présent·e du premier jour au dernier.

Definition of Done

Une liste de critères communs à toutes les stories d'un sprint (code relu, tests unitaires passés, tests d'acceptation validés, documentation à jour) qui doit être remplie avant de considérer une story terminée.

Le•la testeur•se dans le sprint

Il•elle participe à la conception des critères d'acceptation dès le sprint planning, teste au fur et à mesure que les fonctionnalités avancent plutôt qu'à la toute fin, et automatise ce qui peut l'être pour garder du temps pour l'exploratoire.

A retenir

Ce qu'il faut retenir

01

Le V prépare, le sprint intègre

Le cycle en V prépare le test dès la conception alors que l'agilité l'intègre en continu, à chaque sprint.

02

Avant et après le développement

Le shift-left rapproche le test du début du projet, le shift-right le prolonge après la mise en production.

03

Le test avant le code

TDDTest-Driven Development, BDDBehavior-Driven Development et ATDDAcceptance Test-Driven Development partagent une même idée. On écrit le test ou le critère d'acceptation avant le code, pas après.

04

De la carte à la confirmation

Les 3C structurent la construction d'une user story, de la carte résumée à la confirmation par les critères d'acceptation.

05

Une responsabilité partagée

En agilité, la qualité n'est plus la responsabilité d'une seule personne, elle est partagée par toute l'équipe.

Mise en pratique

Testez votre compréhension

Une sélection de questions basées sur ce que vous venez de lire.


À savoir

La Minute QA est une aide à la compréhension, pas une formation professionnelle : certains points ne peuvent pas être couverts ici. Pensez à suivre une formation certifiante et à consulter le syllabus officiel ISTQB pour une préparation complète.

Pour aller plus loin

Poursuivre l'apprentissage

Une nouvelle version du site est disponible.