accélérer les tests d’acceptation avec un dsl et du refactoring
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
Laurent PY
Accélérer les tests d’acceptation en projet agile avec un DSL et du Refactoring
MERCI À NOS SPONSORS
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
Introduction
Jadis, le développement chez Smartesting…
Cycle en V Pas de TDD Release = 1/6mois
Phase de test = 5 mois Qualité faible
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
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
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
Le développement piloté
par les tests d’acceptation
Scrum et le test d’acceptation
Test d’acceptation
+
•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 :
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
Tests d’acceptation = continuellement revus et refactorés, comme le code!
ATDD & Refactoring
Martin Fowler
Utilisation d’un DSL et du refactoring
pour les tests d’acceptation
Test d’acceptation en continu
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
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
Construire de nouvelles entités métiers…
…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.
Réutiliser, réutiliser, réutiliser !
Permet de construire et maintenir des scénarios de tests consistants pour tout le projet
Propositions
La preuve en image !
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
Le diable DUPLICATION
Un principe fondamentale du développement/test
Analyser et optimiser le plan de tests en continu
Réduction de l’effort de maintenance
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
La preuve en image !
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
Solution et technologies
v4.5v4.0
Expé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
Quelques chiffresExpérience Availpro
Bénéfices du déploiement de ZestExpérience Availpro
Conclusion
Les tests d’acceptation doivent être continuellement
revus et refactorés tout comme le code!
Questions / Réponses
Laurent PY
CEO, Smartesting
@py_laurent
www.smartesting.com