Test Automation
Test Automation
Test Automation
des tests
Généralités
Objectifs & concepts
Partie 1
@crochefolle
@crochefolle
Dédicace
http://www.dorothygraham.co.uk/
@crochefolle
Agenda
@crochefolle
Introduction
ce que l’on va couvrir (et ne pas couvrir)
@crochefolle
Définition : Qu’est-ce qu’un
test automatisé?
@crochefolle
Définition : Qu’est-ce que
l’automatisation des tests ?
L’automatisation des tests est :
Un métier !
@crochefolle
Objectifs : Pourquoi automatiser ?
@crochefolle
Objectifs :
@crochefolle
Objectifs :
@crochefolle
Objectifs :
@crochefolle
Objectifs de l’automatisation des tests
• Exécuter des tests répétitifs ou avec beaucoup de calcul (et donc risqué si fait
manuellement)
@crochefolle
Couverture : Qu’est-ce qu’on automatise ?
@crochefolle
Couverture : Qu’est-ce qu’on automatise ?
• Sélectionner /identifier les scénarios de test
• Préparer l’environnement de test Automatisation des tests
– Créer l’environnement
– Créer les données de test
– Pour chacun des cas de test
• Préparer les prérequis
• Exécuter le scénario
• Comparer les résultats
• Enregistrer les résultats
• Revenir à l’état initial
@crochefolle
Pre et Post Process
@crochefolle
Pre et Post Process
Exemples
@crochefolle
Pre et Post Process
@crochefolle
Couverture : Comment déterminer ce qu’on
Les critères sont les suivants :
automatise ?
1. la faisabilité technique de
l’automatisation,
des tests.
@crochefolle
Responsabilité : Qui fait quoi?
Test le logiciel
@crochefolle
Responsabilité : Qui fait quoi?
Testeur Automaticien
• Test le logiciel • Automatise les tests
– Conçoit les scénarii et cas demandés par les
de test testeurs
– Sélectionne les tests à • Aide à l’automatisation
automatiser des tests
• Exécute les tests – Fournit les moyen aux
testeurs pour lancer les
automatisés tests
• Analyse les résultats de – Aide à l’analyse de résultat
tests – Fournit l’équipe de test en
outils d’aide
– Créé les bugs trouvés par
l’automate • Maintient et améliore le
référentiel de test
automatisé
@crochefolle
Responsabilité : Qui fait quoi?
Est-ce que tous les testeurs doivent devenir automaticiens ?
Non
Car :
On risque d’obtenir un mauvais développeur de test
... et de perdre un bon testeur
Mais :
Tous les testeurs doivent avoir une compétence d’automatisation pour :
Comprendre et exécuter les automates de test
Utiliser les tests automatisés à bon escient
Avoir un point de rencontre avec le monde du dev
@crochefolle
ROI : Combien ça coute ?
ROI : Retour sur investissement = (bénéfice – cout)/cout
• Investissement :
– Les coûts peuvent être exprimé en terme en terme d’effort de
test (en h, qui peuvent être converti en €)
• Retours :
– Réduire le temps d’exécution des tests par les testeurs
– Mais comment exprimer « la rapidité d’exécution »,
« exécution plus fréquente », « meilleure couverture »,
« meilleur TTM » ?
On peut se concentrer sur le temps passé par les testeurs et
considérer le reste comme des « bonus »
On compare donc habituellement au tests manuels
@crochefolle
Hypothèses de travail : exemple du mobile
Applications concernées Estimation budget automatisation
@crochefolle 22
ROI : Combien ça coute ?
Manual Automated
No. manual tests 61 No. automated tests 61
1800
Test Creation Test Model Creation
Manual time (hrs) 2 Build time (hrs) 5
No. scenarios 61 1600
Total time 122 Total time 326
Prepare automated
framework
1000
Acquire, install, configure
tools 140
Manual hrs
Tool training 14
Testability analysis 0 800 Automated hrs
Prepare Detailed test
model 40
Total aut prep 194 600
Test 200
maintenance Aut maint
Manual maint 1
Man maint time 61 Total aut maint 5 0
1 2 3 4 5 6 7 8 9 10 11 12 13
@crochefolle
Les dangers du ROI
• Focus sur ce qui est facilement mesurable
• Les autres facteurs peuvent être beaucoup plus important : « la rapidité d’exécution »,
« exécution plus fréquente », « meilleure couverture », « meilleur TTM »
• Définir le ROI par le temps de tests peux donner l’impression que l’outil « remplace » les
testeurs
– C’est dangereux !
– Les outils remplacent certains aspects de ce que les testeurs font, mais augmentent les coûts
par ailleurs
@crochefolle
Infrastructure de test
• Définition : Les objets organisationnels nécessaires pour effectuer un test,
consistant en l’environnement de test, des outils de tests, des procédures et un
environnement bureautique
@crochefolle
Infrastructure de test
• Quels sont les points important à prendre en compte ?
– La gestion des artefacts :
• Nombres
• Versionning
• Partage de données, librairies
– Maintenance
@crochefolle
Infrastructure de test : outils
• Quels sont les critères de choix ? Exemple du mobile
@crochefolle
Infrastructure de test : outils
• Quels sont les critères de choix ? Exemple du mobile
Installation
100
80
60
Fonctionalités HP
Support
Metier
Microsoft
@crochefolle
En résumé : process d’automatisation
Mise en place
d’un projet Choix d’un outil
d’automatisation
Automaticien
Mise en place
Développement Mise en place de
d’un framework l’infrastructure de
d’automatisation test
Testeur
Conception et Développement
sélection des d’un automate
tests à pour ces
automatiser scénarios
Au quotidien
Maintenance de
l’automate
@crochefolle 29
Conclusion
• Quoi ? Qu’est-ce qu’on automatise ?
• Les tests conçus et sélectionnés par les testeurs
• Tout ce qu’on peut et qui est pertinent : construction environnement, générations
de JDD, …
• Qui ?
• Le testeur conçoit, sélectionne, exécute et analyse les résultats
• L’automaticien développe les tests, met à disposition l’infra de test et aide à
l’analyse
• Où ?
• Sur une infrastructure de test
• Quand ?
• Quand c’est pertinent : fréquent, réutilisable, critique, complexe, …
• Combien ?
• Un ROI moyen autour de la 6ième itération
• Comment ?
• C’est l’objet de la prochaine session
• Pourquoi ?
@crochefolle
Objectifs de l’automatisation des tests
• Exécuter des tests répétitifs ou avec beaucoup de calcul (et donc risqués si fait
manuellement)
@crochefolle
Agenda de la prochaine partie
Comment automatiser les tests ?
1. Les différents types de tests automatisés : TU, BDD/TDD, NRA,
TDC, Test de vie …
2. Méthodes d’automatisation
1. Capture/replay
2. Projet de développement
3. Techniques d’automatisation
1. Data driven
2. Keyword driven
3. DSTL
4. Oracle / bouchon
5. Techniques de comparaison
6. Reporting
@crochefolle
Merci !!
@crochefolle