Outils de test

Outil de Test : Automatisation avec Cerberus Testing

Cerberus Testing en Bref

Cerberus Testing est un framework d’automatisation de test 100% open source né en France. Son nom évoque le Cerbère, gardien des enfers et  “chien à trois têtes”. Le projet a démarré en 2010 à La Redoute pour adresser l’automatisation de tests. À l’époque, son objectif était d’être le garant de la qualité des applications avant leur mise en production. Il devait permettre des tests fonctionnels de non-régression pour trois typologies de test:  Web, API (SOAP) et base de données.

Le projet Cerberus Testing a démarré sans avoir trouvé d’outil du marché répondant au besoin. Sa première utilisation s’est focalisée sur la plateforme web, en gardant la cible de s’étendre au reste du SI. Un autre enjeu était de réconcilier les divers silos organisationnels et techniques, afin d’itérer rapidement entre le référentiel de test, leur implémentation, exécution et analyse. Un dernier objectif était de pouvoir adresser toute la chaîne de déploiement, des environnements de développement jusqu’à la production.

C’est aujourd’hui un framework d’automatisation de test plus large couvrant les tests  d’applications mobiles, APIs (REST, GraphQL, Kafka) ainsi que les clients lourds. L’interface web permet une collaboration rapprochée du métier, développeur, testeur jusqu’aux équipes de production. Il est possible d’itérer rapidement entre la définition d’un cas de test, son exécution et sa visualisation via les divers reportings disponibles en natif. 

De type KDT et incorporant une fonctionnalité de librairie, il permet de composer et maintenir rapidement des tests à l’échelle. Il permet de valider des besoins non-fonctionnels comme le temps de chargement d’une page ou les appels à des tiers au sein d’une page.

Il adresse principalement les tests fonctionnels, d’intégrations et d’interfaces focalisés sur l’automatisation de la non-régression. Il incorpore la capacité de faire des tests manuels et d’exécuter les tests en parallèle, sans avoir une vocation au test de performance. Basé sur des briques ouvertes et matures comme Selenium, Appium et Sikuli, l’adaptation et maintenance des tests est facilitée. 

Le framework supporte le test en white-box ou black-box, permettant par exemple d’effectuer des tests bout en bout via des actions navigateurs, appels d’APIs et vérifications en base de données. Les fonctionnalités de collecte de données du navigateur, traçabilité (e.g. screenshots, vidéos) et de planification permettent de mettre en place des tests réguliers en production.

Après 3 ans de développement, la volonté de partage et d’extension s’est matérialisée par le passage en open source du produit. Cela a permis de créer une communauté animée sur slack, et d’atteindre plus de 6000 commits avec une trentaine de contributeurs. 

Plusieurs intégrations clefs sont disponibles en CI/CD (Jenkins, Bitbucket, Azure DevOps), de  fermes de tests en local ou en distant (Selenium Grid, Appium Hub). Il est également possible de recevoir des notifications par email ou Slack à diverses  étapes d’exécution des campagnes de test. Les APIs publiques et la documentation permettent d’accélérer l’extensibilité de la plateforme.

Points forts et points faibles de Cerberus Testing

Les points forts

  • La collaboration facilitée entre métier et IT autour de l’interface web tout en un, de la définition des cas de tests jusqu’à leur exécution et pilotage grâce aux tableaux de bords nativement intégrés (reporting, analytics, gestion d’anomalies)
  • La capacité d’itérer rapidement sur le cycle d’implémentation de tests, tout en maîtrisant la maintenance, grâce à une librairie d’actions, contrôles et jeux de données 
  • Le framework 100% open-source en KDT facilitant l’utilisation et la maintenance étant basé sur des briques ouvertes comme Selenium, Appium.
  • La couverture transversale des tests : web (dont cross-browser), application mobile, APIs, client lourd, base de données
  • La possibilité de faire du test ou bout-en-bout pouvant combiner des actions web, mobile mais aussi des appels d’APIs ou de base de données
  • Le découplage entre les cas de test et ses environnements, qui permet á un même cas de test d’être exécuté sur plusieurs pays, environnements techniques (qa, uat, etc)
  • L’intégration possible avec des fermes de test locales ou distantes, permettant d’exécuter des tests en parallèle et à l’échelle
  • La gestion des campagnes de tests qui peuvent être intégrées en CI/CD sur les principales plateformes (Jenkins, Azure DevOps, BitBucket, …) ou planifiées.
  • Les divers niveaux de traçabilité disponibles dont capture d’écran, vidéo et la collecte des données du navigateur (e.g. appels tiers), avec capacité de rejeu manuel ou automatique

