accélérer les tests d’acceptation avec un dsl et du refactoring

36

Upload: laurent-py

Post on 19-Jun-2015

621 views

Category:

Software


1 download

DESCRIPTION

Le pilotage des développements par les tests d’acceptation reste un problème difficile à maîtriser dans les projets agiles. D’une part, il est compliqué d’impliquer les analystes métier dans la réalisation de scripts de tests automatisés, et d’autre part les tests de hauts niveaux qu’ils peuvent produire sont souvent difficiles à maintenir et automatiser. L’approche proposée, supportée par une plate-forme appelée Zest, associe la définition des scénarios de tests d’acceptation sur la base d’un DSL (Domain-Specific Language) construit incrémentalement avec des mots d’action, et des fonctions de refactoring qui permettent en permanence d’optimiser les scénarios pour en faciliter l’automatisation et leur maintenance.

TRANSCRIPT

Page 1: Accélérer les tests d’acceptation avec un DSL et du refactoring
Page 2: Accélérer les tests d’acceptation avec un DSL et du refactoring

Laurent PY

Accélérer les tests d’acceptation en projet agile avec un DSL et du Refactoring

Page 3: Accélérer les tests d’acceptation avec un DSL et du refactoring

MERCI À NOS SPONSORS

Page 4: Accélérer les tests d’acceptation avec un DSL et du refactoring

Accélérer les tests d’acceptationen projet agile avec un DSL et du Refactoring

Introduction

Développement piloté par les tests

d’acceptation

DSL et refactoring pour les tests

d’acceptation

Retour d’expérience Availpro

Page 5: Accélérer les tests d’acceptation avec un DSL et du refactoring

Introduction

Page 6: Accélérer les tests d’acceptation avec un DSL et du refactoring

Jadis, le développement chez Smartesting…

Cycle en V Pas de TDD Release = 1/6mois

Phase de test = 5 mois Qualité faible

Page 7: Accélérer les tests d’acceptation avec un DSL et du refactoring

Puis, introduction des méthodes agiles…

XP puis Scrum TDD, Pair programmingIntégration continue

Release = 1/3mois Phase de test = 1 mois Qualité améliorée

Page 8: Accélérer les tests d’acceptation avec un DSL et du refactoring

Et depuis 2012, DevOps !

Srum TDD + ATDD 100% + Test exploratoire

Déploiement continue

Plusieurs déploiements en prod/jour

ATDD + TDD = Projets livrés 31% plus vite avec 4 fois moins de défauts

Page 9: Accélérer les tests d’acceptation avec un DSL et du refactoring

Définition de critères d’acceptation ATTD/BDD

Notre retour d’expérience

Définition du besoin

Gestion des

anomalies

Automatisation massive

Execution

Test Planning

Itérer rapidement nécessite du refactoring de tests

Page 10: Accélérer les tests d’acceptation avec un DSL et du refactoring

Le développement piloté

par les tests d’acceptation

Page 11: Accélérer les tests d’acceptation avec un DSL et du refactoring

Scrum et le test d’acceptation

Test d’acceptation

+

Page 12: Accélérer les tests d’acceptation avec un DSL et du refactoring

•Un outil de communication basé sur un DSL

•La définition du ‘STOP’

•Ecrit par le Tester avant le développement& validé par l’équipe projet

•Très souvent automatisé

Acceptance Testing Driven Development (ATDD)

Code

Test fixture

Test language naturelLe test c’est :

Page 13: Accélérer les tests d’acceptation avec un DSL et du refactoring

Acceptance Testing Driven Development (ATDD)

BénéficesCollaboration & Communication

Compréhension partagée

Couverture besoins métiers

Feed-back rapide

ChallengesNouvelle méthode = rigueur et discipline

Equilibre personne/processus/outils

Page 14: Accélérer les tests d’acceptation avec un DSL et du refactoring

Tests d’acceptation = continuellement revus et refactorés, comme le code!

ATDD & Refactoring

Martin Fowler

Page 15: Accélérer les tests d’acceptation avec un DSL et du refactoring

Utilisation d’un DSL et du refactoring

pour les tests d’acceptation

Page 16: Accélérer les tests d’acceptation avec un DSL et du refactoring

Test d’acceptation en continu

Page 17: Accélérer les tests d’acceptation avec un DSL et du refactoring

Fonctionnalités clés :

Conception : Définition progressive d’un DSL

Maintenance : Refactoring & optimisation

Scripts pour l’automatisation

Intégrations actuelles avec :

Zest: test agile dans le Cloud!

Agile Management Framework d’automatisationAgile Testing

Page 18: Accélérer les tests d’acceptation avec un DSL et du refactoring

Collaboration autour du test

Zest: test agile dans le Cloud!

TesteurDéfinit les tests d’acceptation

Product OwnerValide les tests d’acceptation

DéveloppeurAutomatise les tests d’acceptation

Page 19: Accélérer les tests d’acceptation avec un DSL et du refactoring

Construire de nouvelles entités métiers…

Page 20: Accélérer les tests d’acceptation avec un DSL et du refactoring

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

Définition progressive du dictionnaire métier (Action Word). Collaboration autour des tests entre : métier, test et dév.

Page 21: Accélérer les tests d’acceptation avec un DSL et du refactoring

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

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

Propositions

Page 22: Accélérer les tests d’acceptation avec un DSL et du refactoring

La preuve en image !

Page 23: Accélérer les tests d’acceptation avec un DSL et du refactoring

Ajouter, supprimer, modifier des mots d’action

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 24: Accélérer les tests d’acceptation avec un DSL et du refactoring

Le diable DUPLICATION

Page 25: Accélérer les tests d’acceptation avec un DSL et du refactoring

Un principe fondamentale du développement/test

Page 26: Accélérer les tests d’acceptation avec un DSL et du refactoring

Analyser et optimiser le plan de tests en continu

Réduction de l’effort de maintenance

Page 27: Accélérer les tests d’acceptation avec un DSL et du refactoring

Générer les Scripts

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

Page 28: Accélérer les tests d’acceptation avec un DSL et du refactoring

La preuve en image !

Page 29: Accélérer les tests d’acceptation avec un DSL et du refactoring

Conclusion

Tests d’acceptation maintenables

Fonctions de refactoring & optimisation

pour gérer les impacts liée aux évolutions Tests d’acceptation

automatisablesLa structuration et le design des scénarios facilitent la création de scripts de tests

Tests d’acceptation lisiblesLa définition d’un DSL métier facilite

l’alignement de l’équipe autour des tests

Page 30: Accélérer les tests d’acceptation avec un DSL et du refactoring

Retour d’expérience

projet Availpro

Page 31: Accélérer les tests d’acceptation avec un DSL et du refactoring

Solution et technologies

v4.5v4.0

Expérience Availpro

Page 32: Accélérer les tests d’acceptation avec un DSL et du refactoring

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

Quelques chiffresExpérience Availpro

Page 33: Accélérer les tests d’acceptation avec un DSL et du refactoring

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

Page 34: Accélérer les tests d’acceptation avec un DSL et du refactoring

Conclusion

Les tests d’acceptation doivent être continuellement

revus et refactorés tout comme le code!

Page 35: Accélérer les tests d’acceptation avec un DSL et du refactoring

Questions / Réponses

Page 36: Accélérer les tests d’acceptation avec un DSL et du refactoring

Laurent PY

CEO, Smartesting

[email protected]

@py_laurent

www.smartesting.com