philippe de oliveiraclubutilisateursoracle.org/wp-content/uploads/2015/03/...selenium webdriver +...

Post on 23-May-2020

16 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

Automatisation Des Tests

D’Interface

PHILIPPE DE OLIVEIRA

2

WHO AM I ?

PHILIPPE DE OLIVEIRA Directeur Technique 01 41 40 59 17 philippe.deoliveira@smile.fr 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

11

OUR REFERENCES

63% OF CAC 40

COMPANIES HAVE TRUSTED US

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 ?

top related