Tests Fonctionnels Automatisés
JUGL
08/10/2009

Philippe Kernévez
pkernevez@octo.com
Copyright © 2009 – OCTO Technology – ...
Licence!
Creative Commons
Contrat Paternité
Pas d'Utilisation Commerciale
Partage des Conditions Initiales à l'Identique
2...
AGENDA
!! Des tests ?
!! Tests fonctionnels automatisés
!!
!!
!!
!!
!!
!!

Pourquoi ?
Quand ?
Avec quoi ?
Pour quoi ?
Qui ...
Des tests ?!

4

Copyright © 2009 – OCTO Technology – Licence CC – Creative Commons 2.0 France – Paternité – Pas d'Utilisa...
Rôle incontournable des tests!
logiciel = complexe, invisible
tester = rendre le logiciel « visible »
rapport qualité/prix...
Typologie des Tests!
Fonctionnel
Tests de recette
automatiques
Tests
d’ensemble de
fonctionnalités

UAT
Tests d’usabilité
...
Pourquoi ?!
Tests fonctionnels automatisés

Copyright © 2009 – OCTO Technology – Licence CC – Creative Commons 2.0 France ...
Réduire l’écart entre spécifications et tests!
+100
+25
100
100
100
+50
Pourrait-on détecter ces écarts plus tôt ?

Copyrig...
Réduire l’écart entre spécifications et tests!

Elaborer les tests au plus tôt, avant le développement
Réaliser un logiciel...
Réduire les redondances entre spécifications et tests!

Utiliser un format commun : Les Cas d’Utilisation
Fusionner Cas D’u...
Exemple!

Copyright © 2009 – OCTO Technology – Licence CC – Creative Commons 2.0 France – Paternité – Pas d'Utilisation Co...
GreenPepper – Octopus MicroFinance!
http://wiki.octopusnetwork.org/display/OPUS/Late+repayment+-+flat+rate+-+based+on+over...
Quand ?!
Tests fonctionnels automatisés

Copyright © 2009 – OCTO Technology – Licence CC – Creative Commons 2.0 France – P...
Développement itératif!

Ecrire tous les tests puis tout le logiciel ?
Commencer plutôt par une partie du système.

Copyri...
Développement itératif!

Puis répeter le processus par incréments successifs
Copyright © 2009 – OCTO Technology – Licence ...
Chronologie!
Cycle en V :
Spécification

Conception

Tests de recette
automatiques

Recette

Dev

Tests unitaires

Tests d...
Evolution du temps consacré à la recette!
!! Le temps de recette est
!"#$"%&%'()!"%

concentré en fin de projet
!","$$"%

...
Avec quoi ?!
Tests fonctionnels automatisés

Copyright © 2009 – OCTO Technology – Licence CC – Creative Commons 2.0 France...
Limites des tests fonctionnels sur l’IHM!
Automatisation par capture
puis re-jeu

!!
!!
!!
!!
!!
!!

tests sur l’IHM
diffi...
Framework for Integrated Testing!
Automatisation par construction

!!
!!
!!
!!
!!
!!

tests sur les API
indépendance à l’I...
Complémentarité des deux approches!
Tests sur IHM

Tests de type FIT

•! Possibilité de valider l’IHM
•! Facilité de créat...
Fonctionnement!
!! Fonctionnement

Valeurs saisies

Valeurs à vérifier

exécute
restitue

Copyright © 2009 – OCTO Technolo...
Fonctionnement!
MOA

MOE
Copyright © 2009 – OCTO Technology – Licence CC – Creative Commons 2.0 France – Paternité – Pas d...
Schéma de fonctionnement!

FIT
page de tests

code de
liaison

Copyright © 2009 – OCTO Technology – Licence CC – Creative ...
Repository de tests Fitnesse!
MOA
Site intranet
Composé de pages éditables
Intégrant texte et schémas
Organisé en suites d...
Pour quoi?!
Tests fonctionnels automatisés

