@crochefolle
Automatisation
des tests
Généralités
Objectifs & concepts
Partie 1
@crochefolle
@crochefolle
Dédicace
http://www.dorothygraham.co.uk/
Librement inspiré du travail de
Dorothy Graham
Spécialiste reconnue dans le
domaine du test, elle a contribué
à la définition du syllabus ISTQB
et notamment sur
l’automatisation des tests.
@crochefolle
Agenda
1. Introduction : ce que l’on va couvrir (et ne pas couvrir)
2. Définition : Qu’est-ce que l’automatisation des tests ?
3. Objectifs : Pourquoi automatiser ?
4. Couverture :
– Qu’est-ce qu’on automatise ?
– Pre et Post Process
– Comment déterminer ce qu’on automatise ?
5. Responsabilité : Qui fait quoi?
6. ROI : Combien ça coute ?
7. Infrastructure de test
8. Processus d’automatisation
9. Conclusion
@crochefolle
Introduction
• Comprendre les objectifs et
concepts de l’automatisation
des tests
• Définir les rôles et
responsabilités de chacun
• Présenter le ROI de
l’automatisation
• Présenter les principes
techniques d’automatisation
• Pas de présentations d’outils
• Pas de formation au
développement de script de
test
ce que l’on va couvrir (et ne pas couvrir)
@crochefolle
Définition : Qu’est-ce qu’un
test automatisé?
• Conçu par des testeurs pour validé une
exigenceUn test !
• automatiquement par un moteur de test
• mais qui pourrait être exécuté
manuellement
Un test
exécuté :
On industrialise ce qu’on maitrise !!
@crochefolle
Définition : Qu’est-ce que
l’automatisation des tests ?
• Un projet avec des objectifs, des responsabilités
• Mais aussi une charge de maintenance permanente
• Et des sous-projets :
• Choisir l’outil de test
• Produire/générer des données de tests
• …
L’automatisation des tests est :
• Double compétence dev/test
Un métier !
@crochefolle
Objectifs : Pourquoi automatiser ?
• Réduire le nombre de bugs trouvés par le
métier / en prod ?
• Sécuriser les MEPs ?
• Ajouter de nouvelles compétences pour les
testeurs ?
• Lancer des tests de régression chaque soir ?
• Exécuter des tests répétitifs ou avec beaucoup
de calcul (et donc risqué si fait manuellement)?
@crochefolle
Objectifs :
• Avoir des résultats rapides sans coûts
supplémentaires
• Automatiser tous les tests ?
• Construire une plateforme de tests
automatisés durable et maintenable ?
• Ajouter de nouveaux tests facilement ?
• S’assurer de la répétabilité des tests de
régression ?
@crochefolle
Objectifs :
• Sécuriser les dates de MEPs?
• Trouver plus de bugs ?
• Trouver des bugs plus rapidement ?
• Libérer les testeurs de l’exécution de tests
répétitifs (et ennuyant ) ou avec beaucoup de
calcul (et donc risqué si fait manuellement)?
• Améliorer nos tests ?
@crochefolle
Objectifs :
• Réduire la durée de test de x% ?
• Réduire le temps et les coûts de conception
des tests ?
• Réduire la taille de l’équipe de test ?
• Exécuter plus de tests ?
• Exécuter les tests de régression plus souvent ?
• Maximiser l’utilisation de la CPU de nos PCs
(exécution de nuit) ?
@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)
• Libérer les testeurs de l’exécution de tests répétitifs (et ennuyant ) ou avec
beaucoup de calcul (et donc risqué si fait manuellement)
• Exécuter plus de tests
• Exécuter les tests de régression plus souvent
• S’assurer de la répétabilité des tests de régression
• Construire une plateforme de tests automatisés durable et maintenable
• Ajouter de nouveaux tests facilement
@crochefolle
Couverture : Qu’est-ce qu’on automatise ?
Test automatisé
• Sélectionner /identifier les scénarios de test
• Préparer l’environnement de test
– 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
• Analyser les « fails »
• Créer les bugs
• Revenir à l’état initial
• Nettoyer l’environnement de test
– Supprimer les données non nécessaires/rebaser l’environnement
– Sauvegarder les données importantes
• Faire un reporting d’avancement
@crochefolle
Couverture : Qu’est-ce qu’on automatise ?
Automatisation des tests
• Sélectionner /identifier les scénarios de test
• Préparer l’environnement de test
– 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
• Nettoyer l’environnement de test
– Supprimer les données non nécessaires/rebaser l’environnement
– Sauvegarder les données importantes
• Faire un reporting d’avancement
• Faciliter l’analyse
• Analyser les « fails »
• Créer les bugs
@crochefolle
Pre et Post Process
Qu’est ce que le pre et post process ?
Pre-process : automatisation des taches nécessaires à la mise en
place et l’exécutions d’un cas de tests
Post-process : automatisation des taches nécessaires pour
terminer la vérification et « faire le ménage »
Ces points sont essentiels car ils englobent de nombreuses taches
souvent les mêmes d’un test à un autre et qui peuvent être
automatisé : y compris si l’exécution du test est manuel !!!!
@crochefolle
Préparer des fichiers d’entrées
Générer des données
Nettoyer ce qui ne devrait pas être présent au démarrage d’un test
Copier/extraire des fichiers et les déposer là où l’outil de test les attend
…
Pre-process :
Copier les résultats vers l’outils de comparaison
Sauvegarder un état de données
Faciliter l’analyse des résultats
Supprimer les données/résultats inutiles
…
Post-process :
Exemples
Pre et Post Process
@crochefolle
Pre et Post Process
Ces points sont essentiels car ils englobent de nombreuses
taches souvent les mêmes d’un test à un autre et qui peuvent
être automatisé : y compris si l’exécution du test est
manuel !!!!
Ne pas automatisé uniquement les tests !!!
@crochefolle
Couverture : Comment déterminer ce qu’on
automatise ?Les critères sont les suivants :
1. la faisabilité technique de
l’automatisation,
2. la fréquence d’exécution des
tests,
3. le degré de réutilisabilité des
composants de test,
4. le nombre total de ressources
nécessaires,
5. la complexité des cas de test,
6. la possibilité d’utiliser les mêmes
cas de test pour de multiples
navigateurs ou environnements
7. le temps nécessaire à l’exécution
des tests.
©
@crochefolle
Responsabilité : Qui fait quoi?
Sélectionne les tests à
automatiser
Automatise les tests
Exécute les tests automatisés
Analyse les résultats de tests
Aide à l’analyse de résultat
Maintient et améliore le référentiel de
test automatisé
Créé les bugs trouvés par l’automate
Fournit les moyen pour lancer les tests
Fournit l’équipe de test en outils
Conçoit les scénarii et cas de test
Test le logiciel
@crochefolle
Responsabilité : Qui fait quoi?
• Test le logiciel
– Conçoit les scénarii et cas
de test
– Sélectionne les tests à
automatiser
• Exécute les tests
automatisés
• Analyse les résultats de
tests
– Créé les bugs trouvés par
l’automate
• Automatise les tests
demandés par les
testeurs
• Aide à l’automatisation
des tests
– Fournit les moyen aux
testeurs pour lancer les
tests
– Aide à l’analyse de résultat
– Fournit l’équipe de test en
outils d’aide
• Maintient et améliore le
référentiel de test
automatisé
Testeur Automaticien
@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
 Tout ne s’automatise pas, on aura toujours besoin de test manuels
