d e s c o m p é t e n c e s d e s p r o f e s s i o n n e ...
L E S T E S T S ’INT R A · 2019-10-15 · PYRAMIDE DES TESTS L A P Y R A M I D E D E S T E S T S...
Transcript of L E S T E S T S ’INT R A · 2019-10-15 · PYRAMIDE DES TESTS L A P Y R A M I D E D E S T E S T S...
![Page 1: L E S T E S T S ’INT R A · 2019-10-15 · PYRAMIDE DES TESTS L A P Y R A M I D E D E S T E S T S La priorité doit être donnée aux tests de bas niveaux Ces tests sont prévus](https://reader034.fdocuments.fr/reader034/viewer/2022042117/5e96198a95127c3ec31f7299/html5/thumbnails/1.jpg)
L E S T E S T S D ’ I N T E R F A C E A U T O M A T I S É S
A S S E M B L É E G É N É R A L E A E R I S
François ANDRE
![Page 2: L E S T E S T S ’INT R A · 2019-10-15 · PYRAMIDE DES TESTS L A P Y R A M I D E D E S T E S T S La priorité doit être donnée aux tests de bas niveaux Ces tests sont prévus](https://reader034.fdocuments.fr/reader034/viewer/2022042117/5e96198a95127c3ec31f7299/html5/thumbnails/2.jpg)
Relation avec les autres types de tests
![Page 3: L E S T E S T S ’INT R A · 2019-10-15 · PYRAMIDE DES TESTS L A P Y R A M I D E D E S T E S T S La priorité doit être donnée aux tests de bas niveaux Ces tests sont prévus](https://reader034.fdocuments.fr/reader034/viewer/2022042117/5e96198a95127c3ec31f7299/html5/thumbnails/3.jpg)
PYRAMIDE DES TESTS
L A P Y R A M I D E D E S T E S T S
La priorité doit être donnée aux tests de bas niveaux
Ces tests sont prévus par les technologies utilisées
Ex: ecosystème java: junit, spring permet de tester tester facilement les couches backend
Ces outils sont intégrés aux forges logicielles
![Page 4: L E S T E S T S ’INT R A · 2019-10-15 · PYRAMIDE DES TESTS L A P Y R A M I D E D E S T E S T S La priorité doit être donnée aux tests de bas niveaux Ces tests sont prévus](https://reader034.fdocuments.fr/reader034/viewer/2022042117/5e96198a95127c3ec31f7299/html5/thumbnails/4.jpg)
L E S T E S T S B A S N I V E A U X
Nécessitent du temps
Doivent être prévus dès la conception
On un impact généralement très positif sur la qualité du code
Permettent l’acceptation du changement
Nécessitent des compétences et de la méthodologie
Ex: gestion des profils en Spring, conception par interface
Conditionnent la génération du livrable
Nécessitent la mise en place de jeux de tests
![Page 5: L E S T E S T S ’INT R A · 2019-10-15 · PYRAMIDE DES TESTS L A P Y R A M I D E D E S T E S T S La priorité doit être donnée aux tests de bas niveaux Ces tests sont prévus](https://reader034.fdocuments.fr/reader034/viewer/2022042117/5e96198a95127c3ec31f7299/html5/thumbnails/5.jpg)
L E S T E S T S D ’ I N T E R F A C E Nécessitent du temps
On la réputation de ne pas être pérennes
Peuvent être mis en place a posteriori
Peuvent être mis en place avant que l’application ne
soit codée
Peuvent être enregistrés sous forme de vidéos
Correspondent exactement à la vision du client
Sont indépendants de la technologie Backend.
Permettent l’acceptation du changement
Peuvent inclure d’autres projets
Nécessitent des compétences et de la méthodologie
Ex: Utilisation de Page Objects, besoin d’identifiants
pérennes.
Nécessitent la mise en place de jeux de tests
Sont plus longs à exécuter
Peuvent :
conditionner la génération du livrable (rare)
s’exécuter régulièrement sur une application déjà déployée
![Page 6: L E S T E S T S ’INT R A · 2019-10-15 · PYRAMIDE DES TESTS L A P Y R A M I D E D E S T E S T S La priorité doit être donnée aux tests de bas niveaux Ces tests sont prévus](https://reader034.fdocuments.fr/reader034/viewer/2022042117/5e96198a95127c3ec31f7299/html5/thumbnails/6.jpg)
SeleniumHQ
![Page 7: L E S T E S T S ’INT R A · 2019-10-15 · PYRAMIDE DES TESTS L A P Y R A M I D E D E S T E S T S La priorité doit être donnée aux tests de bas niveaux Ces tests sont prévus](https://reader034.fdocuments.fr/reader034/viewer/2022042117/5e96198a95127c3ec31f7299/html5/thumbnails/7.jpg)
S E L E N I U M H Q
UN STANDARD
Standard reconnu dans le monde du test d’interface
Stable
Multi-language
PRINCIPE
Lancement d’un navigateur en mode contrôlé (le driver)
Identification d’élément(s) sur la page en cours via des sélecteurs (Id, css,
xpath, personnalisé)
Actions sur les éléments identifiés (click, saisie de valeur, …)
Test d’existence d’éléments, test sur la valeur de texte,…
![Page 8: L E S T E S T S ’INT R A · 2019-10-15 · PYRAMIDE DES TESTS L A P Y R A M I D E D E S T E S T S La priorité doit être donnée aux tests de bas niveaux Ces tests sont prévus](https://reader034.fdocuments.fr/reader034/viewer/2022042117/5e96198a95127c3ec31f7299/html5/thumbnails/8.jpg)
S E L E N I U M I D E Selenium IDE est un plugin Firefox permettant d’enregistrer les actions
effectuées dans un navigateur sous forme de script SeleniumHQ
L’utilisation de ce plugin est à prescrire car les scripts générés sont en
général difficile à maintenir
![Page 9: L E S T E S T S ’INT R A · 2019-10-15 · PYRAMIDE DES TESTS L A P Y R A M I D E D E S T E S T S La priorité doit être donnée aux tests de bas niveaux Ces tests sont prévus](https://reader034.fdocuments.fr/reader034/viewer/2022042117/5e96198a95127c3ec31f7299/html5/thumbnails/9.jpg)
Bonne pratique
![Page 10: L E S T E S T S ’INT R A · 2019-10-15 · PYRAMIDE DES TESTS L A P Y R A M I D E D E S T E S T S La priorité doit être donnée aux tests de bas niveaux Ces tests sont prévus](https://reader034.fdocuments.fr/reader034/viewer/2022042117/5e96198a95127c3ec31f7299/html5/thumbnails/10.jpg)
L E S T E S T S D ’ I N T E R F A C E F I N I S S E N T M A L Les utilisations naïves de Selenium sont en général vouées à l’échec car:
1. Un changement dans l’interface peut impacter beaucoup de scripts.
2. Les modifications sont difficiles à identifier
3. Les sélecteurs sont peu pérennes
Les scripts sont souvent abandonnés.
![Page 11: L E S T E S T S ’INT R A · 2019-10-15 · PYRAMIDE DES TESTS L A P Y R A M I D E D E S T E S T S La priorité doit être donnée aux tests de bas niveaux Ces tests sont prévus](https://reader034.fdocuments.fr/reader034/viewer/2022042117/5e96198a95127c3ec31f7299/html5/thumbnails/11.jpg)
L E S T E S T S D ’ I N T E R F A C E F I N I S S E N T M A L
login
mdp
OK
Page 2
Page 3
Script 1
Script 2
Script 3
Appels Selenium
Scripts faiblement sémantisés
![Page 12: L E S T E S T S ’INT R A · 2019-10-15 · PYRAMIDE DES TESTS L A P Y R A M I D E D E S T E S T S La priorité doit être donnée aux tests de bas niveaux Ces tests sont prévus](https://reader034.fdocuments.fr/reader034/viewer/2022042117/5e96198a95127c3ec31f7299/html5/thumbnails/12.jpg)
login
mdp
OK
L E S T E S T S D ’ I N T E R F A C E F I N I S S E N T M A L
Page 2
Page 3
Script 1
Script 2
Script 3
CE GENRE DE PROBLÈME EST APPARAIT ÉGALEMENT:
LORSQUE LE SÉLECTEUR EST CHANGÉ,
LORSQUE LA CINÉMATIQUE DE L’APPLICATION EST CHANGÉE….
![Page 13: L E S T E S T S ’INT R A · 2019-10-15 · PYRAMIDE DES TESTS L A P Y R A M I D E D E S T E S T S La priorité doit être donnée aux tests de bas niveaux Ces tests sont prévus](https://reader034.fdocuments.fr/reader034/viewer/2022042117/5e96198a95127c3ec31f7299/html5/thumbnails/13.jpg)
… E N G E N E R A L Les tests peuvent devenir plus robuste en adoptant le Design Pattern Page Object, qui est l’équivalent
du DAO pour les tests d’interface.
Il consiste à rajouter un objet qui va représenter une des pages web de l’application
Il expose les méthodes de la page aux scripts de tests
Il masque les appels Selenium sous-jacents
LoginPage
setName() setPassword() login() … login(name password) loginAdministrator() isLogged() getErrorMessage()
login
mdp
OK
Script 1 Script 1
Scripts
Appels Selenium
Appels Langage X
Scripts fortement sémantisés
![Page 14: L E S T E S T S ’INT R A · 2019-10-15 · PYRAMIDE DES TESTS L A P Y R A M I D E D E S T E S T S La priorité doit être donnée aux tests de bas niveaux Ces tests sont prévus](https://reader034.fdocuments.fr/reader034/viewer/2022042117/5e96198a95127c3ec31f7299/html5/thumbnails/14.jpg)
… E N G E N E R A L L’utilisation des Page Objects permet:
Un impact limité en cas de changement de l’application
Des scripts plus faciles à maintenir (éventuellement écrits en Gherkin)
Une identification plus aisée des scripts à modifier en cas de changement des méthodes du page object via le compilateur.
![Page 15: L E S T E S T S ’INT R A · 2019-10-15 · PYRAMIDE DES TESTS L A P Y R A M I D E D E S T E S T S La priorité doit être donnée aux tests de bas niveaux Ces tests sont prévus](https://reader034.fdocuments.fr/reader034/viewer/2022042117/5e96198a95127c3ec31f7299/html5/thumbnails/15.jpg)
… E N G E N E R A L
login
mdp
OK
Page 2
Page 3
Script 1
Script 2
Script 3
LoginPage
setName() setPassword() login() …
SecondPage
…
ThirdPage
…
![Page 16: L E S T E S T S ’INT R A · 2019-10-15 · PYRAMIDE DES TESTS L A P Y R A M I D E D E S T E S T S La priorité doit être donnée aux tests de bas niveaux Ces tests sont prévus](https://reader034.fdocuments.fr/reader034/viewer/2022042117/5e96198a95127c3ec31f7299/html5/thumbnails/16.jpg)
… E N G E N E R A L
Page 2
Page 3
Script 1
Script 2
Script 3
LoginPage
setName() setPassword() login() …
SecondPage
…
ThirdPage
…
login
mdp
OK
![Page 17: L E S T E S T S ’INT R A · 2019-10-15 · PYRAMIDE DES TESTS L A P Y R A M I D E D E S T E S T S La priorité doit être donnée aux tests de bas niveaux Ces tests sont prévus](https://reader034.fdocuments.fr/reader034/viewer/2022042117/5e96198a95127c3ec31f7299/html5/thumbnails/17.jpg)
Exemple en Spring (boot)
![Page 18: L E S T E S T S ’INT R A · 2019-10-15 · PYRAMIDE DES TESTS L A P Y R A M I D E D E S T E S T S La priorité doit être donnée aux tests de bas niveaux Ces tests sont prévus](https://reader034.fdocuments.fr/reader034/viewer/2022042117/5e96198a95127c3ec31f7299/html5/thumbnails/18.jpg)
U n e x e m p l e s i m p l e
https://github.com/francoisandre/seleniumdemo
Test basique du catalogue GMOS
Code source:
Prérequis: installation du driver (des librairies comme Arquillian permettent le téléchargement
automatique)
Architecture du code:
Les pages objects sont regroupés dans un même package
Dans classes de tests sont nommés xxxScenario afin de ne pas être pris en compte par maven par défaut (mais au sein de profils).
![Page 19: L E S T E S T S ’INT R A · 2019-10-15 · PYRAMIDE DES TESTS L A P Y R A M I D E D E S T E S T S La priorité doit être donnée aux tests de bas niveaux Ces tests sont prévus](https://reader034.fdocuments.fr/reader034/viewer/2022042117/5e96198a95127c3ec31f7299/html5/thumbnails/19.jpg)
U n p a g e o b j e c t : l e s s é l e c t e u r s
![Page 20: L E S T E S T S ’INT R A · 2019-10-15 · PYRAMIDE DES TESTS L A P Y R A M I D E D E S T E S T S La priorité doit être donnée aux tests de bas niveaux Ces tests sont prévus](https://reader034.fdocuments.fr/reader034/viewer/2022042117/5e96198a95127c3ec31f7299/html5/thumbnails/20.jpg)
U n p a g e o b j e c t : l e s m é t h o d e s
![Page 21: L E S T E S T S ’INT R A · 2019-10-15 · PYRAMIDE DES TESTS L A P Y R A M I D E D E S T E S T S La priorité doit être donnée aux tests de bas niveaux Ces tests sont prévus](https://reader034.fdocuments.fr/reader034/viewer/2022042117/5e96198a95127c3ec31f7299/html5/thumbnails/21.jpg)
S c r i p t d e t e s t s
![Page 22: L E S T E S T S ’INT R A · 2019-10-15 · PYRAMIDE DES TESTS L A P Y R A M I D E D E S T E S T S La priorité doit être donnée aux tests de bas niveaux Ces tests sont prévus](https://reader034.fdocuments.fr/reader034/viewer/2022042117/5e96198a95127c3ec31f7299/html5/thumbnails/22.jpg)
Q u e l q u e s r e c o m m a n d a t i o n s
Anticiper les tests avec des sélecteurs sémantiquement claires (ex: fausses classes CSS)
Privilégier les secteurs CSS et ID à Xpath
Privilégier les drivers Firefox et Chrome