Copyright © 2009 – OCTO Technology – Licence CC – Creative Commons 2.0 France ...
Types d’utilisation!
!! Tester l’IHM (html) :
!! possible avec FIT, mais pas forcément une solution optimale

!! Tester un...
Qui ?!
Tests fonctionnels automatisés

Copyright © 2009 – OCTO Technology – Licence CC – Creative Commons 2.0 France – Pat...
Conseils d’utilisation!
!! utiliser en collaboration (MOA/MOE)
!! travailler en mode itératif incrémental
!! concevoir les...
Où ?!
Tests fonctionnels automatisés

Copyright © 2009 – OCTO Technology – Licence CC – Creative Commons 2.0 France – Pate...
Exemple d’usine de développement!
Code source
(logiciel + tests)

!
Tests
unitaires

Développeur

Gestion de
version

Buil...
Mais aussi…!
Démonstration

Copyright © 2009 – OCTO Technology – Licence CC – Creative Commons 2.0 France – Paternité – Pa...
Fitnesse : D’autres jeux!

Copyright © 2009 – OCTO Technology – Licence CC – Creative Commons 2.0 France – Paternité – Pas...
DBFit!

Copyright © 2009 – OCTO Technology – Licence CC – Creative Commons 2.0 France – Paternité – Pas d'Utilisation Comm...
Fitnesse - Industrie!

Copyright © 2009 – OCTO Technology – Licence CC – Creative Commons 2.0 France – Paternité – Pas d'U...
Effets de bord…!

Copyright © 2009 – OCTO Technology – Licence CC – Creative Commons 2.0 France – Paternité – Pas d'Utilis...
Méthodologie!
Automatiser les tests permet un développement plus agile :
!!
!!
!!
!!

supprime une partie des spécificatio...
Pilotage du projet par les tests!
Avancement = TR passants / nb. TR total estimé
Productivité = TR passants / itération

