Context
Existing tests, insufficiently used
Our customer asks for an external code quality audit on a large industrial C++ project, in order to get some reassuring on its project’s strengths and ability to go in production.
One of the identified issue is the absence of automated testing and consequently absence of code coverage metrics. The audit recommended a minimum of 80% test coverage for a project of this size, but existing tests were not run automatically. That made the coverage information accessible with difficulty and not up to date.
To address this visibility gap and accurately assess the impact of current tests, the client asked us to implement some CI/CD.
The customer had selected GitLab to implement the pipelines, but then used BitBucket and wants replace it.
Our approach
CI-based test execution and automated coverage reports
We installed GitLab and migrated the BitBucket instance to GitLab.
We automated the execution of unit tests using a DevOps approach, embedding them into the project’s continuous integration (CI) pipeline.
Alongside unit testing, we implemented additional tools such ad static code analysis and an integration testing infrastructure. A code coverage analysis system was deployed to provide high-level statistics and detailed reports identifying which parts of the code were covered and which weren’t.
The entire solution was fully integrated with GitLab, enabling a smooth and continuous testing workflow.
Results
Enhanced visibility and a smoother developer experience
Automating the tests and integrating them into CI significantly improved the development workflow.
Regressions can now be detected before being merged into the main project. Code coverage tracking ensures that new code is properly tested and helps the team strategically expand their tests to meet the 80% goal.
With these metrics in place, the client gains a clear view of test efficiency and can identify gaps in coverage with precision. The result: stronger code quality, better-informed decisions and a development team with the tools to move faster and smarter.
The project went on very successfully, and continued on with
additional architecture, DevOps, integration work with our team.