SlideShare une entreprise Scribd logo
Cerberus
Qu’est-ce que c’est ?
Application web.
Développée à La Redoute en 2011 puis portée en Open source.
Code source et documentation disponible sur github et sourceforge :
https://github.com/cerberustesting
Près de 3900 commits par 15 contributeurs
Base des tests centralisées.
Automate multi-technologies
(Web, Application Mobile, Client Lourd, HTTP, SOAP, Rest, SQL…)
Multi-environnements (DEV, QA, UAT, PROD….)
Multi-langages (FR, UK, RU, IT, PL, …)
Présentation
D’où ça vient ?
• De la nécessité d’accélérer la qualification des livraisons
temps
risque
tempsItérations courtes
Itérations longues
 L’automatisation des tests est nécessaire dans une organisation qui tend à être agile.
Oui mais : Pas de tests automatisés = Pas de retour rapide = Risque accru à chaque MEP.
Evolution du risque de régression vs le nombre de mise en production
La méthodologie DevOps est une démarche visant à créer de la valeur
business en impliquant tous les acteurs du développement logiciel au
travers de courtes itérations et reconnais la valeur en étroite
collaboration, constitué d’expérimentation et de retour rapide.
D’où ça vient ?
• De l’expérience acquise lors de l’automatisation des premiers tests.
Le gain de productivité dû à l’automatisation peut rapidement se transformer en perte à cause de la maintenabilité
des tests.
La duplication des étapes de tests rend le maintien des tests long et fastidieux
 Mise en place de librairie de fonction de test, réutilisable par d’autres tests.
Le jeu de données se périme d’un projet à l’autre
 Définition des données centralisées et jeu de donnée récupéré dynamiquement.
D’où ça vient ?
• De l’apprentissage des échecs des premières mise en production.
Avec des tests réalisés uniquement côté développeurs, il y a un risque d’augmenter le nombre de tests sans
améliorer la couverture fonctionnelle.
Nombre de tests importants Mais les fonctions principale non couvertes
La couverture fonctionnelle vue par le développeur peut être limité.
 La définition de la couverture fonctionnelle doit être apportée par le métier.
100%
OK 404
D’où ça vient ?
• Du constat des limites d’une organisation classique dite « en silo ».
Habituellement rédigés après le démarrage des développements, les tests ne servent pas à la compréhension de ce
qui est attendu .
D’où un nombre important d’aller retour
Les tests rédigés après le démarrage du développement sont bien souvent inutiles aux développeurs.
 Les tests doivent être rédigé au plus tôt, idéalement en parallèle et en appui de la spécification
fonctionnelle.
Les tests doivent être utilisables dès leur rédaction, avant même d’être automatisé.
 Les tests peuvent être exécutés manuellement ou automatiquement et peuvent faire partir du