Les points faibles

  • Une interface qui demanderait à être plus intuitive pour les non initiés afin d’utiliser tout le potentiel de la solution
  • Le référentiel de test est centralisé dans Cerberus, sans fournir d’intégration avec des référentiel de tests externes (Xray/JIRA
  • Pas de capacité de recording sur une interface web ou mobile, même s’il est possible de faire un import depuis Selenium IDE

Conclusion

Cerberus Testing permet d’accéder à l’automatisation de test sur une interface web facilitant la collaboration. La solution a également été éprouvée dans divers contextes d’entreprise validant son usage, scalabilité et performance (La Redoute, Décathlon, Leroy Merlin, TF1, …). 

Développée et maintenue 100% open-source, elle permet de bénéficier d’un framework mature co-construit avec la communauté. Le besoin de développement ou de maintenance en interne  disparaît, libérant du temps précieux pour l’effort de qualité. 

La capacité à tester de multiples interfaces (web, mobile, API, …), techniques de test (fonctionnel, intégration, …) dans les différents environnements permet de répondre à la majeure partie des use-cases. L’exécution des tests reste flexible en local ou distant, planifiée ou intégrée dans une chaine d’intégration continue.

Son utilisation requiert un temps d’adaptation afin de bénéficier de toutes les fonctionnalités disponibles. La définition des cas de tests en modules réutilisables nécessite une conception et implémentation initiale, compensée par une rapidité d’implémentation et de maintenance par la suite.

À propos de l’auteur: Antoine Craske

Passionné par l’architecture, la transformation et les technologies. Convaincu que la qualité logicielle est un pilier structurant de la performance des solutions et qu’elle doit s’adresser en transverse. En quête d’apprentissage, amélioration continue et partage de pratiques efficaces et applicables. Convaincu que l’open source et la collaboration transverse peuvent nous permettre de trouver plus rapidement des solutions concrètes à des problèmes communs.

Une réponse

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Automatisation

Outil de test: Automatisez des tests E2E avec MFA à travers GetMyMFA – Jonathan Bernales

Introduction GetMyMFA est une plateforme permettant d’accéder de façon programmatique ou web aux codes Multi-Facteurs envoyés par votre plateforme que ce soit via SMS, email ou applications lors de flux d’authentification ou de validation de transactions. Pour ce faire, GetMyMFA met à disposition des téléphones virtuels, des mailboxes ou des

Lire la suite »
Agilité

Les testeurs sont-ils préparés pour les compétences du 21e siècle ?

Il y a quelques semaines, Ard Kramer et moi avons entamé une conversation sur les compétences du 21 ème siècle pour les testeurs et nous nous demandons dans quelle mesure les testeurs appliquent déjà ces compétences ou ils sont entrain d’apprendre ces compétences ?

Nous nous sommes donc demandé si vous vouliez partager vos histoires sur les compétences suivantes; communication, collaboration, esprit critique et créativité.

Nous cherchons des histoires en anglais et en français afin de pouvoir créer le premier livre de test logiciel bilingue !

Lire la suite »
Test entouré de nombreux mots qui décrive ce concept
Agilité

Le test en image (8)

Le shift right est le fait de continuer à tester/mersurer même en production afin d’avoir des retours sur le comportement du logiciel en production: Le Scrum et le Kanban, chaque méthodologie a ses forces et ses faiblesses: L’automatisation de ses cas de test ne se fait pas par hasard. C’est

Lire la suite »