C# and C++ code coverage - Coverage Validator 9.43

Coverage Validator is a code coverage software tool for use by software developers and software quality assurance testers using .Net, .Net Core (C#, VB.Net, etc) and native language compilers (C, C++, Delphi, VB6, Fortran etc).

Use Coverage Validator to:

  • Determine code coverage for your software projects.
  • Identify untested functions in your unit tests.
  • Improve your software quality testing with interactive, real-time, code coverage displays.
  • Merge code coverage data to provide aggregate code coverage results for all your unit tests.
  • Command line API to support automated code coverage testing (Jenkins, etc).
  • Create code coverage reports for your regression tests and overnight builds.
  • Generate code coverage reports at the same time as creating unit tests reports.

2 Minute Video

Interactive code coverage is a snap with Coverage Validator.


Coverage Validator provides many displays to provide you with more insight into the data you have collected.

Easy to use

To use Coverage Validator all you need is debugging information for your application and Coverage Validator can get to work.

You do not need to modify your software, recompile or relink your software to use Coverage Validator.

  • Launch your application with Coverage Validator.
  • Run your application as normal.
  • Optional: Examine the code coverage statistics that Coverage Validator generates as your application runs. The data updates in real time.
  • Close your application.
  • Examine the code coverage statistics after your application has finished.

Easy to read data displays show you the code coverage as your application executes. You do not need to wait until your application has finished to view statistics for any function, file or DLL. The displays can be filtered to show you only the information that you want to work with.

Code coverage summary view

Detailed, colour coded source code shows at-a-glance which functions and lines have been visited and how many times each line has been visited. These displays update in real time as your application runs.

Code coverage source code detail


Coverage Validator can be configured to collect all data or just the data you need. Powerful filters for collecting data and for displaying collected data give you maximum flexibility and control over how much CPU time is spent and how much memory is used collecting data allowing you to choose how much effort is put into a given task.


Coverage Validator provides an API for using Coverage Validator with services for the case when Coverage Validator cannot inject into a service because of Windows NT security privileges preventing the injection (typically for services running at Administrator or system level).


The default options of Coverage Validator provide code coverage for all DLLs and files in your application that have debugging information. If you wish to only create coverage reports for selected DLLs, or exclude certain file types or even specific classes and methods, Coverage Validator has filtering capabilities to allow such customisation.

Code exclusion

Sometimes however, there are sections of code that you would like to exclude code coverage statistics for but traditional filters cannot do the job. This is often case when you want to exclude some error handling code from your coverage testing. Coverage Validator allows you to include markers in your source code comments to indicate which parts of your code to exclude.

In the picture below you can see that an ASSERT(0); has been excluded (line 105) as has a for-next loop (lines 112-118).

Code coverage exclusion pragmas

Code coverage data merging

If you’re like many companies you’ve probably got a short test suite, an overnight test suite and a multi-day test suite. Each suite consists of many tests and you’re wondering how to get code coverage for all of them.

Coverage Validator supports this by allowing code coverage results to be merged in real time to a central session as each code coverage test is run, or for code coverage results to be merged into a session of your choice after the fact. The merged code coverage results can be reset manually or automatically when the target executable get updated (changes timestamp or changes name). All of this can be controlled via the user interface and via the command line, providing you with complete control over the process.

Exporting code coverage data

Coverage Validator provides powerful HTML and XML reporting capabilities, allowing you to produce overnight code coverage reports if you use Coverage Validator as part of regression testing strategy.

Cobertura XML export is also supported allowing you to continue working with tools that import Cobertura data formats.


Coverage Validator works with compilers from:

Vendor Language Compiler / IDE
Microsoft C++, C, Visual Basic 6, C#, VB.Net, J#, F#, .Net, .Net Core Visual Studio
Intel C++, C, Fortran Intel Performance Compiler, Intel Fortran
Embarcadero C++, C, Delphi C++ Builder, Delphi, Rad Studio
MinGW C++, C g++ / gcc
LLVM C++, C Clang
Qt C++, C QtCreator
Metrowerks C++, C Code Warrior
Salford Software Fortran 95 Fortran 95

We support many versions of Visual Studio: Visual Studio 2022, 2019, 2017, 2015, 2013, 2012, 2010, 2008, 2005, 2003, 2002 and Visual Studio 6 are supported.

All 64 bit (x64) and 32 bit (x86) Windows operating systems from Windows 11 to Windows XP are supported.

For more details, please consult the compatibility feature list.

.Net and .Net Core

If you’re using .Net and/or .Net Core, Coverage Validator supports these technologies.

If you’re also using native code with your .Net applications, we’ve also got that covered, mixed mode applications are supported.

Applications, services, web servers

Coverage Validator works with applications, services and IIS/Web Development Server, both native and mixed-mode .Net.

Regression test support

As well as the traditional code coverage role that Coverage Validator performs, Coverage Validator can be used for interactive code coverage testing and for creating code coverage reports automatically as part of a regression test suite and/or overnight build.

Command Line

Coverage Validator also allows you to automate code coverage collection by launching Coverage Validator from the command line.

A full range of command line options allow you to perform unattended code coverage with Coverage Validator, complete with HTML export, XML export and Cobertura XML export, to facilitate regression testing as part of your overnight builds.

Example 1 Launch an application, when the application completes save the results and refresh some displays.

coverageValidator.exe -program "c:\myProgram.exe"
                      -saveSession "c:\myResults\session1.tvm"
                      -displayUI -refreshSummary -refreshLocks -refreshActiveObjects

Example 2 Launch an application, when the application completes merge the coverage results with the loaded session and save the merged results.

coverageValidator.exe -program "c:\myProgram.exe" -directory "c:\testarea" -hideUI
                      -loadSession "c:\myResults\session1.cvm"
                      -saveMergeResult "c:\myResults\session2.cvm"

Example 3 Merge results from previous sessions.

coverageValidator.exe -hideUI
                      -loadSession "c:\myResults\session1.cvm"
                      -loadSession2 "c:\myResults\session2.cvm"
                      -saveMergeResult "c:\myResults\session1+2.cvm"

Software Updates

We update our software tools on a regular basis – on average about 26 updates per year. Updates are optional, you only need to download the most recent update to be up-to-date.

You can set up automatic software updates using the credentials we supply to you when you purchase. Automatic software updates can be setup to check daily, weekly, monthly or never.

Fully functional, free for 30 days