20110519 cara tests_agiles_grenoble_all

50
www.clubagile.org Tests Agiles Rencontre agile Grenoble Jeudi 19 Mai 2011 Nicolas PELLOUX-PRAYER Amaris Email : [email protected] Twitter: @npelloux Sylvain FRANCOIS - Kalistic Email : [email protected] Twitter: @syllant Johan Martinsson - Indépendant Email : [email protected] Twitter: @johan_alps

description

Rencontre CARA Grenoble - 19 Mai 2011@npelloux@johan_alps@syllant

Transcript of 20110519 cara tests_agiles_grenoble_all

Page 1: 20110519 cara tests_agiles_grenoble_all

www.clubagile.org

Tests Agiles

Rencontre agile GrenobleJeudi 19 Mai 2011

Nicolas PELLOUX-PRAYER – Amaris

Email : [email protected]

Twitter: @npelloux

Sylvain FRANCOIS - Kalistic

Email : [email protected]

Twitter: @syllant

Johan Martinsson - Indépendant

Email : [email protected]

Twitter: @johan_alps

Page 2: 20110519 cara tests_agiles_grenoble_all

www.clubagile.org

Evénements

26 et 27 mai 2011 – Paris

conf.agile-france.org

Page 3: 20110519 cara tests_agiles_grenoble_all

www.clubagile.org

Evénements

www.breizhcamp.org

Page 4: 20110519 cara tests_agiles_grenoble_all

www.clubagile.org

Evénements

7 juin 2011 – Lyon

lyon.clubagile.org

Page 5: 20110519 cara tests_agiles_grenoble_all

www.clubagile.org

• Historique• Coût d'un bug• Approche classique• Catégorisation des tests• Apport des principes Agiles• Pourquoi faut-il soigner sa pyramide de tests• Indicateurs de qualité• « Tester juste »• Spécificités d’un projet agile

Plan

Page 6: 20110519 cara tests_agiles_grenoble_all

www.clubagile.org

Un peu d’histoire…

1968 => Génie logiciel

Page 7: 20110519 cara tests_agiles_grenoble_all

www.clubagile.org

• Tests décorrélés

• Rôle de la QA

• Centré sur la doc

Page 8: 20110519 cara tests_agiles_grenoble_all

www.clubagile.org

Tests décorrélés

Page 9: 20110519 cara tests_agiles_grenoble_all

www.clubagile.org

• Dernier rempart

• Tensions avec le dev

Rôle de la QA

Page 10: 20110519 cara tests_agiles_grenoble_all

www.clubagile.org

Documentation

• Lourd

• Utile ?

Page 11: 20110519 cara tests_agiles_grenoble_all

www.clubagile.org

Coût de détection

1.Détection d’un bug

2.Impact

3.Résolution

Page 12: 20110519 cara tests_agiles_grenoble_all

www.clubagile.org

Agile testing quadrant

Page 13: 20110519 cara tests_agiles_grenoble_all

www.clubagile.org

Soutien de l’équipe

• les tests de gauche sont là pour aider l’équipe !

• Q1 aide à construire la qualité interne du logiciel

• Q2 définit les features que le client souhaite et la qualité externe

• Fournissent un feedback rapide et un guide aux développeurs

Page 14: 20110519 cara tests_agiles_grenoble_all

www.clubagile.org

Critique du produit

• Q3 permet de savoir si le produit est efficace et adapté.

• Q4 permet d’évaluer la performance, robustesse et sécurité.

• Les tests de critique produit pourront fournir des entrées pour les carrés de gauche.

Page 15: 20110519 cara tests_agiles_grenoble_all

www.clubagile.org

Approche agile

Page 16: 20110519 cara tests_agiles_grenoble_all

www.clubagile.org

Individus et interaction

• Responsabiliser l’équipe

• Tout le monde teste

Page 17: 20110519 cara tests_agiles_grenoble_all

www.clubagile.org

Alléger les procédures

• Doc => Checklist

• Priorisation des tests

• Esprit critique

• Cf. Exploratory testing

Page 18: 20110519 cara tests_agiles_grenoble_all

www.clubagile.org

Adaptation au changement

• Tester au plus tôt

– TDD

• Tester plus vite

– Automatisation des tests

