31
Alignement avec les métiers par le test fonctionnel et d’acceptation en projets agiles

Alignement avec les métiers par le test fonctionnel et d'acceptation en projets agiles

Embed Size (px)

DESCRIPTION

Auteur -- Laurent Py (Smartesting) Résumé de la présentation : Les projets en méthode agile, du fait des livraisons régulières (typiquement sur des itérations de 1 à 4 semaines en SCRUM), posent des problèmes nouveaux pour le test fonctionnel et d'acceptation métier. Il s'agit d'une part d'augmenter le ratio de tests automatisés, pour permettre leur exécution lors de l'intégration continue. Il s'agit également de faciliter l'écriture et la maintenance de ces tests dans une représentation qui soit utilisable par les analystes métier et qui facilite l'automatisation. Dans cette présentation, nous introduisons la démarche ATDD -- Acceptance Test Driven Development, ainsi que les concepts de mots d'actions, de scénarios et de DSL -- Domain Specific Language pour supporter la création et la maintenance des tests fonctionnels et d'acceptation dans des projets agiles. Nous décrivons la plate-forme conçue pour supporter cette démarche. Nous montrons notamment l'apport du refactoring de tests, permettant de factoriser les pas de test en mots d'action pour en faciliter la maintenance à un niveau métier ainsi que l'automatisation. Cette plate-forme est mise en œuvre sur plusieurs projets en mode agile, en particulier par AvailPro (moteur de réservation hôtelier - cf www.availpro.com).

Citation preview

Page 1: Alignement avec les métiers par le test fonctionnel et d'acceptation en projets agiles

Alignement avec les métiers par le test

fonctionnel et d’acceptation en projets

agiles

Page 2: Alignement avec les métiers par le test fonctionnel et d'acceptation en projets agiles

Guillaume CoquelleTesteur, Availpro

[email protected]

www.availpro.com

Laurent PYCEO, Smartesting

[email protected] @py_laurent

www.smartesting.com

Page 3: Alignement avec les métiers par le test fonctionnel et d'acceptation en projets agiles

Introduction

Page 4: Alignement avec les métiers par le test fonctionnel et d'acceptation en projets agiles

– Développement cycle en V

– Peu de tests fait par les développeurs (pas de TDD)

– 1 release chaque 6 mois

– 1 mois (x5 ingénieurs) pour faire du ‘release testing’ avant déploiement

– Niveau de qualité améliorable

Processus de développement chez Smartesting 2004/06

4

Page 5: Alignement avec les métiers par le test fonctionnel et d'acceptation en projets agiles

Développement agile

– D’abord XP puis Scrum

– TDD, Pair programming

– Mise en place de l’intégration continue (code et test unitaire)

– 1 release client chaque 3 mois (une opérationnelle chaque 3 semaines)

– 1 mois/homme pour faire du ‘release testing’ avant déploiement

– Amélioration nette de la qualité perçue par nos utilisateurs

Introduction des méthodes agiles - 2006

5

Page 6: Alignement avec les métiers par le test fonctionnel et d'acceptation en projets agiles

Produit: Zest, plateforme de test agile dans le cloud

– Nous utilisons Scrum

– Nous faisons du TDD et

– Acceptance Testing Driven Development (ATDD), 100% automatisé…

– … complété par du test exploratoire

– Déploiement continue agilité métier

– Plusieurs releases par jour!

DevOps - 2012

6

http://www.thucydides.info/blog/295-does-atdd-really-save-you-time

Avec les pratiques ATDD et TDD, les projets sont livrés 31% plus vite et avec 4 fois moins de défauts

Page 7: Alignement avec les métiers par le test fonctionnel et d'acceptation en projets agiles

Les méthodes agiles (des itérations courtes) conduisent à une automatisation massive des tests

Les tests démarrent plus tôt dans le processus de développement (Shift left ) et les tests d’acceptation deviennent la spécification

Notre retour d’expérience

7

Req Manageme

nt & Definition

Test Planning

Execution

Defect manageme

nt

Définition des critère

d’acceptation ATTD/BDD

Automatisation massive

Feedbackrapide

Page 8: Alignement avec les métiers par le test fonctionnel et d'acceptation en projets agiles

Le développement piloté par les tests d’acceptation

Page 9: Alignement avec les métiers par le test fonctionnel et d'acceptation en projets agiles

Scrum et le test d’acceptation

PO Développeurs testeurs Scrummaster

Équipe Scrum

Tests d’acceptationTests d’acceptationShift left

Page 10: Alignement avec les métiers par le test fonctionnel et d'acceptation en projets agiles

Acceptance Testing Driven Development (ATDD)

Le test d’acceptation est un outil de communication

Il est la définition du ‘STOP’

Ecrits par le Tester avant le développement

Basés sur un DSL (Domain Specific Language)

Validés par l’équipe projet

Très souvent automatisés

Test en language naturel

Test fixture

Code

Page 11: Alignement avec les métiers par le test fonctionnel et d'acceptation en projets agiles

Acceptance Testing Driven Development (ATDD)

Bénéfices– Améliore la collaboration et communication autours des tests

d’acceptation

– Compréhension partagée de ce que signifie implémentation réussie

– Meilleure couverture des besoins métiers

– Feed-back plus rapide

Challenges:– Nouvelle méthodologie nécessitant rigueur et discipline

– Trouver le bon équilibre personne/processus/outils

Page 12: Alignement avec les métiers par le test fonctionnel et d'acceptation en projets agiles