même rapport.
Pourquoi faire ?
Référentiel de test commun aux
différents acteurs du
développement.
Description en langage métier
Factorisation des librairies de tests
par les utilisateurs métiers
Standardisation de la rédaction des
tests
Automatiser les tests, quelque
soit la technologie.
Web (via Selenium)
Application mobile (via Appium)
Applis lourdes (sikuli)
Web-services (xml unit)
Databases (connecteurs sql - jdbc)
Constituer une librairie de
données de tests.
Création de jeux de test
centralisés
Automatisation de la génération
de la donnée de test
Piloter la recette
Tableaux de bord de suivi
d’exécution d’une campagne.
Analyse et diagnostique
Lien avec différents outils de
ticketing.
Métier / AMOA
Définition des cas de tests.
Exécution de tests manuels.
Pilotage de la recette.
Développement
Automatisation des tests.
Qualification / Recette
Automatisation des tests.
Animation de la démarche.
Exécution des tests.
Data management
Définition du jeu de données.
Validation de la gouvernance des
données.
Intégration / Production
Exécution des tests de non
regression.
Pourquoi faire ?
Les échanges autour des tests et des jeux de données se font au travers de Cerberus
Comment l’utiliser ?
Comment faire ?
La définition des cas de tests.
• Qui ?
Le métier, la maîtrise d’ouvrage.
• Où ?
Dans les champs « description » des cas de
test
• Comment ?
Suivant le cadre défini (Actions/Contrôles).
En utilisant les Données et Etapes de Libraires.
• Quand ?
Au plus tôt dans le projet.
Idéalement parallèlement à la spécification fonctionnelle.
Comment faire ?
L’automatisation des tests.
• Qui ?
Les développeurs, l’équipe de qualification.
• Où ?
Dans les champs « script » des cas de test
• Comment ?
Suivant le cadre défini
• Quand ?
Durant la phase de développement.
Au moment où l’on défini les interfaces utilisateurs.
Comment faire ?
La définition du jeu de données.
• Qui ?
Les développeurs, l’équipe IT.
• Où ?
Dans la librairie de donnée
• Comment ?
En définissant les règles de récupération de
la donnée.
Le jeu de données peut être fixe ou récupéré via SQL, WebService, CSV, HTTP….
• Quand ?
Durant la phase de développement.
Comment faire ?
L’exécution manuelle des tests.
• Qui ?
Tous les acteurs du projet.
• Où ?
Dans la page d’exécution de
Cerberus.
• Comment ?
Possibilité de définir le statut à chaque action
• Quand ?
Durant la recette.
Comment faire ?
L’exécution automatique des tests.
• Qui ?
Tous les acteurs du projet.
• Où ?
Depuis la page d’exécution de
Cerberus.
Ou via une API Rest
• Comment ?
Lancé depuis l’interface, ou depuis la chaine d’intégration.
• Quand ?
Durant la recette.
Comment faire ?
Le pilotage de la recette.
• Qui ?
Les développeurs, l’équipe de qualification, le métier.
Tous les acteurs du projet
• Où ?
Dans la page de rapport de Cerberus
• Comment ?
Suivi des statuts d’exécution.
Interfaçage avec les outils de ticketing (ouverture
automatique de ticket).
• Quand ?
Durant la phase de recette.
Et ça marche ?
La Redoute :
Sur le périmètre www.laredoute.xx (sur 10 pays) :
 4500Tests lancés 2x par jours.
 4 Mises en production par semaine pour chacune des applications.
Vélocité de création grandissante avec le temps (de part l’utilisation de librairie)
Evolution du périmètre des TNRs
Aout 2014
Démarrage du
nouveau site
180 Tests
Aout 2015
2000 Tests
Janvier 2016
2900 Tests
Janvier
2017
4500 Tests
Un autre usage
Le monitoring fonctionnel
Un autre usage : Le monitoring fonctionnel
Exécution de tests
fonctionnels
•(Exemple : 10 scenarii toutes les 5 minutes)
Capture des
données
techniques
•Temps de réponse par action
•Network Trafic au format HAR pour les application web
Exploitation des
données
•Exposition de service permettant d’alerter sur un status
KO
•Publication des données possible dans Elastic Search
/Kibana
•Business Activity Monitoring
Un autre usage : Le monitoring fonctionnel
Mettre sous contrôle les scenarii clés :
Homepage / Authentification / Creation de compte / Accès aux page principales / Page List / Page Produit /
Comparaison / Panier / Delivery / Paiement
A une fréquence pertinente :
Toutes les 5 minutes durant 21h
>> Soit environ 24.000.000 étapes annuelles pour 1 application
 Décorréler les coûts de mise en place du monitoring de la fréquence d’exécution permet d’éviter le
compromis coût versus qualité nécessaire.
Intégration de Cerberus dans le SI
Intégration de Cerberus dans le SI
Cerberus est capable d’interagir avec de nombreux outils du SI;
Oracle SQL
MySQL
PostGreSQL
DB2
Microsoft SQLServer
SSAS
Peut être déclenché par n’importe quel Scheduler.
• Via 1 api REST
• $U, cron, Jenkins….
• Exécution d’un test ou d’une campagne
Push vers Jenkins le statut d’exécution d’une campagne.
• OK/KO pour go/no go
Push vers ES/Kibana
Ouverture de ticket automatique.
• Dans Mantis ou Redmine
• Transmission des information du cas de test
S’interface à Centreon
Permet de lire et d’écrire dans tous type de base de données
Intégration de Cerberus dans le SI
Architecture
1 à n serveurs d’application
Actif / Actif
(Glassfish / Tomcat / Jboss)
Base de données
Actif/Passif
(MySQL / MariaDB)
1 à n robots
Selenium / Sikuli
(Pour les tests de GUI)
Intégration de Cerberus dans le SI
Architecture : Pour un bon POC
Caractéristiques technique :
1 VM (Linux)
8 vCPU
16 GB RAM
200 Go Espace disque
Applicatif :
MySQL (v5.6.xx)
Glassfish 4.1.1
Caractéristiques technique :
3 VM (Linux)
2 vCPU
4 GB RAM
10 Go Espace disque
Applicatif :
Selenium server
Firefox
Intégration de Cerberus dans le SI
Installation
Manuelle
Classique, un composant à la fois
Scripts disponibles dans le projet.
Automatisée
Grâce aux images et compositions Docker disponibles
https://github.com/cerberustesting/cerberus-docker
A venir…
Road Map 2017
https://github.com/cerberustesting/cerberus-source/issues
• Refactoring de l’interface graphique (95% Fait)
• Bootstrap
• Internationalisation
• « Pluginisation » des modules métiers et techniques
• Généricité
• Modularité
• Interfaçage avec Jmeter
• Centralisation des tests de charge
• Génération des JMX
• Pilotage des exécutions
• Gestion du versionning des Cas deTests
• Extensions des images et compositions Docker
• Déjà fait : ELK, Cerberus, Selenium
• A venir : Guacamole
Les contributeurs et utilisateurs
• Aujourd’hui, de multiples optimisations sont proposées par des contributeurs de plus en plus
nombreux.
Et parmi eux :

