
Présentation du client
Client : RUBYCAT
Secteur d’activité : Cybersécurité
Activités : Créé en 2014, Rubycat est un éditeur de logiciel spécialisé en gestion des accès à privilèges (PAM) qui répond à un enjeu fort de cybersécurité : maîtriser et sécuriser les accès à privilèges sur les systèmes d’information.
Depuis plus de 10 ans, Rubycat développe et fait évoluer PROVE IT, son bastion d’administration qui assure aux organisations une sécurisation de leur système d’information grâce à un contrôle efficace et une traçabilité complète de leurs accès sensibles.
Avec une solution entièrement développée en interne à Rennes, Rubycat garde la maîtrise totale de ses choix techniques et s’adapte avec agilité aux besoins spécifiques de chaque entreprise.
Mission
Durée
Il s’agissait d’une mission de courte durée (50 jours, sur environ 3 mois).
Contexte
Le projet s’inscrivait dans le cadre du renouvellement du visa sécurité ANSSI “CSPN” (Certification de Sécurité de Premier Niveau) pour le produit PROVE IT, un outil de type “Bastion” édité par Rubycat.
Ce renouvellement impliquait une refonte complète de l’interface web, qui comptait des dépendances OSS qui n’étaient plus maintenues. Cette refonte avait donc un impact direct sur les tests automatiques existants qui utilisaient cette interface.
Par ailleurs, le framework de test automatique développé jusqu’à maintenant commençait à présenter des problèmes de flakiness, rendant les tests moins pertinents et les résultats difficiles à interpréter.
Enfin, ce projet était aussi l’occasion d’ajouter des tests automatiques pour augmenter la couverture de tests.
Travail réalisé
Mise en place de bonnes pratiques
Le travail a consisté dans un premier temps à stabiliser le fonctionnement du framework de test automatique qui présentait de la flakiness.
Pour cela, j’ai mis en place les différentes bonnes pratiques suivantes :
- Outillage qualité de code dans la CI
- Ajout du linter et formateur https://robocop.dev/
- Détection du code “mort” avec l’outil https://github.com/Lakitna/robotframework-find-unused
- Ajout du linter et formateur Ruff
- Ajout de Tests unitaires sur le code Python
- Robustesse et maintenance du framework de test automatique
- Meilleure implémentation du “Page Object Model”
- Découpage plus précis : Separation of Concern (SoC)
- Utilisation des “Promises” pour limiter la flakiness
- Factorisation et nettoyage du code de test
- Monitoring des résultats :
- Remontée d’information sur l’environnement d’exécution grâce aux Metadata de Robot Framework
- Ajout du mode Tracing et de la capture vidéo de Playwright afin de faciliter le debug des tests
Migration des tests sur la nouvelle interface
J’ai ensuite réalisé la migration des tests vers la nouvelle interface graphique de l’outil PROVE IT. Cette migration était nécessaire pour l’obtention du visa de sécurité ANSSI CSPN.
Cette migration a permis plusieurs choses :
- Faire repasser les tests auto sur la nouvelle interface de PROVE IT afin d’assurer la non-régression
- Améliorer le découpage du code de tests grâce au Page Object Model
- Utiliser des sélecteurs UI plus robustes en migrant de la stratégie XPath vers les Roles ou les locateurs CSS lorsqu’il n’y avait pas de data-testid
- Ajouter, en collaboration avec les développeurs front, des data-testid permettant de rendre plus robuste le choix des sélecteurs
Ajout de tests automatiques
Cette mission a été l’opportunité d’ajouter de nouveaux tests de bout-en-bout.
J’ai choisi notamment d’automatiser des scénarios critiques permettant de vérifier le coeur de métier de PROVE IT à savoir la gestion des accès à privilèges. Ces scénarios de bout-en-bout ont été mis au point en collaboration avec l’équipe chargée de l’accompagnement des clients après-vente. En effet, il s’agissait de reprendre les tests que cette équipe réalise dans le cadre du déploiement de la solution avec les clients, et de les exécuter plus tôt dans la phase de développement. Ceci s’inscrit dans une démarche de “Shift left” qui permet de diminuer le risque de problème chez les clients, d’augmenter la fiabilité de la solution et aussi la confiance du Client.
J’ai de plus automatisé les tests de déploiement (installation et update) grâce à un pipeline d’Intégration Continue en réutilisant les pipelines de déploiements et de tests automatiques existants (mode “downstream”).
Résultats obtenus
- Détection et correction de régressions dues au passage à la nouvelle interface
- Suppression de la flakiness des tests automatiques qui auparavant représentait environ 10% des résultats
- Sécurisation des scénarios les plus critiques pour diminuer le risque de problème chez les clients, augmenter la fiabilité et la confiance dans le produit
- Augmentation de la couverture de tests auto de 20%
- Gain de temps sur les tests de déploiement : le fonctionnement de l’update dans différentes configurations est testé en continu (nightly) de manière automatique
- Investigation plus rapide des tests en échec grâce au mode tracing et aux vidéos
Témoignage client
« L’accompagnement d’Alexis Pallier nous a permis d’améliorer notre stratégie d’industrialisation des tests de bout en bout pour notre produit PROVE IT.
En 50 jours, l’expérience d’Alexis a eu un impact majeur sur notre maturité tant technique qu’organisationnelle. Sans son accompagnement cela nous aurait pris plusieurs mois en interne. »
– Jonathan CLAIREMBAULT (CTO de RUBYCAT)

Laisser un commentaire