ATDD & Refactoring

Les tests d’acceptation doivent être continuellement revus et refactoré tout comme le code!

Martin Fowler

Page 13: Alignement avec les métiers par le test fonctionnel et d'acceptation en projets agiles

Test d’acceptation en continu

Page 14: Alignement avec les métiers par le test fonctionnel et d'acceptation en projets agiles

Fonctionnalités clés:

– Définition progressive des mots d’actions métier, permettant de créer un DSL (Domain Specific Language) pour l’écriture des scénarios de test

– Refactoring: la modification de mots d’action métier impacte automatiquement l’ensemble des scénarios de test

– Optimisation: Des fonctions d’inspection permettent d’optimiser en permanence les tests

– Création de scripts pour l’automatisation (Ruby/Rspec, Java/Junit, Jasmine…)

Intégrations actuelles avec:

Zest: test agile dans le Cloud!

15

Page 15: Alignement avec les métiers par le test fonctionnel et d'acceptation en projets agiles

Zest: test agile dans le Cloud!

16

Product OwnerValide les tests d’acceptation

TesteurDéfinit les tests d’acceptation

DéveloppeurAutomatise les tests d’acceptation

Collaboration autour du test

Page 16: Alignement avec les métiers par le test fonctionnel et d'acceptation en projets agiles

Construire de nouvelles entités métiers…

Page 17: Alignement avec les métiers par le test fonctionnel et d'acceptation en projets agiles

…ou construire les entités métiers à partir des tests

Définition progressive du dictionnaire métier (Action Word). Collaboration autour des tests entre le métier, les testeurs et développeurs

Page 18: Alignement avec les métiers par le test fonctionnel et d'acceptation en projets agiles

Réutiliser, réutiliser, réutiliser !

Permet de construire et maintenir des scénarios de tests consistants pour tout le projet

Propositions

Page 19: Alignement avec les métiers par le test fonctionnel et d'acceptation en projets agiles

Ajouter, supprimer, modifier des scenarios et mots d’action métier

Le refactoring permet de gérer automatiquement les impacts liés aux évolutions permanentes.

Ajout d’un paramètre au mot d’action

Propagation automatiqueaux scénarios l’utilisant

Page 20: Alignement avec les métiers par le test fonctionnel et d'acceptation en projets agiles

Le diable DUPLICATION

Page 21: Alignement avec les métiers par le test fonctionnel et d'acceptation en projets agiles

Un principe fondamentale du développement/test

Page 22: Alignement avec les métiers par le test fonctionnel et d'acceptation en projets agiles

Analyser et optimiser le plan de tests en continu

Réduction de l’effort de maintenance

Page 23: Alignement avec les métiers par le test fonctionnel et d'acceptation en projets agiles

Générer les Scripts

L’utilisation de mots d’action métier réduit significativement le coût de l’automatisation et accélère le cycle de test

Page 24: Alignement avec les métiers par le test fonctionnel et d'acceptation en projets agiles

Synthèse

Des tests d’acceptation lisiblesLa définition d’un DSL métier facilite l’alignement de l’équipe autour des tests

Des tests d’acceptation maintenables

Les fonctions de refactoring et optimisation accélèrent la gestion des impacts liée aux évolutions

Des tests d’acceptation automatisables

La structuration et le design des scénarios facilitent la création

de scripts de tests

Page 26: Alignement avec les métiers par le test fonctionnel et d'acceptation en projets agiles

Retour d’expériencesur le projet Availpro

Page 27: Alignement avec les métiers par le test fonctionnel et d'acceptation en projets agiles

Solution et technologies

v4.5v4.0

Expérience Availpro

Page 28: Alignement avec les métiers par le test fonctionnel et d'acceptation en projets agiles

Quelques chiffresExpérience Availpro

1 déploiement en production toutes les 2 semaines

3 campagnes de test lancées par jour

En moyenne, 3 nouveaux cas de tests créés par jour

1200 tests gérés avec Zest

Aujourd’hui, plus de 80% des cas de tests sont sous

Zest

Page 29: Alignement avec les métiers par le test fonctionnel et d'acceptation en projets agiles

Collaboration de tous les acteurs autour du test :

Le partage des scénarios permet à équipes (développement, MOA, qualité) d’avoir une vision identique des tests réalisés: alignement par les tests. L’écriture des scénarios peut dorénavant se faire par tous types individus (technique ou non).

Collaboration instantanée dans la conception :

Les scénarios sont visibles pour toutes les personnes en temps réel. Pas de décalage comme on pourrait avoir avec des fichiers Excel.

Refactoring :

Lors de modifications des fonctionnalités de nos applications, il peut être nécessaire de modifier / ajouter certains paramètres. Ceci est plus rapide

car centralisé et automatique. Gain de productivité de l’ordre de 50%

Bénéfices du déploiement de ZestExpérience Availpro

Page 30: Alignement avec les métiers par le test fonctionnel et d'acceptation en projets agiles

Intégration avec JIRA Agile :

Gestion de la traçabilité entre les issues (user story, tâche) dans JIRA et les scénarios dans Zest. Indication de l’évolution de l’écriture des scénarios

Intégration avec le framework d’automatisation :

Aucune modification dans le code robot nécessaire.

Bénéfices du déploiement de ZestExpérience Availpro

Page 31: Alignement avec les métiers par le test fonctionnel et d'acceptation en projets agiles

Questions / Réponses

www.smartesting.com www.availpro.com