Products

The secret to Calibre software quality – AnaCov, our in-house code coverage analysis tool

By Mustafa Naeem, Ahmed Tahoon, Omar Ragi, and Reem El-Adawi

In the realm of software testing, accurately tracking and analyzing source code coverage is essential for efficient bug detection. AnaCov is our proprietary software code coverage solution for dynamic software development environments.

Software testing challenges

Software development and quality assurance (QA) teams today face the challenge of balancing rapid development cycles with high code quality. In this context, code coverage is a vital metric. It measures the extent to which the source code is executed during testing, providing insights into potential gaps in the test coverage. Software and QA engineers use a number of different code coverage programs to reveal the percentage of original code covered by the regression suite. When adding new testcases for newly added code, it is crucial to ensure that the new code is fully covered by the newly created testcases without having to generate coverage reports for the entire software code. Ideally, QA engineers want to also track coverage across time quickly and with minimal disk space usage. Existing tools are limited in their ability to map test cases to source files and don’t manage a large number of testcases efficiently.

AnaCov: A comprehensive solution

This is where our innovative AnaCov code coverage tool comes into play. AnaCov addresses these challenges by offering a robust and efficient approach to code coverage analysis. It’s not just a tool but a comprehensive solution for modern software testing needs. And it’s part of the secret sauce that keeps Calibre software releases at the quality level our customers expect.

AnaCov streamlines the process of code coverage testing by using coverage data from GCOV, stored in Git repositories. It effectively maps test cases to corresponding functions and source files in an SQL database, allowing quality assurance teams to track coverage over time and test new code additions more effectively. This tool is indispensable for developers and QA engineers, aiming to improve coverage while minimizing time and disk space usage.

AnaCov is built on three main modules that facilitate efficient data management and analysis. Shown in the figure below are the data storage module, the search/query module and the historical coverage module.

Key benefits of using AnaCov

  • Advanced code mapping: By mapping test cases to specific functions and files, AnaCov enables targeted testing and comprehensive coverage analysis.
  • Resource optimization: It tackles significant issues such as disk space usage, making it ideal for large-scale software projects.
  • User-friendly interface: AnaCov’s single command line interface is designed for ease of use, catering to both seasoned professionals and newcomers in QA engineering.
  • Versioned coverage tracking: The tool provides quality assurance personnel with the ability to track changes in code coverage over time, which is crucial for long-term software maintenance and development.

Enhancing software quality with AnaCov

AnaCov plays a pivotal role in the development and testing of modern software like the Calibre Design suite. Its ability to efficiently analyze code coverage and facilitate the testing of newly added code ensures that software quality is not compromised in the rush to meet release deadlines. By enabling the merging of multiple coverage reports into a single, easy-to-analyze document, AnaCov proves to be a valuable asset for developers and QA engineers alike, leading to higher quality code delivered to customers.

Learn more by downloading the technical paper we presented at the 023 Pacific Northwest Software Quality Conference, AnaCov – A novel method for enhancing coverage analysis

Shannon Williams

Leave a Reply

This article first appeared on the Siemens Digital Industries Software blog at https://blogs.stage.sw.siemens.com/calibre/2024/03/07/the-secret-to-calibre-software-quality-anacov-our-in-house-code-coverage-analysis-tool/