animation spinner

Le test dans un projet agile ?

Le test dans un projet agile ?

 

Le test dans un projet agile ?

Popularisée au début des années 2000, la méthode agile (en anglais Agile Model) est une méthodologie de développement de projets informatiques fondée sur des cycles itératifs - appelés sprints - et incrémentaux (ajout de nouvelles fonctionnalités).

La méthode agile, c'est quoi ?

La méthode agile repose sur le principe de l'adaptation au changement : elle offre une flexibilité d'intégration des spécifications tout au long du projet grâce au développement en sprints et permet de faire évoluer le projet dans des directions différentes selon les exigences ou problématiques rencontrées. Elle permet aussi une meilleure analyse des risques car l'assurance qualité fait partie intégrante du cycle de vie du produit. Enfin, elle offre une meilleure communication entre les équipes (et le client) grâce aux livraisons régulières et rapprochées, évitant les possibles incompréhensions. N'oublions pas de préciser que la méthode agile est une démarche efficace pour répondre aux défis du marché (time-to-market).

Cette méthode fait concurrence à la méthode plus traditionnelle de développement dite de cycle en V. Depuis son apparition, elle s'est fortement développée et connaît un grand succès, à tel point que l'on recense plus d'une dizaine de variantes.

La place du test dans la méthode agile est essentielle au bon déroulement des développements. Afin d'assurer la fiabilité des fonctionnalités développées, il est impensable de passer les sprints sans les avoir testés auparavant : les tests ont donc un rôle essentiel.

Concrètement, comment ça marche ?

Les User Stories

Chaque sprint, qui dure entre 2 et 3 semaines, est défini autour de la rédaction de User Stories, qui sont des parcours utilisateurs. Les fonctionnalités sont développées autour de ces User Stories. Le principe est d'ajouter des nouvelles fonctionnalités à chaque sprint pour faire grossir le projet (éviter l’effet « tunnel » des méthodes dites traditionnelles). (cela concerne la méthode agile la plus couramment employée, mais il peut ne pas y avoir d’User Stories en agile).

Une collaboration étroite

Le Product Owner (Chef de produit/client), les concepteurs (graphistes), les développeurs et les testeurs travaillent main dans la main. Le Product Owner définit les fonctionnalités et exigences du produit (Product backlog) et spécifie les User Stories ; les équipes de développement discutent des méthodologies, des outils et du coût de développement pour chaque élément ; les testeurs analysent les risques fonctionnels et utilisateurs en amont des développements et interviennent à la fin de chaque sprint pour valider la qualité du produit livré. Chaque corps de métier agit sur la meilleure façon de développer le produit. En méthodologie Scrum, l'une des plus méthodes agiles les plus utilisées, le Scrum Master (garant de l’application de la méthodologie), est crucial pour le bon déroulement du projet et la coordination des équipes.

Tests de fin de sprint et tests d'acceptation

Chaque sprint, une fois les développements réalisés, fait l'objet de tests fonctionnels et d’acceptation. Les bugs identifiés sont ensuite communiqués aux équipes de développement pour correction. Le sprint suivant ne peut avoir lieu qu'une fois les corrections effectuées. Il est essentiel que le testeur soit expérimenté et au fait de la méthode agile. En plus de sa vision du risque, il est le représentant de l’utilisateur dans l'équipe.

Les sprints se déroulent de la manière suivante :

Sprint 1 : définition de User Stories + développements + tests + mise en production (itération 1)

Sprint 2 : revue de sprint 1 + définition de User Stories (nouvelles fonctionnalités) + développements + tests + mise en production (itérations 1 + 2)

Sprint 3 : revue de sprint 2 + définition de User Stories (nouvelles fonctionnalités) + développements + tests + mis en production (itérations 1 + 2 + 3)

N sprints...

agile methodolody

Quelles difficultés de la méthode ?

  • le périmètre du projet peut être flou
  • les sprints peuvent être nombreux
  • la documentation est minimaliste et évolue constamment, d'où l'importance de l'expérience du Scrum Master pour s’assurer de la bonne communication entre les membres de l’équipe

Quels avantages ?

  • la souplesse dans le développement d'un projet
  • la meilleure analyse des risques en amont des développements
  • la mise en œuvre d'un processus qualité
  • l'étroite collaboration et la proximité entre clients et équipes métiers
  • la bonne communication et la connaissance approfondie des besoins
  • la récurrence et la proximité des phases de développement et de test
  • le logiciel opérationnel prime sur la documentation exhaustive
  • le produit s’adapte aux exigences du client et des utilisateurs

Le produit développé en mode agile peut être mis en production plus rapidement, mais surtout, le produit développé correspond au résultat attendu par le client. Ce dernier étant davantage impliqué dans les sprints, il n’y a pas de décalage entre le cahier des charges initial et le produit développé, une situation qui est souvent rencontrée avec d'autres méthodes de développement.

Pour aller plus loin, découvrez notre livre blanc : Test et Agilité font-ils bon ménage.

banner-test-agilité

Je télécharge le livre blanc

Demandez une étude ou un devis