From Milking Machines to the Airbus: Measuring Code Coverage for C, C++, Java and C# with a single tool.
From Milking Machines to the Airbus - nowadays Software is everywhere.
In order to improve the quality, the software needs to be tested. Code Coverage shows the extend of the tests.
Measuring Code Coverage in Automotive, Railway, Aerospace and other safety-critical industries is mandatory by the standards like ISO 26262, DO-178C, EN 50128. But also for other applications Code Coverage is highly recommended in order to achieve good code quality.
Many companies are using Testwell CTC++ for measuring the code coverage.
The conformance to safety standards is one reason for the prevalence of Testwell CTC++ Test Coverage Analyzer, but there are various other reasons to use this tool.
Why companies choose Testwell CTC++ instead of other coverage tools?
Let’s investigate the reasons in detail. For this purpose we have extensively interviewed our customers and came up with a bunch of reasons.
Having a Code Coverage Tool across the languages C, C++, Java, and C# is one of the reasons.
Companies, which have software applications in all four languages, prefer to have one tool with consistent reports throughout the development.
Speaking of report consistency: There are companies, which used different Unit Test Tools historically in different teams.
How to find a common denominator?
Testwell CTC++ is the answer. No matter what Unit Test Tool the team is using, all the results can be quickly gathered in a human-readable HTML-Report of Testwell CTC++. The speed of this report generation is also worth mentioning.
So let us imagine that a company starts developing its embedded software in C. They decide to use a Code Coverage for C in this department (Department A). Other department (Department B) develops in C# and chooses its own coverage tool because the first one only works for C and C++. Applications development in Java are being launched later in other department (Department C). A third code coverage tool is being acquired.
One day department A starts working with a new compiler (let’s say Keil compiler) and they find out that their Code Coverage tool does not work with this compiler... and if it works, a new license has to be bought for working with this particular compiler...
Such scenarios happen really often, as especially big companies are divided into multiple developer teams (often across the globe) which make own decisions and purchase tools independently from each other.
So Testwell CTC++ is often chosen to measure code coverage and to act as a common denominator in terms of coverage reports.
Testwell CTC++ Test Coverage Analyzer is also the solution for the problem of various compilers: due to its location in the toolchain, the compiler does not matter for Testwell CTC++. It is working with all compilers.
With Testwell CTC++ the usually small size of the target also does not matter: the so-called bit-cov add-on of Testwell CTC++ allows to measure code coverage on very small targets.
Thanks to the low instrumentation overhead of Testwell CTC++, the tool is also used for very large code bases. Testwell CTC++ does often the job on the entire code base, whereas companies which are using other tools are forced to divide the code basis into parts in order to measure the code coverage.