Contenu connexe

Tendances

1 ma ruza-uchun_taqdimot_materiallari
1 ma ruza-uchun_taqdimot_materiallari1 ma ruza-uchun_taqdimot_materiallari
1 ma ruza-uchun_taqdimot_materiallari
ferghanasoft
 
Cloud penetration testing
Cloud penetration testingCloud penetration testing
Cloud penetration testing
vericlouds11
 
Packet sniffing
Packet sniffingPacket sniffing
Packet sniffing
Shyama Bhuvanendran
 
Native, Web or Hybrid Mobile App Development?
Native, Web or Hybrid Mobile App Development?Native, Web or Hybrid Mobile App Development?
Native, Web or Hybrid Mobile App Development?
Sura Gonzalez
 
Webservices Overview : XML RPC, SOAP and REST
Webservices Overview : XML RPC, SOAP and RESTWebservices Overview : XML RPC, SOAP and REST
Webservices Overview : XML RPC, SOAP and REST
Pradeep Kumar
 
Learn web development: Front-end vs Back-end development
Learn web development: Front-end vs Back-end developmentLearn web development: Front-end vs Back-end development
Learn web development: Front-end vs Back-end development
puneetbatra24
 
Accelerate Quality with Postman - Basics
Accelerate Quality with Postman - BasicsAccelerate Quality with Postman - Basics
Accelerate Quality with Postman - Basics
Knoldus Inc.
 
Data Centre Evolution: Securing Your Journey to the Cloud
Data Centre Evolution: Securing Your Journey to the CloudData Centre Evolution: Securing Your Journey to the Cloud
Data Centre Evolution: Securing Your Journey to the Cloud
Trend Micro (EMEA) Limited
 
Chapter 4
Chapter 4Chapter 4
Chapter 4
Amy McMullin
 
Joomla CMS SEMINAR PPT
Joomla CMS SEMINAR PPTJoomla CMS SEMINAR PPT
Joomla CMS SEMINAR PPT
Pinky Mondal
 
Chatbot development with Microsoft Bot Framework
Chatbot development with Microsoft Bot FrameworkChatbot development with Microsoft Bot Framework
Chatbot development with Microsoft Bot Framework
Md. Mahedee Hasan
 
API-first design - Basis for an consistent API-Management approach
API-first design - Basis for an consistent API-Management approachAPI-first design - Basis for an consistent API-Management approach
API-first design - Basis for an consistent API-Management approach
Sven Bernhardt
 
Fortinet
FortinetFortinet
Fortinet
ABEP123
 
MOBILE APPLICATIONS DEVELOPMENT -ANDROID BY SIVASANKARI
MOBILE APPLICATIONS DEVELOPMENT -ANDROID BY SIVASANKARIMOBILE APPLICATIONS DEVELOPMENT -ANDROID BY SIVASANKARI
MOBILE APPLICATIONS DEVELOPMENT -ANDROID BY SIVASANKARI
SivaSankari36
 
VMware vSphere 6.0 - Troubleshooting Training - Day 5
VMware vSphere 6.0 - Troubleshooting Training - Day 5VMware vSphere 6.0 - Troubleshooting Training - Day 5
VMware vSphere 6.0 - Troubleshooting Training - Day 5
Sanjeev Kumar
 
