In the fast-paced world of electronic design automation (EDA) software development, maintaining high code quality while adhering to tight deadlines is a significant challenge. Code coverage, an essential metric in software testing, measures the extent to which a software’s source code is executed in tests. High code coverage is indicative of thorough testing, suggesting a lower likelihood of undiscovered bugs. However, achieving and maintaining this can be resource-intensive and time-consuming. This is why AnaCov, our proprietary software code coverage solution, became a game-changer for Siemens EDA’s Caibre software. EDA users should have confidence in their supplier’s ability to meet very high software quality standards, so we invite you to learn more about how we do it.
AnaCov: The concept
We developed the sophisticated AnaCo tool to facilitate code coverage testing by mapping test cases to functions and source files. It utilizes coverage data obtained from GCOV, stored in Git repositories, and operates within an SQL database framework. This innovative approach allows quality assurance (QA) engineers to efficiently track and analyze code coverage over time. The primary goal is to ensure comprehensive testing while minimizing the use of time and disk space.
Why a tool like AnaCov is needed for modern software testing
As software becomes increasingly complex, the need for effective testing methods has never been more critical. Traditional approaches to code coverage can often lead to significant consumption of disk space and processing time, particularly when dealing with large volumes of test cases. AnaCov addresses these challenges by providing a streamlined, efficient method for tracking and analyzing code coverage.
AnaCov’s core features
- Resource Optimization: AnaCov is designed to manage large-scale testing efficiently, reducing the time and disk space typically required for comprehensive code coverage analysis.
- User-Friendly Interface: With a single command line interface, AnaCov is accessible to users of varying expertise levels, from seasoned QA engineers to newcomers.
- Advanced Code Mapping: The tool’s ability to map test cases to specific source files and functions is crucial for targeted testing, ensuring that new code additions are thoroughly vetted.
- Versioned Coverage Tracking: AnaCov enables QA teams to track coverage over different development stages, offering insights into long-term code quality and maintenance.
The working principle of AnaCov
AnaCov operates by taking GCOV run data as input and producing detailed coverage reports. These reports highlight the percentage of code covered by tests, offering invaluable insights to developers and QA engineers. The tool’s data storage module, a central component of its functionality, comprises local storage and a database. The local storage serves as a centralized space for coverage data, enhancing accessibility and management across various projects.
AnaCov’s database component stores the coverage output data generated during code analysis. Leveraging database capabilities, it facilitates instant retrieval and utilization of coverage data, enabling informed decision-making and tracking of code coverage progress. The components of AnaCov are shown in figure 1.
AnaCov’s unique approach to coverage analysis
The philosophy behind AnaCov focuses on optimizing resources and enhancing usability. AnaCov addresses the challenge of disk space consumption by archiving only essential files needed for generating coverage reports. Its run process analyzes the codebase and the test suite to determine the extent of coverage, feeding this data into the database and potentially committing it to a Git remote repository for collaborative analysis.
One of AnaCov’s standout features is its ability to merge multiple coverage archives. This function is particularly beneficial in large-scale projects with separate coverage reports for different components. By combining these individual archives, AnaCov offers a unified view of code coverage, helping teams understand the test coverage across the entire codebase.
Incremental coverage and historical tracking
A key feature of AnaCov is its incremental coverage capability, which allows QA engineers to measure coverage for newly added or modified code, separate from the entire codebase. This feature not only speeds up the testing process but also optimizes it by focusing only on the relevant code changes.
Moreover, AnaCov incorporates a historical coverage feature using the Git version control system. This feature maintains a comprehensive record of code coverage status across different development milestones, facilitating a deeper understanding of the evolution of test coverage over time.
AnaCov’s impact on software testing
AnaCov’s introduction significantly impacts software testing, addressing critical issues faced by QA engineers and developers. Its ability to efficiently track code coverage and analyze new code additions ensures that software quality is not compromised under tight development schedules. By enabling the merging of multiple coverage reports into a single, comprehensive document, AnaCov proves to be an invaluable tool, leading to higher quality code and more efficient testing processes.
Real-world application and benefits
In practical terms, AnaCov has shown remarkable results in real-world applications. For instance, using AnaCov for the Siemens EDA Calibre product reduced the disk space for a full coverage run from 670 GB to just 20 GB. This significant reduction demonstrates AnaCov’s effectiveness in optimizing resource usage in software testing environments.
Furthermore, AnaCov’s mapping functionality is vital for efficiently conducting code coverage analysis. By establishing mappings between test cases and code components, QA engineers can easily determine which test cases cover specific source files or functions. This targeted approach saves time and resources while ensuring comprehensive code coverage.
Conclusion
The end users of complex EDA software deserve to know how their vendors ensure high-quality software. AnaCov represents a significant advancement in the field of software testing. Its innovative approach to code coverage analysis addresses the critical challenges of resource optimization, usability, and efficiency. By offering detailed insights into code coverage and enabling efficient tracking of new code additions, AnaCov plays a crucial role in improving software quality. Its integration into the software development process marks a step forward in ensuring robust, high-quality software products.
Also Read:
The secret to Calibre software quality – AnaCov, our in-house code coverage analysis tool
AnaCov – A novel method for enhancing coverage analysis
How to Find and Fix Soft Reset Metastability
Share this post via:
Comments
There are no comments yet.
You must register or log in to view/post comments.