Want to see Parasoft in action? Sign up for our Monthly Demos! See Demos & Events >>

X
C/C++ Unit Testing

C/C++ Unit Testing Tool

Powered by Parasoft C/C++test, the most complete development testing solution for C and C++

Unit Testing on Host and Target for C and C++ Applications

With Parasoft C/C++test’s complete framework for C++ and C unit testing, developers get everything they need to create, execute, and maintain tests. Integrating with leading IDEs, Parasoft C/C++test’s unit testing features include multi-metric code coverage analysis, a powerful stubbing and C mocking framework, and automated cross-platform execution. These features are easy to use, reduce the burden of implementing the unit testing framework, and improve developers’ productivity.

How Does It Work?

With a combination of convenient graphical editors and views, Parasoft C/C++test is used by developers who want to quickly build and execute their test cases, and by testers who benefit from its graphical editors.

Unit testing modules in Parasoft C/C++test include the Test Case Explorer, Test Case Editor, Stubs View, and Coverage View, which come together to simplify unit test creation and results from the analysis. Users can quickly discover untested C/C++ code, locate unsatisfied stub call expectations, and find failed assertions. You can make corrections right away from the views in which the problem is located.

Users optimize their testing efforts by analyzing merged coverage results (from previous tests, build-by-build) that present data generated from system and unit level testing. The Coverage View can be synchronized with the Test Case Explorer to present filtered data for any arbitrary selection of test cases.

Suitable for use in large organizations and in small teams. Users can either review their work directly in the IDE or aggregate team-wide, test-driven efforts for further post-processing, reporting, and advanced analytics through Parasoft’s web interface. From there, teams can generate interactive reports with traceability between requirements, source, and test cases.

Features

Unit testing is easier and more productive when used together with stubbing and mocking test frameworks. Parasoft C/C++test provides a powerful module for automatically creating stubs and mocks. This module can assist with fault injection testing, help reduce dependencies of the tested C/C++ code, or simply stub out not-yet-implemented source code. Stub and mock logic is efficiently implemented using dedicated graphical editors or by typing code.

The C/C++test stubbing framework does not require any special code design to apply stubs (such as virtual functions) and is supported for all compilers, including cross-compilers.

Comprehensive code coverage reports automatically provide information about the thoroughness of the unit testing process (and are required to achieve compliance with functional-safety standards). Parasoft C/C++test supports all important types of code coverage, including statement, branch, and MC/DC coverage types.

Dedicated coverage views are closely integrated with the source code editor and test case explorer, allowing developers to quickly understand coverage gaps and focus their effort based on areas of risk. Merging coverage results from different test sessions (including from system-level testing) enables teams to focus their tests on untested code and tests impacted by recent code changes. The result is reduced time spent on testing.

Parasoft C/C++test makes unit testing easier by simplifying the process of test case creation. With its easy-to-understand GUI, Parasoft C/C++test reduces technical barriers, allowing testers or QA staff, who don’t necessarily have deep development skills, to create unit tests.

Users can easily build advanced test scenarios by defining a collection of steps responsible for various elements of test scenario implementation, such as parameter initialization, stubs configuration, or assertion validation. Users with large test vectors recorded during a model simulation phase or during real-world experiments can easily connect those data sources to parameterize test cases, which fetch test inputs and outputs directly from CSV files or XLS spreadsheets.

Developers who prefer to create test cases and stubs by writing the source code instead of using a graphical interface can use C/C++test’s powerful APIs to define test cases logic and behavior of isolated components.

You can use Parasoft C/C++test to execute unit tests on the host platform, target processor simulator, or on the embedded target. Optimized to take minimal additional overhead for the binary footprint or process cycles, Parasoft C/C++test’s test harness is provided in the form of source code, and can be customized if platform-specific modifications are required.

Dedicated integrations with embedded IDEs and debuggers make the process of executing unit test cases smooth and automated. Supported environments include Green Hills Multi, Wind River Workbench, IAR EW, ARM MDK, ARM DS-5, TI CCS, and many others.

Parasoft C/C++test’s unit test framework was designed with safety-critical software tests in mind. Stubs and test cases with values for tested software simulation can be edited with graphical editors, but are generated as source code. Users can store and review created test artifacts together with the project’s files. The initialization of the variables and input parameters for tested software simulation is done exactly the same way as during production software operation. As such, the unit test framework can be easily qualified for achieving compliance with safety standards such as ISO 26262, DO-178B/C, IEC 61508, or EN 50128. Parasoft C/C++test is certified by TÜV SÜD for these standards.

Benefit From the Parasoft Approach

Realistic Test Cases

Other tools store input values for test cases and stubs in a proprietary format as a collection of values. This is fundamentally different from the variable’s initialization in production. With Parasoft C/C++test, test cases are instead stored as source code. Values for the tested code parameters are also initialized in the source code, closer to the process of parameter initialization in the production code, making it better suited for testing safety-critical code.

Time-Saving Qualification Kits

Along with being independently certified for use in safety-critical projects by TÜV SÜD, Parasoft C/C++test also provides industry-specific qualification kits that dramatically reduce the amount of time and effort required for achieving tool qualification for standards like ISO 26262, DO 178B/C, IEC 61508, and EN 50128.

Easily Switch Between Isolation and Integration

Use Parasoft C/C++test for pure isolation testing (where a tested function is entirely surrounded with stubs) and integration testing (in which tested components interact with other real software modules). You can verify the same test cases in isolation and integration mode, and compare results for any potential differences. Changing the mode of testing is a simple operation. It only requires the specification of the new stubs' location.