20120612 02 - Automatisation des tests avec squash TA en environnement bancaire - Rex BGPI
1. Automatisation des Tests avec Squash TA
en environnement bancaire : retour
d’expérience de la BGPI
Club Qualité Logicielle
12 juin 2012
2. /13 juin 2012/P2
Sommaire
Contexte
Plate-forme technique
Méthodologie
Points de vigilance
Questions & Réponses
3. /13 juin 2012/P3
Présentation BGPI/SIDEV/HDF
HDF : Help Desk Fonctionnel
Support fonctionnel
Modélisation Pivot Rédaction des Spécifications fonctionnelles
détaillées
Recette Assurance Qualité et Tests de Non Régression
SIDEV : Études Informatiques BGPI
BGPI : Banque de Gestion Privée du groupe Crédit Agricole
4. /13 juin 2012/P4
Contexte
Gains attendus des TNR
Régressions Incidents Mises en production
Recette plus complète : Risque d’anomalie Couverture
Objectifs
Vérifier l'absence de régression dans une nouvelle version
Recette effectuée dans un environnement dédié et maîtrisé
Sélection de scénarios métier pertinents et automatisables
Recette complémentaire de celle de la MOA (évolutions)
5. /13 juin 2012/P5
Périmètre applicatif testé
Alpha (28 scénarios – juin 2010 – 6 mois)
- application de téléconseil avec recommandations d'arbitrage
- nombre important de régressions
- technologie : JSF + QuipuKit, navigateur Firefox 3.2.6 local
- outil de test utilisé : Squash TA/Selenium/CubicTest
Agora CRM (5 scénarios – janvier 2011 – 1 mois)
- création de contacts clients (CRM)
- forte sensibilité
- technologie : GWT/GXT, navigateur IE8 sous Citrix
- outil de test utilisé : Squash TA/Selenium/CubicTest
Agora NRT (21 scénarios – janvier 2012 – 1 mois)
- application d'administration du nouveau référentiel tiers
- structurant car référentiel
- technologie : idem qu’Agora CRM
- outil de test utilisé : Squash TA/Sahi
6. /13 juin 2012/P6
Les différents contributeurs
Mise en place de la plate-forme de tests automatisés :
Equipe Production
Equipe Base de données
Equipe Intégration
Equipe Squash Henix
Réalisation des tests :
Développeurs Web
Maîtrises d’Ouvrage
Automaticien
8. /13 juin 2012/P8
Méthodologie générale – Etapes générales
du processus d’automatisation
Analyse des spécifications fonctionnelles
Choix des scénarios à automatiser
Alimentation du référentiel de tests (exigences, cas de test)
Détermination de l'échantillon de données ad'hoc
Codage des scénarios
Exécution des scripts
Génération de rapports d’exécution
Analyse des résultats et restitution du PV de recette TNR
Squash TA / Sahi
9. /13 juin 2012/P9
Méthodologie générale – Etapes générales
du processus d’automatisation
Analyse des spécifications fonctionnelles
Choix des scénarios à automatiser
Alimentation du référentiel de tests (exigences, cas de test)
Détermination de l'échantillon de données ad'hoc
Codage des scénarios
Exécution des scripts
Génération de rapports d’exécution
Analyse des résultats et restitution du PV de recette TNR
11. /13 juin 2012/P11
Vue 3D de l’application Agora NRT
Vue créée par l’extension Firefox Web Developer
12. /13 juin 2012/P12
Sahi – Présentation générale
Outil open source d’automatisation de tests pour
applications Web
Lance et ferme le navigateur Web
Interprète et exécute les commandes transmises par le
programme de test
Agit comme un proxy HTTP, en interceptant et vérifiant les
messages HTTP échangés entre le navigateur et l’application
testée
Librairies client fournissant une interface (API) entre le
langage de programmation et le serveur proxy
Enregistreur de commandes fourni
13. /13 juin 2012/P13
Sahi : Les points forts
+ API très riche (+ d’une centaine de méthodes d’accès / action /
assertion)
+ support de nombreux langages de programmation
+ prise en main rapide
+ enregistreur intégré
+ indépendance vis à vis des différents interpréteurs Javascript
+ enregistreur fonctionnant sous tous les navigateurs
+ accès facilité aux objets d'une page Web
+ adapté aux applications Web riches avec contenu dynamique
+ « waits » implicites
14. /13 juin 2012/P14
Sahi : Les points faibles
- pas de couche graphique, écriture entièrement manuelle des
scripts
- technologie encore récente, qui doit faire ses preuves
- impossible d'interagir avec l’environnement win32
15. /13 juin 2012/P15
Méthodologie générale – Etapes générales
du processus d’automatisation
Analyse des spécifications fonctionnelles
Choix des scénarios à automatiser
Alimentation du référentiel de tests (exigences, cas de test)
Détermination de l'échantillon de données ad'hoc
Codage des scénarios
Exécution des scripts
Génération de rapports d’exécution
Analyse des résultats et restitution du PV de recette TNR
17. /13 juin 2012/P17
Intégration et Recette de scripts (Java)
Intégration des scripts dans des classes Java
Mise en place de l’environnement
Exécution du script
Vérifications éventuelles (base, fichiers,…)
Réinitialisation de l’environnement
18. /13 juin 2012/P18
Framework Squash TA
La plupart des outils d’automatisation de test existants se focalisent sur
l’exécution du test et les vérifications dynamiques (c’est-à-dire les vérifications
effectuées au cours de l’exécution). Mais ces fonctions seules ne permettent pas de
mettre en place des tests réutilisables et maintenables.
Les cas de tests doivent être entièrement automatisés, c’est-à-dire qu’ils doivent
inclure toutes les étapes suivantes :
préparation de l’environnement
exécution du test et vérifications dynamiques
vérifications post-exécution
nettoyage de l’environnement
Le framework doit prendre en charge la préparation de l’environnement avant le cas
de test, les vérifications complémentaires après l’exécution, et le nettoyage de
l’environnement.
En outre, il doit permettre de constituer des campagnes facilement et de les
exécuter automatiquement.
19. /13 juin 2012/P19
Points de vigilance
Sensibilité des tests aux modifications de :
spécifications fonctionnelles
framework de développement
l’interface utilisateur
structure de la base de données
données (ex: anonymisation)
Chacun de ces points impacte plus ou moins fortement l’effort de
maintenance des tests
20. /13 juin 2012/P20
Conclusions
Squash TA assure un pilotage complet des tests,
de la préparation au reporting
Gain de productivité et donc de couverture
fonctionnelle : sur Agora NRT, 100% des
scénarios de consultation ont été automatisés
Fiabilisation de la recette : 2 anomalies détectées
par campagne en moyenne
22. /13 juin 2012/P22
Contribution du service Production
Installation et configuration du poste de travail selon le besoin
exprimé
Droits d’installation sur certains répertoires du poste de travail
Montage des serveurs applicatifs
Montage des bases de données
23. /13 juin 2012/P23
Contribution de l’équipe Base de données
Mise à disposition de données iso-prod contenant un repository
de données multiples, dans lesquelles peut « piocher »
l'automaticien
Mise à disposition d'un ensemble de scripts shell permettant le
déploiement des packages à mettre en production
Création de comptes Jailer
24. /13 juin 2012/P24
Contribution de l’équipe Intégration
Déploiement et maintenance de l’environnement Squash TM et
Mantis
25. /13 juin 2012/P25
Contribution de l’équipe Squash Henix
Déploiement, configuration et maintenance de Squash TA sur le
poste de travail
Adaptation du template projet aux applications du client
Développement d’extensions du framework spécifiques à
l’environnement applicatif du client
26. /13 juin 2012/P26
Contribution des Développeurs Web
Déploiement des versions à tester (deployIt)
Développement d’un lanceur de batchs
Mise en place d'un serveur de mails
Développement d'une page Web pour afficher le contenu d'un
email ou d'un document pdf avant son formatage final, au format
HTML, exploitable par l'outil de test
Renseignement de la matrice multi-critères (choix des scénarios
à automatiser)
27. /13 juin 2012/P27
Contribution des Maîtrises d’Ouvrage
Mise à disposition des spécifications fonctionnelles générales
Saisie des règles de gestion et des cas de test dans le référentiel
de tests
Renseignement de la matrice multi-critères et choix final des
scénarios à automatiser
28. /13 juin 2012/P28
Contribution de l’automaticien
Renseignement de la matrice multi-critères
Maintenance de l’environnement de test et de la toolbox
Constitution des jeux de données de test
Ecriture et maintenance des scripts
Exécution des TNR automatisés
29. /13 juin 2012/P29
Choix des scenarios à automatiser :
utilisation d’une matrice multicritères
31. /13 juin 2012/P31
Méthodologie générale – Etapes générales
du processus d’automatisation
Analyse des spécifications fonctionnelles
Choix des scénarios à automatiser
Alimentation du référentiel de tests (exigences, cas de test)
Détermination de l'échantillon de données ad'hoc
Codage des scénarios
Exécution des scripts
Génération de rapports d’exécution
Analyse des résultats et restitution du PV de recette TNR
33. /13 juin 2012/P33
Méthodologie générale – Etapes générales
du processus d’automatisation
Analyse des spécifications fonctionnelles
Choix des scénarios à automatiser
Alimentation du référentiel de tests (exigences, cas de test)
Détermination de l'échantillon de données ad'hoc
Codage des scénarios
Exécution des scripts
Génération de rapports d’exécution
Analyse des résultats et restitution du PV de recette TNR
34. /13 juin 2012/P34
Jailer : Description
Outil open-source codé en Java
Support de multiples bases (via JDBC)
Analyse de base de données relationnelles
Création d’un modèle d’extraction respectueux des
contraintes de base de données
Génération d’échantillons de données
Exports de datasets au format DbUnit
35. /13 juin 2012/P35
Jailer : Extraction de données
BGPI3TMP BGPI3NR2
REF
Données
fonctionnelles
Données
fonctionnelles
REF