Test Agile - Présentation

Agileest une méthodologie de développement itérative, où les activités de développement et de test sont simultanées. Le test n'est pas une phase distincte; Le codage et les tests sont effectués de manière interactive et incrémentielle, ce qui donne un produit final de qualité, qui répond aux exigences du client. En outre, l'intégration continue permet une élimination précoce des défauts et donc des économies de temps, d'efforts et de coûts.

Manifeste Agile

Le Manifeste Agile a été publié par une équipe de développeurs de logiciels en 2001, soulignant l'importance de l'équipe de développement, en tenant compte de l'évolution des exigences et de l'implication des clients.

The Agile Manifesto is −

Nous découvrons de meilleures façons de développer des logiciels en le faisant et en aidant les autres à le faire. Grâce à ce travail, nous en sommes venus à valoriser -

  • Les individus et les interactions sur les processus et les outils.
  • Logiciel de travail sur une documentation complète.
  • Collaboration client sur négociation de contrat.
  • Répondre au changement au sujet d'un plan.

Autrement dit, bien qu'il y ait de la valeur dans les éléments de droite, nous valorisons davantage les éléments de gauche.

Qu'est-ce que le test agile?

Le test agile est une pratique de test logiciel qui suit les principes du développement logiciel agile.

Les tests agiles impliquent tous les membres de l'équipe de projet, avec une expertise particulière apportée par les testeurs. Les tests ne sont pas une phase distincte et sont liés à toutes les phases de développement telles que les exigences, la conception et le codage et la génération de cas de test. Les tests ont lieu simultanément tout au long du cycle de vie du développement.

En outre, avec des testeurs participant à l'ensemble du cycle de vie du développement en collaboration avec des membres de l'équipe interfonctionnelle, la contribution des testeurs à la construction du logiciel selon les exigences du client, avec une meilleure conception et un meilleur code, deviendrait possible.

Les tests agiles couvrent tous les niveaux de tests et tous les types de tests.

Test Agile Vs. Test en cascade

Dans une méthodologie de développement en cascade, les activités du cycle de vie du développement se déroulent en phases séquentielles. Ainsi, les tests sont une phase distincte et ne sont lancés qu'après l'achèvement de la phase de développement.

Voici les points saillants des différences entre les tests agiles et les tests en cascade -

Test agile Test en cascade
Les tests ne constituent pas une phase distincte et ont lieu en même temps que le développement. Le test est une phase distincte. Tous les niveaux et types de tests ne peuvent commencer qu'après la fin du développement.
Les testeurs et les développeurs travaillent ensemble. Les testeurs travaillent séparément des développeurs.
Les testeurs participent à l'élaboration des exigences. Cela aide à mapper les exigences sur les comportements dans le scénario du monde réel et à définir les critères d'acceptation. En outre, les cas de test d'acceptation logiques seraient prêts avec les exigences. Les testeurs peuvent ne pas être impliqués dans la phase des exigences.
Les tests d'acceptation sont effectués après chaque itération et les commentaires des clients sont recherchés. Les tests d'acceptation sont effectués uniquement à la fin du projet.
Chaque itération complète ses propres tests, permettant ainsi la mise en œuvre des tests de régression à chaque fois que de nouvelles fonctions ou logiques sont publiées. Les tests de régression ne peuvent être mis en œuvre qu'après la fin du développement.
Aucun délai entre le codage et les tests. Délais habituels entre le codage et les tests.
Test continu avec des niveaux de test qui se chevauchent. Le test est une activité chronométrée et les niveaux de test ne peuvent pas se chevaucher.
Le test est une bonne pratique. Les tests sont souvent négligés.

Principes de test agile

Les principes du test Agile sont:

  • Testing moves the project forward- Les tests continus sont le seul moyen d'assurer un progrès continu. Les tests agiles fournissent des commentaires sur une base continue et le produit final répond aux exigences de l'entreprise.

  • Testing is not a phase- Une équipe Agile teste aux côtés de l'équipe de développement pour s'assurer que les fonctionnalités implémentées au cours d'une itération donnée sont effectivement réalisées. Les tests ne sont pas conservés pour une phase ultérieure.

  • Everyone tests- Dans les tests agiles, toute l'équipe, y compris les analystes, les développeurs et les testeurs, teste l'application. Après chaque itération, même le client effectue le test d'acceptation de l'utilisateur.

  • Shortening Feedback Loops- Dans Agile Testing, l'équipe commerciale apprend à connaître le développement de produit pour chaque itération. Ils sont impliqués dans chaque itération. La rétroaction continue raccourcit le temps de réponse de la rétroaction et donc le coût impliqué dans sa correction est moindre.

  • Keep the Code Clean- Les défauts sont corrigés car ils sont soulevés dans la même itération. Cela garantit un code propre à chaque étape du développement.

  • Lightweight Documentation - Au lieu d'une documentation de test complète, les testeurs Agile -

    • Utilisez des listes de contrôle réutilisables pour suggérer des tests.

    • Concentrez-vous sur l'essence du test plutôt que sur les détails accessoires.

    • Utilisez des styles / outils de documentation légers.

    • Capturez des idées de test dans des chartes pour des tests exploratoires.

    • Tirez parti des documents à des fins multiples.

  • Leveraging one test artifact for manual and automated tests- Le même artefact de script de test peut être utilisé pour les tests manuels et comme entrée pour les tests automatisés. Cela élimine la nécessité d'une documentation de test manuel, puis d'un script de test d'automatisation équivalent.

  • “Done Done,” not just done - En Agile, on dit qu'une fonctionnalité n'est pas effectuée après le développement mais après le développement et les tests.

  • Test-Last vs. Test Driven- Les cas de test sont rédigés avec les exigences. Par conséquent, le développement peut être piloté par des tests. Cette approche s'appelle Test Driven Development (TDD) et Acceptance Test Driven Development (ATDD). Cela contraste avec les tests en tant que dernière phase des tests en cascade.

Activités de test agile

Les activités de test agile au niveau du projet sont:

  • Planification de la version (plan de test)

    • Pour chaque itération,

    • Activités de test agile pendant une itération

  • Les tests de régression

  • Activités de lancement (liées au test)

Les activités de test Agile pendant une itération comprennent:

  • Participer à la planification des itérations
  • Estimation des tâches du point de vue des tests
  • Rédaction de cas de test à l'aide des descriptions de fonctionnalités
  • Test unitaire
  • Test d'intégration
  • Test des fonctionnalités
  • Correction des défauts
  • Test d'intégration
  • Test d'acceptation
  • Rapports d'état sur l'avancement des tests
  • Suivi des défauts