• Tester plus souvent

– Intégration Continue

Page 19: 20110519 cara tests_agiles_grenoble_all

www.clubagile.org

Attention au « Done – Done »

Développement

ET

Tests !

Page 20: 20110519 cara tests_agiles_grenoble_all

www.clubagile.org

Références

• Elisabeth Hendrickson

• Lisa Crispin

• Cem Kaner

Page 21: 20110519 cara tests_agiles_grenoble_all

www.clubagile.org

Indicateurs de qualité

pour les tests

unitaires et fonctionnels

Sylvain FRANCOISDirecteur R&D

Page 22: 20110519 cara tests_agiles_grenoble_all

www.clubagile.org

• Start-up lyonnaise (2007)

• Plateforme SaaS– Qualité des développement

– Optimisation de la phase de test / validation

• Forte activité R&D– Développement orienté Agile

– Vraie activité de recherche

Page 23: 20110519 cara tests_agiles_grenoble_all

www.clubagile.org

Tester, c’est bien.

Bien tester, c’est mieux.

Indicateurs de qualitédes tests

« Tester juste »

Page 24: 20110519 cara tests_agiles_grenoble_all

www.clubagile.org

Sommaire

• La vision « Tester Juste »

• … appliquée aux tests unitaires

• … appliquée aux tests fonctionnels

• Spécificités pour un projet Agile

Page 25: 20110519 cara tests_agiles_grenoble_all

www.clubagile.org

La vision

« Tester Juste »

Page 26: 20110519 cara tests_agiles_grenoble_all

www.clubagile.org

Tester coûte cher

… ROI souvent difficile à mesurer

Temps

Coûtcumulé

Tests manuelsTests automatisés

ROI

Page 27: 20110519 cara tests_agiles_grenoble_all

www.clubagile.org

Le coût de l’automatisation

• Conception / mise en œuvre

– Profils experts

• Analyse des résultats

• Licences produits / TCO

• Coûts matériels (à la demande sur le Cloud)

• Maintenance des tests

• Délais d’exécution

Page 28: 20110519 cara tests_agiles_grenoble_all

www.clubagile.org

La question : que tester ?

• Souvent difficile de tout tester

• Quelques critères de choix :

– Ancienneté du code

– Intérêt / criticité pour le client

– Risques techniques

– Résultats des tests précédents

– Charge de test / Planning

Page 29: 20110519 cara tests_agiles_grenoble_all

www.clubagile.org

Collaboration développeur - testeur

• Pierre d’achoppement récurrente

• Objectifs parfois différents

• Vision code / vision fonctionnelle

• Outils différents

(idem pour développeur – exploitant)

Page 30: 20110519 cara tests_agiles_grenoble_all

www.clubagile.org

Le « Tester Juste »

appliqué aux

Tests Unitaires (TU)

Page 31: 20110519 cara tests_agiles_grenoble_all

www.clubagile.org

Précisions sur les tests unitaires

• Test isolé d’une méthode de code

• Utilisation de frameworks de TU

– JUnit, TestNG, MSTest, NUnit, …

• Utilisation de bouchons (« mocks »)

• Automatisables

• TDD (Test Driven Development)

Page 32: 20110519 cara tests_agiles_grenoble_all

www.clubagile.org

Inconvénients du TDD

• Niveau d’acceptation des TU dans les projets

• Toute méthode mérite-t-elle d’être testée ?

• Difficulté de tester certains traitements

• Refactoring du code testé

• Pertinence des TU ?

Page 33: 20110519 cara tests_agiles_grenoble_all

www.clubagile.org

Mesurer la couverture des TU

• Outils de coverage

– Enregistrent l’exécution

– Résultat : taux de code exécuté (%)

– Exemples :

• Java : JaCoCo, Cobertura, EMMA, …

• C# : MSCoverage, NCover, dotCover, …

• Pertinence du taux de couverture ?

• Coût pour atteindre les 100%

100%

Effort

Couverture

Page 34: 20110519 cara tests_agiles_grenoble_all

www.clubagile.org

Proposition : cibler ses TU

• Prioriser les TU selon :

– Le risque fonctionnel / métier

– Le risque technique

– L’effort de test

• Mesurer le niveau de test

– Mais de manière pragmatique

