Le contexte
Un ensemble de tests existants mais peu valorisés
Notre client commande un audit externe sur le code d’un projet C++ d’envergure, de manière a obtenir des certitudes sur la valeur du projet et sa capacité à aller en production.
Un des problèmes relevés par l’audit est l’absence de test automatisés, et donc l’absence de métriques de couverture de code. L’audit recommandait une couverture de tests d’au moins 80 % pour un projet de cette taille, mais les tests déjà écrits n’étaient pas exécutés
automatiquement, rendant difficile de savoir à quel point les tests déjà réalisés couvraient effectivement le code. Afin d’obtenir ces informations et une vision plus étayée sur la portée des tests existants, le client nous a sollicité pour mettre en place une CI/CD.
Le client ayant sélectionné GitLab pour déployer ses pipelines, mais utilise actuellement BitBucket qu’il souhaite remplacer.
La solution
Intégration continue des tests et analyse de couverture de code
Nous avons installé GitLab et importé le contenu de l’instance BitBucket dans GitLab.
Nous avons procédé à l’automatisation de l’exécution des tests unitaires existants en suivant une approche DevOps dans un processus d’intégration continue (CI).
Suite à cela, nous avons configuré des outils complémentaires comme l’analyse statique de code et une infrastructure de tests d’intégration. Un système d’analyse de couverture de code a été déployé pour fournir des statistiques globales ainsi que des rapports automatiques plus détaillés, indiquant quelles parties du code sont couvertes ou non par des tests.
Cette solution a été entièrement intégrée dans la forge GitLab, permettant ainsi une gestion fluide et continue du processus de tests.
Les résultats
Une meilleure visibilité et une expérience de développement améliorée
L’automatisation des tests dans le cadre de l’intégration continue a amélioré l’expérience de développement pour notre client.
Il peut désormais détecter les régressions avant leur intégration au projet. L’intégration des mesures de couverture de code assure également que tout nouveau code est correctement testé, tout en facilitant l’ajout de tests supplémentaires pour atteindre une couverture de 80 %.
Les métriques de couverture de code offrent un aperçu global de l’efficacité des tests existants et mettent en lumière les zones non couvertes. Notre client est apte à cibler précisément les améliorations à apporter. La qualité de son code est renforcée.
La prestation s’est très bien passée et a débouché sur une prestation en assistance technique pour architecture logicielle, DevOps, intégration.