44
Automatisation Des Tests D’Interface PHILIPPE DE OLIVEIRA

PHILIPPE DE OLIVEIRAclubutilisateursoracle.org/wp-content/uploads/2015/03/...Selenium WebDriver + Selenium Server ! Permet de piloter Selenium depuis un langage de programmation oComplexité

  • Upload
    others

  • View
    17

  • Download
    0

Embed Size (px)

Citation preview

Page 1: PHILIPPE DE OLIVEIRAclubutilisateursoracle.org/wp-content/uploads/2015/03/...Selenium WebDriver + Selenium Server ! Permet de piloter Selenium depuis un langage de programmation oComplexité

Automatisation Des Tests

D’Interface

PHILIPPE DE OLIVEIRA

Page 2: PHILIPPE DE OLIVEIRAclubutilisateursoracle.org/wp-content/uploads/2015/03/...Selenium WebDriver + Selenium Server ! Permet de piloter Selenium depuis un langage de programmation oComplexité

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

Page 3: PHILIPPE DE OLIVEIRAclubutilisateursoracle.org/wp-content/uploads/2015/03/...Selenium WebDriver + Selenium Server ! Permet de piloter Selenium depuis un langage de programmation oComplexité

3

SOMMAIRE

SMILE

LET’S TEST !

DEMO 1

DEMO 2

1

2

3

4

AUTOMATISATION

DES TESTS

TOUT AUTOMATIQUE

CONCLUSION

5

6

7

Page 4: PHILIPPE DE OLIVEIRAclubutilisateursoracle.org/wp-content/uploads/2015/03/...Selenium WebDriver + Selenium Server ! Permet de piloter Selenium depuis un langage de programmation oComplexité

4

1 – SMILE !

Page 5: PHILIPPE DE OLIVEIRAclubutilisateursoracle.org/wp-content/uploads/2015/03/...Selenium WebDriver + Selenium Server ! Permet de piloter Selenium depuis un langage de programmation oComplexité

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

Page 6: PHILIPPE DE OLIVEIRAclubutilisateursoracle.org/wp-content/uploads/2015/03/...Selenium WebDriver + Selenium Server ! Permet de piloter Selenium depuis un langage de programmation oComplexité

6

18 OFFICES

IN 8 COUNTRIES

Smile is increasing

its presence

throughout Europe

Page 7: PHILIPPE DE OLIVEIRAclubutilisateursoracle.org/wp-content/uploads/2015/03/...Selenium WebDriver + Selenium Server ! Permet de piloter Selenium depuis un langage de programmation oComplexité

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

Page 8: PHILIPPE DE OLIVEIRAclubutilisateursoracle.org/wp-content/uploads/2015/03/...Selenium WebDriver + Selenium Server ! Permet de piloter Selenium depuis un langage de programmation oComplexité

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

Page 9: PHILIPPE DE OLIVEIRAclubutilisateursoracle.org/wp-content/uploads/2015/03/...Selenium WebDriver + Selenium Server ! Permet de piloter Selenium depuis un langage de programmation oComplexité

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…

Page 10: PHILIPPE DE OLIVEIRAclubutilisateursoracle.org/wp-content/uploads/2015/03/...Selenium WebDriver + Selenium Server ! Permet de piloter Selenium depuis un langage de programmation oComplexité

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

Page 11: PHILIPPE DE OLIVEIRAclubutilisateursoracle.org/wp-content/uploads/2015/03/...Selenium WebDriver + Selenium Server ! Permet de piloter Selenium depuis un langage de programmation oComplexité

11

OUR REFERENCES

63% OF CAC 40

COMPANIES HAVE TRUSTED US

Page 12: PHILIPPE DE OLIVEIRAclubutilisateursoracle.org/wp-content/uploads/2015/03/...Selenium WebDriver + Selenium Server ! Permet de piloter Selenium depuis un langage de programmation oComplexité

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

Page 13: PHILIPPE DE OLIVEIRAclubutilisateursoracle.org/wp-content/uploads/2015/03/...Selenium WebDriver + Selenium Server ! Permet de piloter Selenium depuis un langage de programmation oComplexité

13

5 OFFERS FOR YOUR BUSINESS

WEB Internet sites/Web portals

Mobile and responsive design

