Alignement avec les métiers par le test
fonctionnel et d’acceptation en projets
agiles
Guillaume CoquelleTesteur, Availpro
www.availpro.com
Laurent PYCEO, Smartesting
[email protected] @py_laurent
www.smartesting.com
Introduction
– 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
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
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
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
Le développement piloté par les tests d’acceptation
Scrum et le test d’acceptation
PO Développeurs testeurs Scrummaster
Équipe Scrum
Tests d’acceptationTests d’acceptationShift left
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
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
ATDD & Refactoring
Les tests d’acceptation doivent être continuellement revus et refactoré tout comme le code!
Martin Fowler
Test d’acceptation en continu
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
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
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 le métier, les testeurs et développeurs
Réutiliser, réutiliser, réutiliser !
Permet de construire et maintenir des scénarios de tests consistants pour tout le projet
Propositions
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
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 métier réduit significativement le coût de l’automatisation et accélère le cycle de test
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
Retour d’expérienceprojet Availpro
Retour d’expériencesur le projet Availpro
Solution et technologies
v4.5v4.0
Expérience Availpro
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
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
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
Questions / Réponses
www.smartesting.com www.availpro.com