PPT Companion to Android
PPT Companion to AndroidPPT Companion to Android
PPT Companion to Android
Dharani Kumar Madduri
 
DevSecOps
DevSecOpsDevSecOps
DevSecOps
Spv Reddy
 
Low code vs. No code: Which is better for web and app development?
Low code vs. No code: Which is better for web and app development?Low code vs. No code: Which is better for web and app development?
Low code vs. No code: Which is better for web and app development?
Devathon
 
NMAP - The Network Scanner
NMAP - The Network ScannerNMAP - The Network Scanner
NMAP - The Network Scanner
n|u - The Open Security Community
 
ckan 2.0: Harvesting from other sources
ckan 2.0: Harvesting from other sourcesckan 2.0: Harvesting from other sources
ckan 2.0: Harvesting from other sources
Chengjen Lee
 

Tendances (20)

1 ma ruza-uchun_taqdimot_materiallari
1 ma ruza-uchun_taqdimot_materiallari1 ma ruza-uchun_taqdimot_materiallari
1 ma ruza-uchun_taqdimot_materiallari
 
Cloud penetration testing
Cloud penetration testingCloud penetration testing
Cloud penetration testing
 
Packet sniffing
Packet sniffingPacket sniffing
Packet sniffing
 
Native, Web or Hybrid Mobile App Development?
Native, Web or Hybrid Mobile App Development?Native, Web or Hybrid Mobile App Development?
Native, Web or Hybrid Mobile App Development?
 
Webservices Overview : XML RPC, SOAP and REST
Webservices Overview : XML RPC, SOAP and RESTWebservices Overview : XML RPC, SOAP and REST
Webservices Overview : XML RPC, SOAP and REST
 
Learn web development: Front-end vs Back-end development
Learn web development: Front-end vs Back-end developmentLearn web development: Front-end vs Back-end development
Learn web development: Front-end vs Back-end development
 
Accelerate Quality with Postman - Basics
Accelerate Quality with Postman - BasicsAccelerate Quality with Postman - Basics
Accelerate Quality with Postman - Basics
 
Data Centre Evolution: Securing Your Journey to the Cloud
Data Centre Evolution: Securing Your Journey to the CloudData Centre Evolution: Securing Your Journey to the Cloud
Data Centre Evolution: Securing Your Journey to the Cloud
 
Chapter 4
Chapter 4Chapter 4
Chapter 4
 
Joomla CMS SEMINAR PPT
Joomla CMS SEMINAR PPTJoomla CMS SEMINAR PPT
Joomla CMS SEMINAR PPT
 
Chatbot development with Microsoft Bot Framework
Chatbot development with Microsoft Bot FrameworkChatbot development with Microsoft Bot Framework
Chatbot development with Microsoft Bot Framework
 
API-first design - Basis for an consistent API-Management approach
API-first design - Basis for an consistent API-Management approachAPI-first design - Basis for an consistent API-Management approach
API-first design - Basis for an consistent API-Management approach
 
Fortinet
FortinetFortinet
Fortinet
 
MOBILE APPLICATIONS DEVELOPMENT -ANDROID BY SIVASANKARI
MOBILE APPLICATIONS DEVELOPMENT -ANDROID BY SIVASANKARIMOBILE APPLICATIONS DEVELOPMENT -ANDROID BY SIVASANKARI
MOBILE APPLICATIONS DEVELOPMENT -ANDROID BY SIVASANKARI
 
VMware vSphere 6.0 - Troubleshooting Training - Day 5
VMware vSphere 6.0 - Troubleshooting Training - Day 5VMware vSphere 6.0 - Troubleshooting Training - Day 5
VMware vSphere 6.0 - Troubleshooting Training - Day 5
 
PPT Companion to Android
PPT Companion to AndroidPPT Companion to Android
PPT Companion to Android
 
DevSecOps
DevSecOpsDevSecOps
DevSecOps
 
Low code vs. No code: Which is better for web and app development?
Low code vs. No code: Which is better for web and app development?Low code vs. No code: Which is better for web and app development?
Low code vs. No code: Which is better for web and app development?
 
NMAP - The Network Scanner
NMAP - The Network ScannerNMAP - The Network Scanner
NMAP - The Network Scanner
 
ckan 2.0: Harvesting from other sources
ckan 2.0: Harvesting from other sourcesckan 2.0: Harvesting from other sources
ckan 2.0: Harvesting from other sources
 