Management of cross-media

content

Digital devices

WEB

Page 14: PHILIPPE DE OLIVEIRAclubutilisateursoracle.org/wp-content/uploads/2015/03/...Selenium WebDriver + Selenium Server ! Permet de piloter Selenium depuis un langage de programmation oComplexité

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

Page 15: PHILIPPE DE OLIVEIRAclubutilisateursoracle.org/wp-content/uploads/2015/03/...Selenium WebDriver + Selenium Server ! Permet de piloter Selenium depuis un langage de programmation oComplexité

15

5 OFFERS FOR YOUR BUSINESS

WEB

E-BUSINESS

COLLABORATIVE Intranet Portals

Enterprise Content Management

Digital Asset Management

Corporate Social Network

Research

COLLABORATIVE

Page 16: PHILIPPE DE OLIVEIRAclubutilisateursoracle.org/wp-content/uploads/2015/03/...Selenium WebDriver + Selenium Server ! Permet de piloter Selenium depuis un langage de programmation oComplexité

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

Page 17: PHILIPPE DE OLIVEIRAclubutilisateursoracle.org/wp-content/uploads/2015/03/...Selenium WebDriver + Selenium Server ! Permet de piloter Selenium depuis un langage de programmation oComplexité

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

Page 18: PHILIPPE DE OLIVEIRAclubutilisateursoracle.org/wp-content/uploads/2015/03/...Selenium WebDriver + Selenium Server ! Permet de piloter Selenium depuis un langage de programmation oComplexité

18

2 – LET’S TEST !

Page 19: PHILIPPE DE OLIVEIRAclubutilisateursoracle.org/wp-content/uploads/2015/03/...Selenium WebDriver + Selenium Server ! Permet de piloter Selenium depuis un langage de programmation oComplexité

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,

Page 20: PHILIPPE DE OLIVEIRAclubutilisateursoracle.org/wp-content/uploads/2015/03/...Selenium WebDriver + Selenium Server ! Permet de piloter Selenium depuis un langage de programmation oComplexité

20

POSITIONNEMENT DES TESTS D’INTERFACE

Page 21: PHILIPPE DE OLIVEIRAclubutilisateursoracle.org/wp-content/uploads/2015/03/...Selenium WebDriver + Selenium Server ! Permet de piloter Selenium depuis un langage de programmation oComplexité

21

POSITIONNEMENT DES TESTS D’INTERFACE

Page 22: PHILIPPE DE OLIVEIRAclubutilisateursoracle.org/wp-content/uploads/2015/03/...Selenium WebDriver + Selenium Server ! Permet de piloter Selenium depuis un langage de programmation oComplexité

22

PORTÉE DES TESTS D’INTERFACE

Page 23: PHILIPPE DE OLIVEIRAclubutilisateursoracle.org/wp-content/uploads/2015/03/...Selenium WebDriver + Selenium Server ! Permet de piloter Selenium depuis un langage de programmation oComplexité

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

Page 24: PHILIPPE DE OLIVEIRAclubutilisateursoracle.org/wp-content/uploads/2015/03/...Selenium WebDriver + Selenium Server ! Permet de piloter Selenium depuis un langage de programmation oComplexité

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

Page 25: PHILIPPE DE OLIVEIRAclubutilisateursoracle.org/wp-content/uploads/2015/03/...Selenium WebDriver + Selenium Server ! Permet de piloter Selenium depuis un langage de programmation oComplexité

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

Page 26: PHILIPPE DE OLIVEIRAclubutilisateursoracle.org/wp-content/uploads/2015/03/...Selenium WebDriver + Selenium Server ! Permet de piloter Selenium depuis un langage de programmation oComplexité

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

Page 27: PHILIPPE DE OLIVEIRAclubutilisateursoracle.org/wp-content/uploads/2015/03/...Selenium WebDriver + Selenium Server ! Permet de piloter Selenium depuis un langage de programmation oComplexité

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]

Page 28: PHILIPPE DE OLIVEIRAclubutilisateursoracle.org/wp-content/uploads/2015/03/...Selenium WebDriver + Selenium Server ! Permet de piloter Selenium depuis un langage de programmation oComplexité

DEMO Selenium IDE

