Test Agile - Méthodologies

Agile est une méthodologie de développement itérative, où toute l'équipe du projet participe à toutes les activités. Les exigences évoluent au fil des itérations, grâce à la collaboration entre le client et les équipes auto-organisées. Comme le codage et les tests sont effectués de manière interactive et incrémentielle, au cours du développement, le produit final serait de qualité et répondrait aux exigences du client.

Chaque itération entraîne un incrément de produit fonctionnel intégré et est fournie pour les tests d'acceptation par l'utilisateur. Les commentaires des clients ainsi obtenus seraient une entrée pour les itérations suivantes / suivantes.

Intégration continue, qualité continue

L'intégration continue est la clé du succès du développement Agile. Intégrez fréquemment, au moins quotidiennement, de manière à être prêt pour une version au fur et à mesure des besoins. Les tests en Agile deviennent une composante essentielle de toutes les phases du développement, garantissant une qualité continue du produit. Un retour d'information constant de toutes les personnes impliquées dans le projet ajoute à la qualité du produit.

En Agile, la communication a la plus haute importance et les demandes des clients sont reçues en tant que de besoin. Cela donne la satisfaction au client que toutes les entrées sont prises en compte et qu'un produit de qualité de travail est disponible tout au long du développement.

Méthodologies Agiles

Il existe plusieurs méthodologies Agile qui prennent en charge le développement Agile. Les méthodologies Agile comprennent -

Scrum

Scrum est une méthode de développement Agile qui met l'accent sur une approche centrée sur l'équipe. Il préconise la participation de toute l'équipe à toutes les activités de développement du projet.

XP

eXtreme Programming est centré sur le client et se concentre sur des exigences en constante évolution. Avec des versions fréquentes et des commentaires des clients, le produit final sera de qualité répondant aux exigences des clients qui sont plus claires au cours du processus.

Cristal

Crystal est basé sur l'affrètement, la livraison cyclique et la conclusion.

  • L'affrètement consiste à former une équipe de développement, à effectuer une analyse de faisabilité préliminaire, à arriver à un plan initial et à la méthodologie de développement.

  • La livraison cyclique avec deux ou plusieurs cycles de livraison se concentre sur la phase de développement et la livraison finale du produit intégré.

  • Lors de la finalisation, le déploiement dans l'environnement utilisateur, les revues et réflexions post-déploiement sont effectuées.

FDD

Le développement axé sur les fonctionnalités (FDD) implique la conception et la création de fonctionnalités. La différence entre FDD et les autres méthodologies de développement Agile est que les fonctionnalités sont développées séparément en phases spécifiques et courtes.

DSDM

La méthode de développement logiciel dynamique (DSDM) est basée sur le développement rapide d'applications (RAD) et est alignée sur le cadre Agile. DSDM se concentre sur la livraison fréquente du produit, impliquant activement les utilisateurs et permettant aux équipes de prendre des décisions rapides.

Développement de logiciels Lean

Dans le développement de logiciels Lean, l'accent est mis sur l'élimination du gaspillage et la valorisation du client. Cela se traduit par un développement rapide et un produit de valeur.

Les déchets comprennent les travaux partiellement exécutés, les travaux non pertinents, les fonctionnalités non utilisées par le client, les défauts, etc. qui s'ajoutent aux retards de livraison.

le Lean Principles sont -

  • Éliminer les déchets
  • Amplifier l'apprentissage
  • Engagement de retard
  • Habilitez l'équipe
  • Livrer rapidement
  • Construire l'intégrité dans
  • Voir le tout

Kanban

Kanban se concentre sur la gestion du travail en mettant l'accent sur la livraison juste à temps (JIT), sans surcharger les membres de l'équipe. Les tâches sont affichées pour que tous les participants puissent les voir et pour que les membres de l'équipe extraient le travail d'une file d'attente.

Kanban est basé sur -

  • Tableau Kanban (visuel et persistant tout au long du développement)
  • Limite des travaux en cours (WIP)
  • Délai de mise en œuvre

Méthodologies de test agile

Les pratiques de test sont bien définies pour chaque projet, qu'il soit Agile ou non, afin de livrer des produits de qualité. Les principes de test traditionnels sont assez souvent utilisés dans les tests agiles. L'un d'eux est Early Testing qui se concentre sur -

  • Rédaction de cas de test pour exprimer le comportement du système.

  • Prévention précoce des défauts, détection et élimination.

  • S'assurer que les bons types de tests sont exécutés au bon moment et dans le cadre du bon niveau de test.

Dans toutes les méthodologies Agile dont nous avons discuté, le test Agile est en soi une méthodologie. Dans toutes les approches, les cas de test sont écrits avant le codage.

Dans ce tutoriel, nous nous concentrerons sur Scrum en tant que méthodologie de test Agile.

Les autres méthodologies de test Agile couramment utilisées sont:

  • Test-Driven Development (TDD) - Le développement piloté par les tests (TDD) est basé sur un codage guidé par des tests.

  • Acceptance Test-Driven Development (ATDD) - Le développement piloté par les tests d'acceptation (ATDD) est basé sur la communication entre les clients, les développeurs et les testeurs et conduit par des critères d'acceptation et des cas de test d'acceptation prédéfinis.

  • Behavior-Driven Development (BDD) - Les tests BDD (Behavior-Driven Development) sont basés sur le comportement attendu du logiciel en cours de développement.

Cycle de vie des tests agiles

Dans Scrum, les activités de test incluent -

  • Contribuer aux User Stories en fonction du comportement attendu du système représenté sous forme de cas de test

  • Planification des versions basée sur l'effort de test et les défauts

  • Planification de sprint basée sur les histoires d'utilisateurs et les défauts

  • Exécution de sprint avec tests continus

  • Test de régression après la fin du Sprint

  • Rapport des résultats des tests

  • Test d'automatisation

Les tests sont itératifs et basés sur les sprints comme illustré dans le diagramme ci-dessous -