Similaire à Cerberus Testing

[Scrum Day 2011] Outillage Agile dans un environnement Microsoft
[Scrum Day 2011] Outillage Agile dans un environnement Microsoft[Scrum Day 2011] Outillage Agile dans un environnement Microsoft
[Scrum Day 2011] Outillage Agile dans un environnement Microsoft
Christophe HERAL
 
Dev opsday case study
Dev opsday   case studyDev opsday   case study
Dev opsday case study
Radoine Douhou
 
Keynote DevOps - Microsoft DevOps Day 2014 in Paris
Keynote DevOps - Microsoft DevOps Day 2014 in ParisKeynote DevOps - Microsoft DevOps Day 2014 in Paris
Keynote DevOps - Microsoft DevOps Day 2014 in Paris
Jason De Oliveira
 
Dossier de competences MA
Dossier de competences MADossier de competences MA
Dossier de competences MA
Clementine D.
 
Automatisation des tests - objectifs et concepts - partie 2
Automatisation des tests  - objectifs et concepts - partie 2Automatisation des tests  - objectifs et concepts - partie 2
Automatisation des tests - objectifs et concepts - partie 2
Christophe Rochefolle
 
Agile Tour Paris 2014 : Ma stack d'outils Agiles, tout un programme !, Cedric...
Agile Tour Paris 2014 : Ma stack d'outils Agiles, tout un programme !, Cedric...Agile Tour Paris 2014 : Ma stack d'outils Agiles, tout un programme !, Cedric...
Agile Tour Paris 2014 : Ma stack d'outils Agiles, tout un programme !, Cedric...
ENSIBS
 
Introduction à DevOps
Introduction à DevOpsIntroduction à DevOps
Introduction à DevOps
Microsoft
 
Usine Logicielle 2013
Usine Logicielle 2013Usine Logicielle 2013
Usine Logicielle 2013
Stéphane Liétard
 
Industrialisation des développements logiciels
Industrialisation des développements logicielsIndustrialisation des développements logiciels
Industrialisation des développements logiciels
Sylvain Leroy
 
Performance ug#1
Performance ug#1Performance ug#1
Performance ug#1
Marc Bojoly
 
Ma stack d'outils agiles, tout un programme !
Ma stack d'outils agiles, tout un programme !Ma stack d'outils agiles, tout un programme !
Ma stack d'outils agiles, tout un programme !
Cédric Leblond
 
Scub Foundation, usine logicielle Java libre
Scub Foundation, usine logicielle Java libreScub Foundation, usine logicielle Java libre
Scub Foundation, usine logicielle Java libre
Stéphane Traumat
 
Industrialisez vos projets Php
Industrialisez vos projets Php Industrialisez vos projets Php
Industrialisez vos projets Php
ALTER WAY
 
20080923 04 - Selenium web application testing system
20080923 04 - Selenium web application testing system20080923 04 - Selenium web application testing system
20080923 04 - Selenium web application testing system
LeClubQualiteLogicielle
 
2009-09-15 Squale au Paris JUG
2009-09-15 Squale au Paris JUG2009-09-15 Squale au Paris JUG
2009-09-15 Squale au Paris JUG
Fabrice Bellingard
 
L’informatique efficience
L’informatique efficienceL’informatique efficience
L’informatique efficience
Michel Bruchet
 
Introduction aux spécifications exécutables (dit aussi atdd, bdd)
Introduction aux spécifications exécutables (dit aussi atdd, bdd)Introduction aux spécifications exécutables (dit aussi atdd, bdd)
Introduction aux spécifications exécutables (dit aussi atdd, bdd)
Jean-Pierre Lambert
 
Présentation DEVOPS_Kola.pptx
Présentation DEVOPS_Kola.pptxPrésentation DEVOPS_Kola.pptx
Présentation DEVOPS_Kola.pptx
ssuserf298861
 
Capacity Planning : Pratiques et outils pour regarder la foudre tomber sans p...
Capacity Planning : Pratiques et outils pour regarder la foudre tomber sans p...Capacity Planning : Pratiques et outils pour regarder la foudre tomber sans p...
Capacity Planning : Pratiques et outils pour regarder la foudre tomber sans p...
Normandy JUG
 

Similaire à Cerberus Testing (20)

