SlideShare une entreprise Scribd logo
1  sur  28
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

ZabbixのAPIを使って運用を楽しくする話
ZabbixのAPIを使って運用を楽しくする話ZabbixのAPIを使って運用を楽しくする話
ZabbixのAPIを使って運用を楽しくする話Masahito Zembutsu
 
Project Loom - 限定継続と軽量スレッド -
Project Loom - 限定継続と軽量スレッド - Project Loom - 限定継続と軽量スレッド -
Project Loom - 限定継続と軽量スレッド - Yuichi Sakuraba
 
AWSのログ管理ベストプラクティス
AWSのログ管理ベストプラクティスAWSのログ管理ベストプラクティス
AWSのログ管理ベストプラクティスAkihiro Kuwano
 
Docker道場「Dockerの基本概念」0825インフラ勉強会資料
Docker道場「Dockerの基本概念」0825インフラ勉強会資料Docker道場「Dockerの基本概念」0825インフラ勉強会資料
Docker道場「Dockerの基本概念」0825インフラ勉強会資料Masahito Zembutsu
 
Java8から17へ
Java8から17へJava8から17へ
Java8から17へonozaty
 
GoによるWebアプリ開発のキホン
GoによるWebアプリ開発のキホンGoによるWebアプリ開発のキホン
GoによるWebアプリ開発のキホンAkihiko Horiuchi
 
広告がうざい
広告がうざい広告がうざい
広告がうざいGen Ito
 
Wip prをやってみた
Wip prをやってみたWip prをやってみた
Wip prをやってみたAkira Suenami
 
DatadogでAWS監視やってみた
DatadogでAWS監視やってみたDatadogでAWS監視やってみた
DatadogでAWS監視やってみたtyamane
 
PHP-FPM の子プロセス制御方法と設定をおさらいしよう
PHP-FPM の子プロセス制御方法と設定をおさらいしようPHP-FPM の子プロセス制御方法と設定をおさらいしよう
PHP-FPM の子プロセス制御方法と設定をおさらいしようShohei Okada
 
IoT と時系列データと Elasticsearch | Data Pipeline Casual Talk Vol.4
IoT と時系列データと Elasticsearch | Data Pipeline Casual Talk Vol.4IoT と時系列データと Elasticsearch | Data Pipeline Casual Talk Vol.4
IoT と時系列データと Elasticsearch | Data Pipeline Casual Talk Vol.4SORACOM,INC
 
ソーシャルアプリにおけるRedisの活用事例とトラブル事例
ソーシャルアプリにおけるRedisの活用事例とトラブル事例ソーシャルアプリにおけるRedisの活用事例とトラブル事例
ソーシャルアプリにおけるRedisの活用事例とトラブル事例leverages_event
 
OpenID Connect 入門 〜コンシューマーにおけるID連携のトレンド〜
OpenID Connect 入門 〜コンシューマーにおけるID連携のトレンド〜OpenID Connect 入門 〜コンシューマーにおけるID連携のトレンド〜
OpenID Connect 入門 〜コンシューマーにおけるID連携のトレンド〜Masaru Kurahayashi
 
入門core.async
入門core.async入門core.async
入門core.asyncsohta
 
XXE、SSRF、安全でないデシリアライゼーション入門
XXE、SSRF、安全でないデシリアライゼーション入門XXE、SSRF、安全でないデシリアライゼーション入門
XXE、SSRF、安全でないデシリアライゼーション入門Hiroshi Tokumaru
 
Apache Arrow Flight – ビッグデータ用高速データ転送フレームワーク #dbts2021
Apache Arrow Flight – ビッグデータ用高速データ転送フレームワーク #dbts2021Apache Arrow Flight – ビッグデータ用高速データ転送フレームワーク #dbts2021
Apache Arrow Flight – ビッグデータ用高速データ転送フレームワーク #dbts2021Kouhei Sutou
 
HATETRISを攻略するAIを作る
HATETRISを攻略するAIを作るHATETRISを攻略するAIを作る
HATETRISを攻略するAIを作るthreepipes_s
 

Tendances (20)

ZabbixのAPIを使って運用を楽しくする話
ZabbixのAPIを使って運用を楽しくする話ZabbixのAPIを使って運用を楽しくする話
ZabbixのAPIを使って運用を楽しくする話
 
Keycloakの動向
Keycloakの動向Keycloakの動向
Keycloakの動向
 
