Le contexte
Un ensemble de tests existants mais peu valorisés
Lors d’un audit externe sur la qualité du code d’un projet C++ d’envergure, notre client a pris conscience d’un problème majeur : 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 il était 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 un système d’analyse de couverture de code, directement intégré à sa forge GitLab.
La solution
Intégration continue des tests et analyse de couverture de code
Nous avons procédé à l’automatisation de l’exécution des tests unitaires existants en suivant une approche DevOps. Nous avons intégré ces tests dans un processus d’intégration continue (CI), avec 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.