[Scrum Day 2011] Outillage Agile dans un environnement Microsoft
[Scrum Day 2011] Outillage Agile dans un environnement Microsoft[Scrum Day 2011] Outillage Agile dans un environnement Microsoft
[Scrum Day 2011] Outillage Agile dans un environnement Microsoft
 
Dev opsday case study
Dev opsday   case studyDev opsday   case study
Dev opsday case study
 
Keynote DevOps - Microsoft DevOps Day 2014 in Paris
Keynote DevOps - Microsoft DevOps Day 2014 in ParisKeynote DevOps - Microsoft DevOps Day 2014 in Paris
Keynote DevOps - Microsoft DevOps Day 2014 in Paris
 
Dossier de competences MA
Dossier de competences MADossier de competences MA
Dossier de competences MA
 
Automatisation des tests - objectifs et concepts - partie 2
Automatisation des tests  - objectifs et concepts - partie 2Automatisation des tests  - objectifs et concepts - partie 2
Automatisation des tests - objectifs et concepts - partie 2
 
Agile Tour Paris 2014 : Ma stack d'outils Agiles, tout un programme !, Cedric...
Agile Tour Paris 2014 : Ma stack d'outils Agiles, tout un programme !, Cedric...Agile Tour Paris 2014 : Ma stack d'outils Agiles, tout un programme !, Cedric...
Agile Tour Paris 2014 : Ma stack d'outils Agiles, tout un programme !, Cedric...
 
Introduction à DevOps
Introduction à DevOpsIntroduction à DevOps
Introduction à DevOps
 
Usine Logicielle 2013
Usine Logicielle 2013Usine Logicielle 2013
Usine Logicielle 2013
 
Industrialisation des développements logiciels
Industrialisation des développements logicielsIndustrialisation des développements logiciels
Industrialisation des développements logiciels
 
Performance ug#1
Performance ug#1Performance ug#1
Performance ug#1
 
Ma stack d'outils agiles, tout un programme !
Ma stack d'outils agiles, tout un programme !Ma stack d'outils agiles, tout un programme !
Ma stack d'outils agiles, tout un programme !
 
Scub Foundation, usine logicielle Java libre
Scub Foundation, usine logicielle Java libreScub Foundation, usine logicielle Java libre
Scub Foundation, usine logicielle Java libre
 
Industrialisez vos projets Php
Industrialisez vos projets Php Industrialisez vos projets Php
Industrialisez vos projets Php
 
20080923 04 - Selenium web application testing system
20080923 04 - Selenium web application testing system20080923 04 - Selenium web application testing system
20080923 04 - Selenium web application testing system
 
2009-09-15 Squale au Paris JUG
2009-09-15 Squale au Paris JUG2009-09-15 Squale au Paris JUG
2009-09-15 Squale au Paris JUG
 
Perf university
Perf universityPerf university
Perf university
 
L’informatique efficience
L’informatique efficienceL’informatique efficience
L’informatique efficience
 
Introduction aux spécifications exécutables (dit aussi atdd, bdd)
Introduction aux spécifications exécutables (dit aussi atdd, bdd)Introduction aux spécifications exécutables (dit aussi atdd, bdd)
Introduction aux spécifications exécutables (dit aussi atdd, bdd)
 
Présentation DEVOPS_Kola.pptx
Présentation DEVOPS_Kola.pptxPrésentation DEVOPS_Kola.pptx
Présentation DEVOPS_Kola.pptx
 
Capacity Planning : Pratiques et outils pour regarder la foudre tomber sans p...
Capacity Planning : Pratiques et outils pour regarder la foudre tomber sans p...Capacity Planning : Pratiques et outils pour regarder la foudre tomber sans p...
Capacity Planning : Pratiques et outils pour regarder la foudre tomber sans p...
 