Project Loom - 限定継続と軽量スレッド -
Project Loom - 限定継続と軽量スレッド - Project Loom - 限定継続と軽量スレッド -
Project Loom - 限定継続と軽量スレッド -
 
AWSのログ管理ベストプラクティス
AWSのログ管理ベストプラクティスAWSのログ管理ベストプラクティス
AWSのログ管理ベストプラクティス
 
Docker道場「Dockerの基本概念」0825インフラ勉強会資料
Docker道場「Dockerの基本概念」0825インフラ勉強会資料Docker道場「Dockerの基本概念」0825インフラ勉強会資料
Docker道場「Dockerの基本概念」0825インフラ勉強会資料
 
Java8から17へ
Java8から17へJava8から17へ
Java8から17へ
 
GoによるWebアプリ開発のキホン
GoによるWebアプリ開発のキホンGoによるWebアプリ開発のキホン
GoによるWebアプリ開発のキホン
 
広告がうざい
広告がうざい広告がうざい
広告がうざい
 
What’s new in cloud run 2021 後期
What’s new in cloud run 2021 後期What’s new in cloud run 2021 後期
What’s new in cloud run 2021 後期
 
Wip prをやってみた
Wip prをやってみたWip prをやってみた
Wip prをやってみた
 
DatadogでAWS監視やってみた
DatadogでAWS監視やってみたDatadogでAWS監視やってみた
DatadogでAWS監視やってみた
 
Keycloakのステップアップ認証について
Keycloakのステップアップ認証についてKeycloakのステップアップ認証について
Keycloakのステップアップ認証について
 
PHP-FPM の子プロセス制御方法と設定をおさらいしよう
PHP-FPM の子プロセス制御方法と設定をおさらいしようPHP-FPM の子プロセス制御方法と設定をおさらいしよう
PHP-FPM の子プロセス制御方法と設定をおさらいしよう
 
IoT と時系列データと Elasticsearch | Data Pipeline Casual Talk Vol.4
IoT と時系列データと Elasticsearch | Data Pipeline Casual Talk Vol.4IoT と時系列データと Elasticsearch | Data Pipeline Casual Talk Vol.4
IoT と時系列データと Elasticsearch | Data Pipeline Casual Talk Vol.4
 
ソーシャルアプリにおけるRedisの活用事例とトラブル事例
ソーシャルアプリにおけるRedisの活用事例とトラブル事例ソーシャルアプリにおけるRedisの活用事例とトラブル事例
ソーシャルアプリにおけるRedisの活用事例とトラブル事例
 
OpenID Connect 入門 〜コンシューマーにおけるID連携のトレンド〜
OpenID Connect 入門 〜コンシューマーにおけるID連携のトレンド〜OpenID Connect 入門 〜コンシューマーにおけるID連携のトレンド〜
OpenID Connect 入門 〜コンシューマーにおけるID連携のトレンド〜
 
入門core.async
入門core.async入門core.async
入門core.async
 
XXE、SSRF、安全でないデシリアライゼーション入門
XXE、SSRF、安全でないデシリアライゼーション入門XXE、SSRF、安全でないデシリアライゼーション入門
XXE、SSRF、安全でないデシリアライゼーション入門
 
Apache Arrow Flight – ビッグデータ用高速データ転送フレームワーク #dbts2021
Apache Arrow Flight – ビッグデータ用高速データ転送フレームワーク #dbts2021Apache Arrow Flight – ビッグデータ用高速データ転送フレームワーク #dbts2021
Apache Arrow Flight – ビッグデータ用高速データ転送フレームワーク #dbts2021
 
HATETRISを攻略するAIを作る
HATETRISを攻略するAIを作るHATETRISを攻略するAIを作る
HATETRISを攻略するAIを作る
 

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 MicrosoftChristophe HERAL
 
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 ParisJason De Oliveira
 
Dossier de competences MA
Dossier de competences MADossier de competences MA
Dossier de competences MAClementine 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 2Christophe 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 à DevOpsMicrosoft
 
Industrialisation des développements logiciels
Industrialisation des développements logicielsIndustrialisation des développements logiciels
Industrialisation des développements logicielsSylvain Leroy
 
Performance ug#1
Performance ug#1Performance ug#1
Performance ug#1Marc 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 libreSté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 systemLeClubQualiteLogicielle
 
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 JUGFabrice Bellingard
 
L’informatique efficience
L’informatique efficienceL’informatique efficience
L’informatique efficienceMichel 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.pptxssuserf298861
 
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 :