Page 29: PHILIPPE DE OLIVEIRAclubutilisateursoracle.org/wp-content/uploads/2015/03/...Selenium WebDriver + Selenium Server ! Permet de piloter Selenium depuis un langage de programmation oComplexité

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 !

Page 30: PHILIPPE DE OLIVEIRAclubutilisateursoracle.org/wp-content/uploads/2015/03/...Selenium WebDriver + Selenium Server ! Permet de piloter Selenium depuis un langage de programmation oComplexité

30

SELENIUM REMOTE – ARCHITECTURE

Page 31: PHILIPPE DE OLIVEIRAclubutilisateursoracle.org/wp-content/uploads/2015/03/...Selenium WebDriver + Selenium Server ! Permet de piloter Selenium depuis un langage de programmation oComplexité

DEMO Selenium WebDriver + Server

Page 32: PHILIPPE DE OLIVEIRAclubutilisateursoracle.org/wp-content/uploads/2015/03/...Selenium WebDriver + Selenium Server ! Permet de piloter Selenium depuis un langage de programmation oComplexité

32

AUTOMATISATION

DES TESTS

Page 33: PHILIPPE DE OLIVEIRAclubutilisateursoracle.org/wp-content/uploads/2015/03/...Selenium WebDriver + Selenium Server ! Permet de piloter Selenium depuis un langage de programmation oComplexité

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

Page 34: PHILIPPE DE OLIVEIRAclubutilisateursoracle.org/wp-content/uploads/2015/03/...Selenium WebDriver + Selenium Server ! Permet de piloter Selenium depuis un langage de programmation oComplexité

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

Page 35: PHILIPPE DE OLIVEIRAclubutilisateursoracle.org/wp-content/uploads/2015/03/...Selenium WebDriver + Selenium Server ! Permet de piloter Selenium depuis un langage de programmation oComplexité

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

Page 36: PHILIPPE DE OLIVEIRAclubutilisateursoracle.org/wp-content/uploads/2015/03/...Selenium WebDriver + Selenium Server ! Permet de piloter Selenium depuis un langage de programmation oComplexité

36

AUTOMATISATION DES TESTS - JENKINS

Page 37: PHILIPPE DE OLIVEIRAclubutilisateursoracle.org/wp-content/uploads/2015/03/...Selenium WebDriver + Selenium Server ! Permet de piloter Selenium depuis un langage de programmation oComplexité

37

SUR LA ROUTE DU

TOUT AUTOMATIQUE

Page 38: PHILIPPE DE OLIVEIRAclubutilisateursoracle.org/wp-content/uploads/2015/03/...Selenium WebDriver + Selenium Server ! Permet de piloter Selenium depuis un langage de programmation oComplexité

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

Page 39: PHILIPPE DE OLIVEIRAclubutilisateursoracle.org/wp-content/uploads/2015/03/...Selenium WebDriver + Selenium Server ! Permet de piloter Selenium depuis un langage de programmation oComplexité

39

GO BY THOUGHWORKS

Page 40: PHILIPPE DE OLIVEIRAclubutilisateursoracle.org/wp-content/uploads/2015/03/...Selenium WebDriver + Selenium Server ! Permet de piloter Selenium depuis un langage de programmation oComplexité

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

Page 41: PHILIPPE DE OLIVEIRAclubutilisateursoracle.org/wp-content/uploads/2015/03/...Selenium WebDriver + Selenium Server ! Permet de piloter Selenium depuis un langage de programmation oComplexité

41

CONCLUSION

Page 42: PHILIPPE DE OLIVEIRAclubutilisateursoracle.org/wp-content/uploads/2015/03/...Selenium WebDriver + Selenium Server ! Permet de piloter Selenium depuis un langage de programmation oComplexité

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

Page 43: PHILIPPE DE OLIVEIRAclubutilisateursoracle.org/wp-content/uploads/2015/03/...Selenium WebDriver + Selenium Server ! Permet de piloter Selenium depuis un langage de programmation oComplexité

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

Page 44: PHILIPPE DE OLIVEIRAclubutilisateursoracle.org/wp-content/uploads/2015/03/...Selenium WebDriver + Selenium Server ! Permet de piloter Selenium depuis un langage de programmation oComplexité

44

QUESTIONS ?