C...
Résultats constatés!
Une mesure plus fiable de la productivité
Le test devient l’unité de mesure (« Ce qui est testé n’est...
Bienfaits colatéraux!
Documenter ce
que fait votre
logiciel par des
tests

Piloter le projet
via une mesure
univoque

Test...
Conclusion!

Copyright © 2009 – OCTO Technology – Licence CC – Creative Commons 2.0 France – Paternité – Pas d'Utilisation...
Automatiser ses tests fonctionnels pour
!! Un logiciel plus fiable
!! Moins de stress
!! Une équipe, alignée
!! Un meilleu...
Philippe KERNEVEZ
pkernevez@octo,com
Avenue du Théatre, 7!
1010 Lausanne
Tél : +41 21 312 94 15!
Copyright © 2009 – OCTO T...
Prochain SlideShare
Chargement dans…5
×

Initiation aux tests fonctionnels - Philippe Kernevez - October 2009

2 628 vues

Publié le

Initiation aux tests fonctionnels - Philippe Kernevez - October 2009

Publié dans : Technologie
0 commentaire
0 j’aime
Statistiques
Remarques
  • Soyez le premier à commenter

  • Soyez le premier à aimer ceci

Aucun téléchargement
Vues
Nombre de vues
2 628
Sur SlideShare
0
Issues des intégrations
0
Intégrations
2
Actions
Partages
0
Téléchargements
44
Commentaires
0
J’aime
0
Intégrations 0
Aucune incorporation

Aucune remarque pour cette diapositive

Initiation aux tests fonctionnels - Philippe Kernevez - October 2009

  1. 1. Tests Fonctionnels Automatisés JUGL 08/10/2009 Philippe Kernévez pkernevez@octo.com Copyright © 2009 – OCTO Technology – Licence CC – Creative Commons 2.0 France – Paternité – Pas d'Utilisation Commerciale – Partage des Conditions Initiales à l'Identique
  2. 2. Licence! Creative Commons Contrat Paternité Pas d'Utilisation Commerciale Partage des Conditions Initiales à l'Identique 2.0 France http://creativecommons.org/licenses/by-nc-sa/2.0/fr/ Copyright © 2009 – OCTO Technology – Licence CC – Creative Commons 2.0 France – Paternité – Pas d'Utilisation Commerciale – Partage des Conditions Initiales à l'Identique 2
  3. 3. AGENDA !! Des tests ? !! Tests fonctionnels automatisés !! !! !! !! !! !! Pourquoi ? Quand ? Avec quoi ? Pour quoi ? Qui ? Où ? !! Démonstration !! Effets de bord Copyright © 2009 – OCTO Technology – Licence CC – Creative Commons 2.0 France – Paternité – Pas d'Utilisation Commerciale – Partage des Conditions Initiales à l'Identique
  4. 4. Des tests ?! 4 Copyright © 2009 – OCTO Technology – Licence CC – Creative Commons 2.0 France – Paternité – Pas d'Utilisation Commerciale – Partage des Conditions Initiales à l'Identique
  5. 5. Rôle incontournable des tests! logiciel = complexe, invisible tester = rendre le logiciel « visible » rapport qualité/prix des tests Copyright © 2009 – OCTO Technology – Licence CC – Creative Commons 2.0 France – Paternité – Pas d'Utilisation Commerciale – Partage des Conditions Initiales à l'Identique
  6. 6. Typologie des Tests! Fonctionnel Tests de recette automatiques Tests d’ensemble de fonctionnalités UAT Tests d’usabilité Validation de cas d’utilisation Tests unitaires Tests d’intégration Tests de performance Test de disponibilité Tests de sécurité Faiseur Technique Copyright © 2009 – OCTO Technology – Licence CC – Creative Commons 2.0 France – Paternité – Pas d'Utilisation Commerciale – Partage des Conditions Initiales à l'Identique Contrôleur
  7. 7. Pourquoi ?! Tests fonctionnels automatisés Copyright © 2009 – OCTO Technology – Licence CC – Creative Commons 2.0 France – Paternité – Pas d'Utilisation Commerciale – Partage des Conditions Initiales à l'Identique
  8. 8. Réduire l’écart entre spécifications et tests! +100 +25 100 100 100 +50 Pourrait-on détecter ces écarts plus tôt ? Copyright © 2009 – OCTO Technology – Licence CC – Creative Commons 2.0 France – Paternité – Pas d'Utilisation Commerciale – Partage des Conditions Initiales à l'Identique
  9. 9. Réduire l’écart entre spécifications et tests! Elaborer les tests au plus tôt, avant le développement Réaliser un logiciel qui passe ces tests Copyright © 2009 – OCTO Technology – Licence CC – Creative Commons 2.0 France – Paternité – Pas d'Utilisation Commerciale – Partage des Conditions Initiales à l'Identique
  10. 10. Réduire les redondances entre spécifications et tests! Utiliser un format commun : Les Cas d’Utilisation Fusionner Cas D’utilisation et Tests sur ces cas Copyright © 2009 – OCTO Technology – Licence CC – Creative Commons 2.0 France – Paternité – Pas d'Utilisation Commerciale – Partage des Conditions Initiales à l'Identique
  11. 11. Exemple! Copyright © 2009 – OCTO Technology – Licence CC – Creative Commons 2.0 France – Paternité – Pas d'Utilisation Commerciale – Partage des Conditions Initiales à l'Identique
  12. 12. GreenPepper – Octopus MicroFinance! http://wiki.octopusnetwork.org/display/OPUS/Late+repayment+-+flat+rate+-+based+on+overdue+principal Copyright © 2009 – OCTO Technology – Licence CC – Creative Commons 2.0 France – Paternité – Pas d'Utilisation Commerciale – Partage des Conditions Initiales à l'Identique
  13. 13. Quand ?! Tests fonctionnels automatisés Copyright © 2009 – OCTO Technology – Licence CC – Creative Commons 2.0 France – Paternité – Pas d'Utilisation Commerciale – Partage des Conditions Initiales à l'Identique
  14. 14. Développement itératif! Ecrire tous les tests puis tout le logiciel ? Commencer plutôt par une partie du système. Copyright © 2009 – OCTO Technology – Licence CC – Creative Commons 2.0 France – Paternité – Pas d'Utilisation Commerciale – Partage des Conditions Initiales à l'Identique
  15. 15. Développement itératif! Puis répeter le processus par incréments successifs Copyright © 2009 – OCTO Technology – Licence CC – Creative Commons 2.0 France – Paternité – Pas d'Utilisation Commerciale – Partage des Conditions Initiales à l'Identique
  16. 16. Chronologie! Cycle en V : Spécification Conception Tests de recette automatiques Recette Dev Tests unitaires Tests de recette / Performances Homologation UAT Méthodes Agiles: Itération 1 Tests de recette Tests unitaires Itération 2 Tests de recette Tests unitaires Itération 3 Tests de recette Tests unitaires et performance Itération 4 Tests de recette Tests unitaires et performance Copyright © 2009 – OCTO Technology – Licence CC – Creative Commons 2.0 France – Paternité – Pas d'Utilisation Commerciale – Partage des Conditions Initiales à l'Identique Itération 5 Tests de recette UAT
  17. 17. Evolution du temps consacré à la recette! !! Le temps de recette est !"#$"%&%'()!"% concentré en fin de projet !","$$"% $"*+#% !! A une période critique (proche de la livraison) !! Longtemps après le développement de la fonctionnalité !"#$"%&%'()!"% !! Le temps de recette est mieux réparti sur la durée du projet !","$$"% $"*+#% !! Minimisation du risque !! Diminution du coût (erreurs détectées plus tôt) Copyright © 2009 – OCTO Technology – Licence CC – Creative Commons 2.0 France – Paternité – Pas d'Utilisation Commerciale – Partage des Conditions Initiales à l'Identique
  18. 18. Avec quoi ?! Tests fonctionnels automatisés Copyright © 2009 – OCTO Technology – Licence CC – Creative Commons 2.0 France – Paternité – Pas d'Utilisation Commerciale – Partage des Conditions Initiales à l'Identique
  19. 19. Limites des tests fonctionnels sur l’IHM! Automatisation par capture puis re-jeu !! !! !! !! !! !! tests sur l’IHM difficile à automatiser tests élaborés a posteriori changements fréquents maintenance coûteuse édition de script fastidieuse Copyright © 2009 – OCTO Technology – Licence CC – Creative Commons 2.0 France – Paternité – Pas d'Utilisation Commerciale – Partage des Conditions Initiales à l'Identique
  20. 20. Framework for Integrated Testing! Automatisation par construction !! !! !! !! !! !! tests sur les API indépendance à l’IHM tests élaborés à l’avance format tabulaire des tests intégrant des descriptions pas d’édition de scripts Copyright © 2009 – OCTO Technology – Licence CC – Creative Commons 2.0 France – Paternité – Pas d'Utilisation Commerciale – Partage des Conditions Initiales à l'Identique
  21. 21. Complémentarité des deux approches! Tests sur IHM Tests de type FIT •! Possibilité de valider l’IHM •! Facilité de création •! Ecriture « à priori » possible •! Proche des cas d’utilisation •! Ne peuvent pas être écrits « à priori » •! Plus difficiles à maintenir •!Ne permettent pas de valider l’IHM •! Win Runner •! … •! Fit / Fitnesse / Slim •! GreenPepper •!… Copyright © 2009 – OCTO Technology – Licence CC – Creative Commons 2.0 France – Paternité – Pas d'Utilisation Commerciale – Partage des Conditions Initiales à l'Identique
  22. 22. Fonctionnement! !! Fonctionnement Valeurs saisies Valeurs à vérifier exécute restitue Copyright © 2009 – OCTO Technology – Licence CC – Creative Commons 2.0 France – Paternité – Pas d'Utilisation Commerciale – Partage des Conditions Initiales à l'Identique
  23. 23. Fonctionnement! MOA MOE Copyright © 2009 – OCTO Technology – Licence CC – Creative Commons 2.0 France – Paternité – Pas d'Utilisation Commerciale – Partage des Conditions Initiales à l'Identique
  24. 24. Schéma de fonctionnement! FIT page de tests code de liaison Copyright © 2009 – OCTO Technology – Licence CC – Creative Commons 2.0 France – Paternité – Pas d'Utilisation Commerciale – Partage des Conditions Initiales à l'Identique système testé
  25. 25. Repository de tests Fitnesse! MOA Site intranet Composé de pages éditables Intégrant texte et schémas Organisé en suites de tests Permet d’exécuter tous les tests Copyright © 2009 – OCTO Technology – Licence CC – Creative Commons 2.0 France – Paternité – Pas d'Utilisation Commerciale – Partage des Conditions Initiales à l'Identique
  26. 26. Pour quoi?! Tests fonctionnels automatisés Copyright © 2009 – OCTO Technology – Licence CC – Creative Commons 2.0 France – Paternité – Pas d'Utilisation Commerciale – Partage des Conditions Initiales à l'Identique
  27. 27. Types d’utilisation! !! Tester l’IHM (html) : !! possible avec FIT, mais pas forcément une solution optimale !! Tester un progiciel : !! lorsque la couche métier est exposée via une API java !! lorsqu’il y a des points d’entrée / sorties fichier !! Tester des traitements batch !! sur les fichiers en entrée et en sortie !! Tester une chaîne d’applications (EAI) !! aux points d’entrée de la chaîne ou via l’interface des outils EAI Copyright © 2009 – OCTO Technology – Licence CC – Creative Commons 2.0 France – Paternité – Pas d'Utilisation Commerciale – Partage des Conditions Initiales à l'Identique
  28. 28. Qui ?! Tests fonctionnels automatisés Copyright © 2009 – OCTO Technology – Licence CC – Creative Commons 2.0 France – Paternité – Pas d'Utilisation Commerciale – Partage des Conditions Initiales à l'Identique
  29. 29. Conseils d’utilisation! !! utiliser en collaboration (MOA/MOE) !! travailler en mode itératif incrémental !! concevoir les tests au plan métier puis le code de liaison !! faire vivre la base de tests !! factoriser et normaliser les données de tests !! masquer les aspects non-fonctionnels !! surveiller la taille du code de liaison Copyright © 2009 – OCTO Technology – Licence CC – Creative Commons 2.0 France – Paternité – Pas d'Utilisation Commerciale – Partage des Conditions Initiales à l'Identique
  30. 30. Où ?! Tests fonctionnels automatisés Copyright © 2009 – OCTO Technology – Licence CC – Creative Commons 2.0 France – Paternité – Pas d'Utilisation Commerciale – Partage des Conditions Initiales à l'Identique
  31. 31. Exemple d’usine de développement! Code source (logiciel + tests) ! Tests unitaires Développeur Gestion de version Build Indicateurs qualité Développeur Logiciel Tests de recette auto. Copyright © 2009 – OCTO Technology – Licence CC – Creative Commons 2.0 France – Paternité – Pas d'Utilisation Commerciale – Partage des Conditions Initiales à l'Identique Livraison
  32. 32. Mais aussi…! Démonstration Copyright © 2009 – OCTO Technology – Licence CC – Creative Commons 2.0 France – Paternité – Pas d'Utilisation Commerciale – Partage des Conditions Initiales à l'Identique
  33. 33. Fitnesse : D’autres jeux! Copyright © 2009 – OCTO Technology – Licence CC – Creative Commons 2.0 France – Paternité – Pas d'Utilisation Commerciale – Partage des Conditions Initiales à l'Identique
  34. 34. DBFit! Copyright © 2009 – OCTO Technology – Licence CC – Creative Commons 2.0 France – Paternité – Pas d'Utilisation Commerciale – Partage des Conditions Initiales à l'Identique
  35. 35. Fitnesse - Industrie! Copyright © 2009 – OCTO Technology – Licence CC – Creative Commons 2.0 France – Paternité – Pas d'Utilisation Commerciale – Partage des Conditions Initiales à l'Identique
  36. 36. Effets de bord…! Copyright © 2009 – OCTO Technology – Licence CC – Creative Commons 2.0 France – Paternité – Pas d'Utilisation Commerciale – Partage des Conditions Initiales à l'Identique
  37. 37. Méthodologie! Automatiser les tests permet un développement plus agile : !! !! !! !! supprime une partie des spécifications au profit des tests réduit le délai de retour d’information sur le système permet un développement itératif incrémental permet d’évaluer correctement la stabilité d’un système Les tests de recette permettent de piloter le projet : !! clarifier les besoins exprimés via des exemples concret !! piloter le projet à l’aide de jalons binaires !! mesurer l’avancement et la vélocité de l’équipe (nombre de TR passant par itération) Copyright © 2009 – OCTO Technology – Licence CC – Creative Commons 2.0 France – Paternité – Pas d'Utilisation Commerciale – Partage des Conditions Initiales à l'Identique
  38. 38. Pilotage du projet par les tests! Avancement = TR passants / nb. TR total estimé Productivité = TR passants / itération Copyright © 2009 – OCTO Technology – Licence CC – Creative Commons 2.0 France – Paternité – Pas d'Utilisation Commerciale – Partage des Conditions Initiales à l'Identique
  39. 39. Résultats constatés! Une mesure plus fiable de la productivité Le test devient l’unité de mesure (« Ce qui est testé n’est plus à faire ») Des coûts de maintenance maîtrisés La durée d'homologation d’une application complète n’est plus que de quelques jours Les anomalies de recette diminuent en nombre et en gravité (« Il n’y a plus de bug! ») Une gestion de la qualité plus pragmatique Les indicateurs (tests) permettent de mesurer la qualité intrinsèque du livrable La gestion de la qualité est entièrement intégrée au processus de développement (refactoring au fil des itérations) Une meilleure évaluation du risque Un feedback fréquent permet de suivre l’évolution Un projet peut être arrêté après seulement quelques itérations Des équipes qui restent motivées tout le long du projet La pression est lissée Une industrialisation du processus qui est répétable et répété toutes les 3 semaines Copyright © 2009 – OCTO Technology – Licence CC – Creative Commons 2.0 France – Paternité – Pas d'Utilisation Commerciale – Partage des Conditions Initiales à l'Identique
  40. 40. Bienfaits colatéraux! Documenter ce que fait votre logiciel par des tests Piloter le projet via une mesure univoque Tester Automatiser les tests pour éviter les erreurs manuelles Collaborer entre les équipes technique et fonctionnelle en spécifiant par les tests Assurer la nonrégression en constituant un harnais de tests Copyright © 2009 – OCTO Technology – Licence CC – Creative Commons 2.0 France – Paternité – Pas d'Utilisation Commerciale – Partage des Conditions Initiales à l'Identique
  41. 41. Conclusion! Copyright © 2009 – OCTO Technology – Licence CC – Creative Commons 2.0 France – Paternité – Pas d'Utilisation Commerciale – Partage des Conditions Initiales à l'Identique
  42. 42. Automatiser ses tests fonctionnels pour !! Un logiciel plus fiable !! Moins de stress !! Une équipe, alignée !! Un meilleur pilotage !! Un gain de temps « Passer des tests manuels aux spécifications exécutables… » Copyright © 2009 – OCTO Technology – Licence CC – Creative Commons 2.0 France – Paternité – Pas d'Utilisation Commerciale – Partage des Conditions Initiales à l'Identique
  43. 43. Philippe KERNEVEZ pkernevez@octo,com Avenue du Théatre, 7! 1010 Lausanne Tél : +41 21 312 94 15! Copyright © 2009 – OCTO Technology – Licence CC – Creative Commons 2.0 France – Paternité – Pas d'Utilisation Commerciale – Partage des Conditions Initiales à l'Identique

×