Cerberus Testing

  • 2. Qu’est-ce que c’est ? Application web. Développée à La Redoute en 2011 puis portée en Open source. Code source et documentation disponible sur github et sourceforge : https://github.com/cerberustesting Près de 3900 commits par 15 contributeurs Base des tests centralisées. Automate multi-technologies (Web, Application Mobile, Client Lourd, HTTP, SOAP, Rest, SQL…) Multi-environnements (DEV, QA, UAT, PROD….) Multi-langages (FR, UK, RU, IT, PL, …)
  • 4. D’où ça vient ? • De la nécessité d’accélérer la qualification des livraisons temps risque tempsItérations courtes Itérations longues  L’automatisation des tests est nécessaire dans une organisation qui tend à être agile. Oui mais : Pas de tests automatisés = Pas de retour rapide = Risque accru à chaque MEP. Evolution du risque de régression vs le nombre de mise en production La méthodologie DevOps est une démarche visant à créer de la valeur business en impliquant tous les acteurs du développement logiciel au travers de courtes itérations et reconnais la valeur en étroite collaboration, constitué d’expérimentation et de retour rapide.
  • 5. D’où ça vient ? • De l’expérience acquise lors de l’automatisation des premiers tests. Le gain de productivité dû à l’automatisation peut rapidement se transformer en perte à cause de la maintenabilité des tests. La duplication des étapes de tests rend le maintien des tests long et fastidieux  Mise en place de librairie de fonction de test, réutilisable par d’autres tests. Le jeu de données se périme d’un projet à l’autre  Définition des données centralisées et jeu de donnée récupéré dynamiquement.
  • 6. D’où ça vient ? • De l’apprentissage des échecs des premières mise en production. Avec des tests réalisés uniquement côté développeurs, il y a un risque d’augmenter le nombre de tests sans améliorer la couverture fonctionnelle. Nombre de tests importants Mais les fonctions principale non couvertes La couverture fonctionnelle vue par le développeur peut être limité.  La définition de la couverture fonctionnelle doit être apportée par le métier. 100% OK 404
  • 7. D’où ça vient ? • Du constat des limites d’une organisation classique dite « en silo ». Habituellement rédigés après le démarrage des développements, les tests ne servent pas à la compréhension de ce qui est attendu . D’où un nombre important d’aller retour Les tests rédigés après le démarrage du développement sont bien souvent inutiles aux développeurs.  Les tests doivent être rédigé au plus tôt, idéalement en parallèle et en appui de la spécification fonctionnelle. Les tests doivent être utilisables dès leur rédaction, avant même d’être automatisé.  Les tests peuvent être exécutés manuellement ou automatiquement et peuvent faire partir du même rapport.
  • 8. Pourquoi faire ? Référentiel de test commun aux différents acteurs du développement. Description en langage métier Factorisation des librairies de tests par les utilisateurs métiers Standardisation de la rédaction des tests Automatiser les tests, quelque soit la technologie. Web (via Selenium) Application mobile (via Appium) Applis lourdes (sikuli) Web-services (xml unit) Databases (connecteurs sql - jdbc) Constituer une librairie de données de tests. Création de jeux de test centralisés Automatisation de la génération de la donnée de test Piloter la recette Tableaux de bord de suivi d’exécution d’une campagne. Analyse et diagnostique Lien avec différents outils de ticketing.
  • 9. Métier / AMOA Définition des cas de tests. Exécution de tests manuels. Pilotage de la recette. Développement Automatisation des tests. Qualification / Recette Automatisation des tests. Animation de la démarche. Exécution des tests. Data management Définition du jeu de données. Validation de la gouvernance des données. Intégration / Production Exécution des tests de non regression. Pourquoi faire ? Les échanges autour des tests et des jeux de données se font au travers de Cerberus
  • 11. Comment faire ? La définition des cas de tests. • Qui ? Le métier, la maîtrise d’ouvrage. • Où ? Dans les champs « description » des cas de test • Comment ? Suivant le cadre défini (Actions/Contrôles). En utilisant les Données et Etapes de Libraires. • Quand ? Au plus tôt dans le projet. Idéalement parallèlement à la spécification fonctionnelle.
  • 12. Comment faire ? L’automatisation des tests. • Qui ? Les développeurs, l’équipe de qualification. • Où ? Dans les champs « script » des cas de test • Comment ? Suivant le cadre défini • Quand ? Durant la phase de développement. Au moment où l’on défini les interfaces utilisateurs.
  • 13. Comment faire ? La définition du jeu de données. • Qui ? Les développeurs, l’équipe IT. • Où ? Dans la librairie de donnée • Comment ? En définissant les règles de récupération de la donnée. Le jeu de données peut être fixe ou récupéré via SQL, WebService, CSV, HTTP…. • Quand ? Durant la phase de développement.
  • 14. Comment faire ? L’exécution manuelle des tests. • Qui ? Tous les acteurs du projet. • Où ? Dans la page d’exécution de Cerberus. • Comment ? Possibilité de définir le statut à chaque action • Quand ? Durant la recette.
  • 15. Comment faire ? L’exécution automatique des tests. • Qui ? Tous les acteurs du projet. • Où ? Depuis la page d’exécution de Cerberus. Ou via une API Rest • Comment ? Lancé depuis l’interface, ou depuis la chaine d’intégration. • Quand ? Durant la recette.
  • 16. Comment faire ? Le pilotage de la recette. • Qui ? Les développeurs, l’équipe de qualification, le métier. Tous les acteurs du projet • Où ? Dans la page de rapport de Cerberus • Comment ? Suivi des statuts d’exécution. Interfaçage avec les outils de ticketing (ouverture automatique de ticket). • Quand ? Durant la phase de recette.
  • 17. Et ça marche ? La Redoute : Sur le périmètre www.laredoute.xx (sur 10 pays) :  4500Tests lancés 2x par jours.  4 Mises en production par semaine pour chacune des applications. Vélocité de création grandissante avec le temps (de part l’utilisation de librairie) Evolution du périmètre des TNRs Aout 2014 Démarrage du nouveau site 180 Tests Aout 2015 2000 Tests Janvier 2016 2900 Tests Janvier 2017 4500 Tests
  • 18. Un autre usage Le monitoring fonctionnel
  • 19. Un autre usage : Le monitoring fonctionnel Exécution de tests fonctionnels •(Exemple : 10 scenarii toutes les 5 minutes) Capture des données techniques •Temps de réponse par action •Network Trafic au format HAR pour les application web Exploitation des données •Exposition de service permettant d’alerter sur un status KO •Publication des données possible dans Elastic Search /Kibana •Business Activity Monitoring
  • 20. Un autre usage : Le monitoring fonctionnel Mettre sous contrôle les scenarii clés : Homepage / Authentification / Creation de compte / Accès aux page principales / Page List / Page Produit / Comparaison / Panier / Delivery / Paiement A une fréquence pertinente : Toutes les 5 minutes durant 21h >> Soit environ 24.000.000 étapes annuelles pour 1 application  Décorréler les coûts de mise en place du monitoring de la fréquence d’exécution permet d’éviter le compromis coût versus qualité nécessaire.
  • 22. Intégration de Cerberus dans le SI Cerberus est capable d’interagir avec de nombreux outils du SI; Oracle SQL MySQL PostGreSQL DB2 Microsoft SQLServer SSAS Peut être déclenché par n’importe quel Scheduler. • Via 1 api REST • $U, cron, Jenkins…. • Exécution d’un test ou d’une campagne Push vers Jenkins le statut d’exécution d’une campagne. • OK/KO pour go/no go Push vers ES/Kibana Ouverture de ticket automatique. • Dans Mantis ou Redmine • Transmission des information du cas de test S’interface à Centreon Permet de lire et d’écrire dans tous type de base de données
  • 23. Intégration de Cerberus dans le SI Architecture 1 à n serveurs d’application Actif / Actif (Glassfish / Tomcat / Jboss) Base de données Actif/Passif (MySQL / MariaDB) 1 à n robots Selenium / Sikuli (Pour les tests de GUI)
  • 24. Intégration de Cerberus dans le SI Architecture : Pour un bon POC Caractéristiques technique : 1 VM (Linux) 8 vCPU 16 GB RAM 200 Go Espace disque Applicatif : MySQL (v5.6.xx) Glassfish 4.1.1 Caractéristiques technique : 3 VM (Linux) 2 vCPU 4 GB RAM 10 Go Espace disque Applicatif : Selenium server Firefox
  • 25. Intégration de Cerberus dans le SI Installation Manuelle Classique, un composant à la fois Scripts disponibles dans le projet. Automatisée Grâce aux images et compositions Docker disponibles https://github.com/cerberustesting/cerberus-docker
  • 27. Road Map 2017 https://github.com/cerberustesting/cerberus-source/issues • Refactoring de l’interface graphique (95% Fait) • Bootstrap • Internationalisation • « Pluginisation » des modules métiers et techniques • Généricité • Modularité • Interfaçage avec Jmeter • Centralisation des tests de charge • Génération des JMX • Pilotage des exécutions • Gestion du versionning des Cas deTests • Extensions des images et compositions Docker • Déjà fait : ELK, Cerberus, Selenium • A venir : Guacamole
  • 28. Les contributeurs et utilisateurs • Aujourd’hui, de multiples optimisations sont proposées par des contributeurs de plus en plus nombreux. Et parmi eux :