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
Merci pour cet article informatif !