complémentaires
 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
Mike Cohn Testing Pyramid
@crochefolle
ROI : Combien ça coute ?
• 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
ROI : Retour sur investissement = (bénéfice – cout)/cout
@crochefolle
Hypothèses de travail : exemple du mobile
22
Application Type Automatisation Priorité
XXX iPhone X 1
iPad X 2
Android X 3
Windows Phone
Webapp X 4
Applications concernées
Scénario
Durée / scénarios
(en jours) Nb Scénarios
Simple 0,5 28
Moyen 1,5 22
Complexe 3 11
Nombres de scénarios de tests à
automatiser par type d’application
Heures d'utilisation Non-reg Front Non-reg Mobile
Durée par pays (heure) 3 2
Nombre de pays 8 8
Nombre de device 1 10
Nombre d'exécution moyenne par
semaine 2 1
Nombre de semaines 50 50
Nombre total d'heures d'exécution 2400 8000
Estimation heures d’exécution nécessaire
Nb scénarios 61
Nb jours automatisation par application 80
Nombre d'applications 4
Nb jours automatisation 320
Estimation budget automatisation
@crochefolle
ROI : Combien ça coute ?
Manual Automated
No. manual tests 61 No. automated tests 61
Test Creation Test Model Creation
Manual time (hrs) 2 Build time (hrs) 5
No. scenarios 61
Total time 122 Total time 326
Uses of scenario (hrs) 2
Total time 122
Overall model time 448
Prepare automated
framework
Acquire, install, configure
tools 140
Tool training 14
Testability analysis 0
Prepare Detailed test
model 40
Total aut prep 194
Test execution Automated execution
Manual exec (hrs) 1 Exec 4 mins 0,07
Man exec time 61 Aut exec time 4,27
Test
maintenance Aut maint
Manual maint 1
Man maint time 61 Total aut maint 5
Cost per test run
1 183 646
0
200
400
600
800
1000
1200
1400
1600
1800
1 2 3 4 5 6 7 8 9 10 11 12 13
Manual hrs
Automated hrs
@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
– On attend un bénéfice net, même si c’est difficile à quantifier
@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
• Quels sont les artefacts dont on a besoin pour les tests ?
Entrées Résultats de tests
Données
d’entrées
Produits de test Compléments
Scripts de tests
Résultats obtenus
Logs
Exigences Status
Résultats
attendus
Différences
Environnement Rapports
Outils
@crochefolle
Infrastructure de test
• Quels sont les points important à prendre en compte ?
– La gestion des artefacts :
• Nombres
• Versionning
• Partage de données, librairies
Importance de la gestion de configuration
Gestion d’un référentiel de composant
– Les capacités d’exécutions :
• Machines virtuelles
• Test lab ?
– Maintenance
 L’automatisation des tests est un projet de développement et doit être gérer en
