Cas client : Industrialiser la qualité chez un éditeur dont le produit est certifié CSPN par l’ANSSI

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
  • 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

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