Page 35: 20110519 cara tests_agiles_grenoble_all

www.clubagile.org

Le TestRelevancyIndex (TRI) [1/2]

• Index créé par Kalistick + CETIC (labo de recherche)

• Qualifie l’intérêt de chaque traitement à être testé

– méthode, classe, composant, …

• Basé sur des métriques unitaires– Complexité, paramètres, variables, dépendances, bugs, …

• … et sur le risque métier

• Ajuste l’objectif de couverture

Page 36: 20110519 cara tests_agiles_grenoble_all

www.clubagile.org

Le TestRelevancyIndex (TRI) [2/2]

Couverture des TU pondérée par le TRI

Page 37: 20110519 cara tests_agiles_grenoble_all

www.clubagile.org

Le « Tester Juste »

appliqué aux

Tests Fonctionnels

Page 38: 20110519 cara tests_agiles_grenoble_all

www.clubagile.org

Notre vision

• Privilégier les tests sur le code modifié

– Les nouvelles fonctionnalités

– Les risques de régression

• Vérifier ce qu’ont couvert les tests

– Après leur exécution (coverage)

• Enrichir le référentiel / plan de test

• Faciliter la collaboration développeur - testeur

Page 39: 20110519 cara tests_agiles_grenoble_all

www.clubagile.org

Identifier les modifications du code

Régressions

Nouveautés,

Corrections

Bugs dormants

« Old good code »

Niveau

de

risque

Co

de

mo

dif

iéC

od

e n

on

mo

dif

Modifications non tracées

Modifications tracées

Bugs non critiques

RAS

Page 40: 20110519 cara tests_agiles_grenoble_all

www.clubagile.org

Questions cibles

• Qu’est-ce qui a changé entre 2 versions ?

– Consolider sa stratégie de test

• Les modifications ont-elles été testées ?

– Eviter les régressions

• Quels scénarios de tests doivent être joués ?

– Plan d’action concret pour les testeurs

Page 41: 20110519 cara tests_agiles_grenoble_all

www.clubagile.org

Le testeur est mon ami

• Objectifs :

– Indicateurs exploitables par le testeur

– Améliorer la collaboration testeur – développeur

• Le défi : remonter du code au testeur

– Modéliser les fonctionnalités de l’application

– Réutiliser le référentiel de test

• HP Quality Center, TestLink, …

Page 42: 20110519 cara tests_agiles_grenoble_all

www.clubagile.org

Exemple de rendu [1/3]

Couverture globale des tests fonctionnels et unitaires

Page 43: 20110519 cara tests_agiles_grenoble_all

www.clubagile.org

Exemple de rendu [2/3]

Couverture par fonctionnalités

Page 44: 20110519 cara tests_agiles_grenoble_all

www.clubagile.org

Exemple de rendu [3/3]

Fiche User Story (dans l’outil JIRA)

Fonctionnalités impactées

Page 45: 20110519 cara tests_agiles_grenoble_all

www.clubagile.org

Les spécificités pour

un projet Agile

Page 46: 20110519 cara tests_agiles_grenoble_all

www.clubagile.org

Rôle développeur - testeur

• Dans la littérature Agile : un seul profil

– Dans la réalité ?

• Le testeur Agile est plus proche du code

– Plus à même d’analyser les résultats de couverture

Page 47: 20110519 cara tests_agiles_grenoble_all

www.clubagile.org

Risque d’instabilité plus élevé

• Adaptabilité aux besoins

– Mise à jour des User Stories

– Mise à jour des cas de test

• Techniques de développement à risques

– Refactoring

– Qualité du code !

Besoin accru d’automatisation des tests

Page 48: 20110519 cara tests_agiles_grenoble_all

www.clubagile.org

Processus de livraison agile

• Rythme de livraison plus soutenu

– Notion de « Continuous Delivery »

– Besoin de sécuriser la livraison

• Indicateurs de DONE

– Inclure la couverture des tests fonctionnels ?

Page 49: 20110519 cara tests_agiles_grenoble_all

www.clubagile.org

http://blog.kalistick.com

http://twitter.com/kalistick

http://www.kalistick.com

mailto:[email protected]

Page 50: 20110519 cara tests_agiles_grenoble_all

www.clubagile.org

Et vous ?