philippe de oliveiraclubutilisateursoracle.org/wp-content/uploads/2015/03/...selenium webdriver +...
TRANSCRIPT
Automatisation Des Tests
D’Interface
PHILIPPE DE OLIVEIRA
2
WHO AM I ?
PHILIPPE DE OLIVEIRA Directeur Technique 01 41 40 59 17 [email protected] Expertise Technique
Architecture Audits Resp. Direction Technique
Qualité des livrables Expertise Smile Veille technologique
Industrialisation Capitalisation
3
SOMMAIRE
SMILE
LET’S TEST !
DEMO 1
DEMO 2
1
2
3
4
AUTOMATISATION
DES TESTS
TOUT AUTOMATIQUE
CONCLUSION
5
6
7
4
1 – SMILE !
5
SMILE IN A FEW FIGURES
Leading European open source integrator
More than 20
More than 35
More than 50
YEARS EXPERIENCE IN OPEN SOURCE
PARTNERS IN OPEN SOURCE
MILLION EUROS IN TURNOVER IN 2013
700 OPEN SOURCE EXPERTS
25% INCREASE IN TURNOVER
PER YEAR
6
18 OFFICES
IN 8 COUNTRIES
Smile is increasing
its presence
throughout Europe
OPEN SOURCE : TECHNOLOGY OF THE FUTURE
Experts in cutting edge
technologies such as
Cloud,
Big data
An ROI SAVING OF UP TO
65%
Jahia is used for leading e-com/corp sites
Linux motorises all global stock markets
$
More than92%
large companies use
open source
Twitter, Facebook, Google
are based on open source
open source
INNOVATIVE
SAFE & SECURE
POPULAR
MATURE & STABLE
8
SMILE IS THE LEADING EUROPEAN
SMILE IS THE BIGGEST OPEN SOURCE PLAYER IN EUROPE
700 employees, 17 offices, 300 new projects per year
MULTI-TECHNOLOGIES, A UNIQUE EXPERTISE
More than 35 technological partnerships, the highest level of recognition for most
OPEN SOURCE INTEGRATOR
9
SMILE, MUCH MORE THAN A SIMPLE INTEGRATOR
AMBASSADOR
•Member of APRIL and PLOSS associations
in France
•Organiser, sponsor and participant of
over 10 major events each year: Open
World Forum, CMSday, Salon Linux
Solutions…
• 30 seminars and webinars each year
•Articles and white papers regularily
published. Over 100 000 downloads per year
•Creator and host of :
open- source-guide.com
CONTRIBUTOR
Dozens of extensions and
contributions given for
TYPO3, OpenERP,
eZ Publish, Redmine,
Magento, Drupal, jQuery,
Ginco, Play! Framework…
EDITOR OF
ESIGate, TEA,
Mongogento…
10
OUR EXPERTISE AND OUR BELIEFS
ARE DETAILED IN OUR WHITE PAPERS
Web Culture
System
E-business
Content Management and DMS
ERP et Business Intelligence
OVER 100 000
DOWNLOADS PER YEAR
12
WHAT DO WE DO FOR YOU ?
CONSULTING Project Framework / Audits / Benchmark
DIGITAL Visual identity/ Ergonomics
Accessibility / Editorial
Strategy / SEO
HOSTING Hosting / Corrective and
upgrade Maintenance /
Support
TRAINING Change management
Intra and inter company training
ENGINEERING Conception / Development /
Configuration
A 360°
SERVICE FOR YOUR
PROJECTS
13
5 OFFERS FOR YOUR BUSINESS
WEB Internet sites/Web portals
Mobile and responsive design
Management of cross-media
content
Digital devices
WEB
14
5 OFFERS FOR YOUR BUSINESS
WEB
E-BUSINESS Catalogues
E-commerce platforms
Extranet client B2B
Cross channel selling and
multiple devise customer
experience
E-BUSINESS
15
5 OFFERS FOR YOUR BUSINESS
WEB
E-BUSINESS
COLLABORATIVE Intranet Portals
Enterprise Content Management
Digital Asset Management
Corporate Social Network
Research
COLLABORATIVE
16
5 OFFERS FOR YOUR BUSINESS
WEB
E-BUSINESS
COLLABORATIVE
BUSINESS INFORMATION
SYSTEMS Data Integration
Business Intelligence
ERP
Customer Relationship
Management
Big Data Management
BUSINESS
INFORMATION
SYSTEMS
17
5 OFFERS FOR YOUR BUSINESS
WEB
E-BUSINESS
COLLABORATIVE
BUSINESS
INFORMATION
SYSTEMS
INFRASTRUCTURE IT Asset Management
Helpdesk
Supervision
Virtualization / Private Cloud
Identity management
Messaging
INFRASTRUCTURE
18
2 – LET’S TEST !
19
CONCEPTS
Test
Ensemble d’actions permettant de valider un point précis
En général, plusieurs actions + une vérification
Le résultat est un OK ou KO (booléen)
Suite de tests
Regroupe un ensemble de tests
Représentatif d’un context fonctionnel donné (workflow de
publication, tunnel de vente,
20
POSITIONNEMENT DES TESTS D’INTERFACE
21
POSITIONNEMENT DES TESTS D’INTERFACE
22
PORTÉE DES TESTS D’INTERFACE
23
PROBLEMATIQUES TESTS FONCTIONNELS
Pour adopter le point de vue de l’utilisateur, il faut un navigateur !
Cela implique des tests manuels
Lenteur du processus
Coût prohibitif pour rejouer tous les tests
Risque de regression
Reproduction peu fiable des tests
Pas d’historique précis des tests
24
SELENIUM
Selenium regroupe différents produits Open Source (Apache 2.0)
et gratuits (Donate ;-)) :
Selenium IDE
Enregistre des scénarios de test depuis Firefox
Rejoue des scénarios enregistrés
Selenium Server
Serveur distant de manipulation de navigateur
Selenium WebDriver
API pour le développement de scénarios dans différents langages :
Java, C#, Python, Ruby, PHP, Perl, JS
Connexion et pilotage de Selenium Server
25
SELENIUM - COÛTS
Sur un projet significatif (> plusieurs centaines de jours)
Les tests durent longtemps (la durée d’affichage cumulée !)
Un seul peut s’exécuter à la fois
Un serveur dédié doit être déployé
Charges usuelles
Un coût d’initialisation dérisoire (à partir d’une VM déjà configurée)
10% du temps de développement pour obtenir un code coverage de
70% avec les tests d’interface
oDonnées de test des TU réutilisées
oMasse de code inférieure et par nature isolée
Coût de possession 2x plus élevé pour les TI TMA plus coûteuse
Le TCO étant très élevé, on vise une couverture des
fonctionnalités critiques pour trouver un ROI satisfaisant
26
SELENIUM – CONCEPTS
Fonctionnement
Prend le contrôle du navigateur
Réalise exactement les mêmes actions qu’un humain (clic, saisie,
etc.)
3 types d’opérations réalisées par Selenium
Actions : réalise une action dans le navigateur
Accessors : accède au contenu affiché par le navigateur
Assertions : vérifie une condition particulière sur un contenu
27
SELENIUM – CONCEPTS
Pour cibler un élément de contenu, Selenium offre des Locators
Par ID : btnAddToCart
Par XPath : //input[name=‘myButton42’]
Par son texte (pour les liens) : link=Logout
Par une expression JavaScript DOM : document.images[42]
Attention à ne pas introduire de couplage trop fort !!!
Très mauvais exemple : //div/div/form/input[4]
DEMO Selenium IDE
29
SELENIUM – LIMITATIONS DE SELENIUM IDE
Commandes Selenium IDE assez simplistes. C’est tout de même
suffisant pour la vaste majorité des cas.
Limité à Firefox, aïe…
Aujourd’hui il faut être compatible Firefox, Chrome, Safari et Internet
Explorer
Selenium WebDriver + Selenium Server !
Permet de piloter Selenium depuis un langage de programmation
oComplexité de test illimitée
o Intégration aux frameworks de tests (JUnit, PHPUnit, TestNG, etc.)
o Intégration au cycle de vie projet (versionning, livraison, etc.)
Possibilité d’exporter les scénarios de Selenium IDE en code
Lancement des tests sur un ou plusieurs navigateurs !
30
SELENIUM REMOTE – ARCHITECTURE
DEMO Selenium WebDriver + Server
32
AUTOMATISATION
DES TESTS
33
AUTOMATISATION DES TESTS - OBJECTIFS
Correction
Test
Diagnostic
Facilite l’execution des tests (tâche automatique)
Réduit le delta entre création et détection de bug,
et donc la durée de diagnostique
Permet à quelqu’un de non-technique de
lancer les tests (mode “push-button”)
Garantie l’invariabilité et l’exhaustivité des tests au cours du
temps
Permet à l’humain de n’intervenir là il y a de la valeur-ajoutée
Création de nouveaux tests
Diagnostics en cas d’erreurs
34
AUTOMATISATION DES TESTS - PIC
Les plateformes d’intégrations continue (PIC)
Récupération de la dernière version des sources
Build du projet
Relance l’ensemble des tests (si au moins une modification a eu lieu)
Envoi (mail, jabber, SMS, etc.) d’un rapport en cas de test en erreur :
o Dernière modification effectuée
o Test(s) en erreur
o Auteur de la modification…
PIC Open Source
Jenkins / CruiseControl / Continuum
35
AUTOMATISATION DES TESTS - JENKINS
Jenkins résulte d’un fork de Hudson (Oracle) suite à une petite
dispute ;-)
La communauté est énorme (>500 contributeurs)
Eco-système de plugins très riche (>1000 plugins)
o Support de beaucoup de technologies (Java, Ruby, PHP, etc.)
oGamification
o Thèmes / UI
o Tâches complexes
o Etc.
Système de build distribué très performant
36
AUTOMATISATION DES TESTS - JENKINS
37
SUR LA ROUTE DU
TOUT AUTOMATIQUE
38
SUR LA ROUTE DU TOUT AUTOMATIQUE
Pour résumer, on peut avoir :
Des tests unitaires couvrant 70% du code
Des tests d’interface pour s’assurer des fonctionnalités critiques
Un lancement de tous ces tests dès qu’une modification du source est
effectuée
Mais pourquoi pas ne pas livrer directement en (pre-)prod ?
Continous Delivery !
Grâce à des outils de déploiement reliés au PIC, on peut boucler un
cycle complet :
Dev Commit Build T* Livrable Deploiement
39
GO BY THOUGHWORKS
40
SUR LA ROUTE DU TOUT AUTOMATIQUE
Automatisations encore peu répandues :
Des tests d’intrusion et de sécurité
o Zed Attack Proxy
Des tests de charge à mesure différentielle
oGatling ou JMeter
41
CONCLUSION
42
CONCLUSION
Tests d’interface automatisés
Simplification de la recette
Exhaustivité de la recette
Non-regression de la recette
Création d’un patrimoine de tests à forte valeur ajoutée
Déploiement serein et fiable !!
Selenium
Automatisation rapide d’un scénario pour le rejouer plusieurs fois
Intégration des tests d’interface au cycle de vie projet
Intégration aux outils de build et donc aux PIC
Attention à la qualité des tests d’interface, la rigueur requise est à la
mesure du gain obtenu
43
ET DEMAIN ?
Nous sommes dans une bascule technologique assez forte dans
le Web
Les traitements sont déportés sur le client grâce entre autre à
l’avènement des technologies JavaScript
Angular
Backbone
Amber
On bascule vers des Single Page Application (SPA), portables sur
les mobiles, avec une complexité d’interface telle que les tests
d’interface deviennent essentiels pour ne pas décevoir les
utilisateurs
44
QUESTIONS ?