tant que tel !!!
@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
-
20
40
60
80
100
Installation
Pricing &
Licensing
Support
Fonctionalités
Metier
Fonctionnalités
Technique
HP
Microsoft
@crochefolle
En résumé : process d’automatisation
29
Automaticien
Testeur
Mise en place
d’un projet
d’automatisation
Choix d’un outil
Mise en place de
l’infrastructure de
test
Développement
d’un framework
d’automatisation
Conception et
sélection des
tests à
automatiser
Développement
d’un automate
pour ces
scénarios
Exécution de
l’automate
Analyse des
résultats
Maintenance de
l’automate
Mise en place
Au quotidien
@crochefolle
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)
• Libérer les testeurs de l’exécution de tests répétitifs (et ennuyant ) ou avec
beaucoup de calcul (et donc risqué si fait manuellement)
• Exécuter plus de tests
• Exécuter les tests de régression plus souvent
• S’assurer de la répétabilité des tests de régression
• Construire une plateforme de tests automatisés durable et maintenable
• Ajouter de nouveaux tests facilement
@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 !!

Automatisation des tests - objectifs et concepts - partie 1

  • 1.
  • 2.
    @crochefolle Dédicace http://www.dorothygraham.co.uk/ Librement inspiré dutravail de Dorothy Graham Spécialiste reconnue dans le domaine du test, elle a contribué à la définition du syllabus ISTQB et notamment sur l’automatisation des tests.
  • 3.
    @crochefolle Agenda 1. Introduction :ce que l’on va couvrir (et ne pas couvrir) 2. Définition : Qu’est-ce que l’automatisation des tests ? 3. Objectifs : Pourquoi automatiser ? 4. Couverture : – Qu’est-ce qu’on automatise ? – Pre et Post Process – Comment déterminer ce qu’on automatise ? 5. Responsabilité : Qui fait quoi? 6. ROI : Combien ça coute ? 7. Infrastructure de test 8. Processus d’automatisation 9. Conclusion
  • 4.
    @crochefolle Introduction • Comprendre lesobjectifs et concepts de l’automatisation des tests • Définir les rôles et responsabilités de chacun • Présenter le ROI de l’automatisation • Présenter les principes techniques d’automatisation • Pas de présentations d’outils • Pas de formation au développement de script de test ce que l’on va couvrir (et ne pas couvrir)
  • 5.
    @crochefolle Définition : Qu’est-cequ’un test automatisé? • Conçu par des testeurs pour validé une exigenceUn test ! • automatiquement par un moteur de test • mais qui pourrait être exécuté manuellement Un test exécuté : On industrialise ce qu’on maitrise !!
  • 6.
    @crochefolle Définition : Qu’est-ceque l’automatisation des tests ? • Un projet avec des objectifs, des responsabilités • Mais aussi une charge de maintenance permanente • Et des sous-projets : • Choisir l’outil de test • Produire/générer des données de tests • … L’automatisation des tests est : • Double compétence dev/test Un métier !
  • 7.
    @crochefolle Objectifs : Pourquoiautomatiser ? • Réduire le nombre de bugs trouvés par le métier / en prod ? • Sécuriser les MEPs ? • Ajouter de nouvelles compétences pour les testeurs ? • Lancer des tests de régression chaque soir ? • Exécuter des tests répétitifs ou avec beaucoup de calcul (et donc risqué si fait manuellement)?
  • 8.
    @crochefolle Objectifs : • Avoirdes résultats rapides sans coûts supplémentaires • Automatiser tous les tests ? • Construire une plateforme de tests automatisés durable et maintenable ? • Ajouter de nouveaux tests facilement ? • S’assurer de la répétabilité des tests de régression ?
  • 9.
    @crochefolle Objectifs : • Sécuriserles dates de MEPs? • Trouver plus de bugs ? • Trouver des bugs plus rapidement ? • Libérer les testeurs de l’exécution de tests répétitifs (et ennuyant ) ou avec beaucoup de calcul (et donc risqué si fait manuellement)? • Améliorer nos tests ?
  • 10.
    @crochefolle Objectifs : • Réduirela durée de test de x% ? • Réduire le temps et les coûts de conception des tests ? • Réduire la taille de l’équipe de test ? • Exécuter plus de tests ? • Exécuter les tests de régression plus souvent ? • Maximiser l’utilisation de la CPU de nos PCs (exécution de nuit) ?
  • 11.
    @crochefolle Objectifs de l’automatisationdes tests • Exécuter des tests répétitifs ou avec beaucoup de calcul (et donc risqué si fait manuellement) • Libérer les testeurs de l’exécution de tests répétitifs (et ennuyant ) ou avec beaucoup de calcul (et donc risqué si fait manuellement) • Exécuter plus de tests • Exécuter les tests de régression plus souvent • S’assurer de la répétabilité des tests de régression • Construire une plateforme de tests automatisés durable et maintenable • Ajouter de nouveaux tests facilement
  • 12.
    @crochefolle Couverture : Qu’est-cequ’on automatise ? Test automatisé • Sélectionner /identifier les scénarios de test • Préparer l’environnement de test – 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 • Analyser les « fails » • Créer les bugs • Revenir à l’état initial • Nettoyer l’environnement de test – Supprimer les données non nécessaires/rebaser l’environnement – Sauvegarder les données importantes • Faire un reporting d’avancement
  • 13.
    @crochefolle Couverture : Qu’est-cequ’on automatise ? Automatisation des tests • Sélectionner /identifier les scénarios de test • Préparer l’environnement de test – 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 • Nettoyer l’environnement de test – Supprimer les données non nécessaires/rebaser l’environnement – Sauvegarder les données importantes • Faire un reporting d’avancement • Faciliter l’analyse • Analyser les « fails » • Créer les bugs
  • 14.
    @crochefolle Pre et PostProcess Qu’est ce que le pre et post process ? Pre-process : automatisation des taches nécessaires à la mise en place et l’exécutions d’un cas de tests Post-process : automatisation des taches nécessaires pour terminer la vérification et « faire le ménage » Ces points sont essentiels car ils englobent de nombreuses taches souvent les mêmes d’un test à un autre et qui peuvent être automatisé : y compris si l’exécution du test est manuel !!!!
  • 15.
    @crochefolle Préparer des fichiersd’entrées Générer des données Nettoyer ce qui ne devrait pas être présent au démarrage d’un test Copier/extraire des fichiers et les déposer là où l’outil de test les attend … Pre-process : Copier les résultats vers l’outils de comparaison Sauvegarder un état de données Faciliter l’analyse des résultats Supprimer les données/résultats inutiles … Post-process : Exemples Pre et Post Process
  • 16.
    @crochefolle Pre et PostProcess Ces points sont essentiels car ils englobent de nombreuses taches souvent les mêmes d’un test à un autre et qui peuvent être automatisé : y compris si l’exécution du test est manuel !!!! Ne pas automatisé uniquement les tests !!!
  • 17.
    @crochefolle Couverture : Commentdéterminer ce qu’on automatise ?Les critères sont les suivants : 1. la faisabilité technique de l’automatisation, 2. la fréquence d’exécution des tests, 3. le degré de réutilisabilité des composants de test, 4. le nombre total de ressources nécessaires, 5. la complexité des cas de test, 6. la possibilité d’utiliser les mêmes cas de test pour de multiples navigateurs ou environnements 7. le temps nécessaire à l’exécution des tests. ©
  • 18.
    @crochefolle Responsabilité : Quifait quoi? Sélectionne les tests à automatiser Automatise les tests Exécute les tests automatisés Analyse les résultats de tests Aide à l’analyse de résultat Maintient et améliore le référentiel de test automatisé Créé les bugs trouvés par l’automate Fournit les moyen pour lancer les tests Fournit l’équipe de test en outils Conçoit les scénarii et cas de test Test le logiciel
  • 19.
    @crochefolle Responsabilité : Quifait quoi? • Test le logiciel – Conçoit les scénarii et cas de test – Sélectionne les tests à automatiser • Exécute les tests automatisés • Analyse les résultats de tests – Créé les bugs trouvés par l’automate • Automatise les tests demandés par les testeurs • Aide à l’automatisation des tests – Fournit les moyen aux testeurs pour lancer les tests – Aide à l’analyse de résultat – Fournit l’équipe de test en outils d’aide • Maintient et améliore le référentiel de test automatisé Testeur Automaticien
  • 20.
    @crochefolle Responsabilité : Quifait 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  Tout ne s’automatise pas, on aura toujours besoin de test manuels complémentaires  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 Mike Cohn Testing Pyramid
  • 21.
    @crochefolle ROI : Combiença coute ? • 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 ROI : Retour sur investissement = (bénéfice – cout)/cout
  • 22.
    @crochefolle Hypothèses de travail: exemple du mobile 22 Application Type Automatisation Priorité XXX iPhone X 1 iPad X 2 Android X 3 Windows Phone Webapp X 4 Applications concernées Scénario Durée / scénarios (en jours) Nb Scénarios Simple 0,5 28 Moyen 1,5 22 Complexe 3 11 Nombres de scénarios de tests à automatiser par type d’application Heures d'utilisation Non-reg Front Non-reg Mobile Durée par pays (heure) 3 2 Nombre de pays 8 8 Nombre de device 1 10 Nombre d'exécution moyenne par semaine 2 1 Nombre de semaines 50 50 Nombre total d'heures d'exécution 2400 8000 Estimation heures d’exécution nécessaire Nb scénarios 61 Nb jours automatisation par application 80 Nombre d'applications 4 Nb jours automatisation 320 Estimation budget automatisation
  • 23.
    @crochefolle ROI : Combiença coute ? Manual Automated No. manual tests 61 No. automated tests 61 Test Creation Test Model Creation Manual time (hrs) 2 Build time (hrs) 5 No. scenarios 61 Total time 122 Total time 326 Uses of scenario (hrs) 2 Total time 122 Overall model time 448 Prepare automated framework Acquire, install, configure tools 140 Tool training 14 Testability analysis 0 Prepare Detailed test model 40 Total aut prep 194 Test execution Automated execution Manual exec (hrs) 1 Exec 4 mins 0,07 Man exec time 61 Aut exec time 4,27 Test maintenance Aut maint Manual maint 1 Man maint time 61 Total aut maint 5 Cost per test run 1 183 646 0 200 400 600 800 1000 1200 1400 1600 1800 1 2 3 4 5 6 7 8 9 10 11 12 13 Manual hrs Automated hrs
  • 24.
    @crochefolle Les dangers duROI • 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 – On attend un bénéfice net, même si c’est difficile à quantifier
  • 25.
    @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 • Quels sont les artefacts dont on a besoin pour les tests ? Entrées Résultats de tests Données d’entrées Produits de test Compléments Scripts de tests Résultats obtenus Logs Exigences Status Résultats attendus Différences Environnement Rapports Outils
  • 26.
    @crochefolle Infrastructure de test •Quels sont les points important à prendre en compte ? – La gestion des artefacts : • Nombres • Versionning • Partage de données, librairies Importance de la gestion de configuration Gestion d’un référentiel de composant – Les capacités d’exécutions : • Machines virtuelles • Test lab ? – Maintenance  L’automatisation des tests est un projet de développement et doit être gérer en tant que tel !!!
  • 27.
    @crochefolle Infrastructure de test: outils • Quels sont les critères de choix ? Exemple du mobile
  • 28.
    @crochefolle Infrastructure de test: outils • Quels sont les critères de choix ? Exemple du mobile - 20 40 60 80 100 Installation Pricing & Licensing Support Fonctionalités Metier Fonctionnalités Technique HP Microsoft
  • 29.
    @crochefolle En résumé :process d’automatisation 29 Automaticien Testeur Mise en place d’un projet d’automatisation Choix d’un outil Mise en place de l’infrastructure de test Développement d’un framework d’automatisation Conception et sélection des tests à automatiser Développement d’un automate pour ces scénarios Exécution de l’automate Analyse des résultats Maintenance de l’automate Mise en place Au quotidien
  • 30.
    @crochefolle 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 ?
  • 31.
    @crochefolle Objectifs de l’automatisationdes tests • Exécuter des tests répétitifs ou avec beaucoup de calcul (et donc risqués si fait manuellement) • Libérer les testeurs de l’exécution de tests répétitifs (et ennuyant ) ou avec beaucoup de calcul (et donc risqué si fait manuellement) • Exécuter plus de tests • Exécuter les tests de régression plus souvent • S’assurer de la répétabilité des tests de régression • Construire une plateforme de tests automatisés durable et maintenable • Ajouter de nouveaux tests facilement
  • 32.
    @crochefolle Agenda de laprochaine 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
  • 33.