C and C++ Unit and Integration Testing"
Traditionally, unit and integration testing is performed by developers as the code is built. As individual software components are created, test code is generated to take the place of the external interfaces of the code under test. This test code, generally called a test harness, consists of drivers to stimulate the functions of the code being tested, and stubs to take the place of dependent functions that are called by the code being tested. VectorCAST automates the creation of drivers and stubs as part of the creation of the test harness, thus freeing up the developers to focus on building quality and thorough test cases.
With VectorCAST/C++, C and C++ unit testing can be done natively or on your specific target or target simulator. VectorCAST’s run-time support package, VectorCAST/RSP, is the add-on module that makes executing your test cases on target hardware automatic and seamless. In addition, tests may be developed in a host environment and re-executed on an embedded target to verify target and cross-compiler performance.
Easy Regression Testing"
One of the most important benefits of automating software unit testing is the ability to rerun the tests as the source code changes to ensure that errors are not introduced. Once the test cases are generated, they can be saved in text format and easily stored in your Configuration Management tool. VectorCAST’s command line interface can be invoked from your nightly build to rerun all of the unit and integration tests so that you can check for errors that are introduced during the day. Finding issues soon after they are introduced greatly reduces debug time later in the life-cycle, thereby increasing code quality and reducing cost. Further automation of regression testing can be accomplished with VectorCAST/Manage.
VectorCAST Supports "Source Mode" or "Agile Mode"
Source Mode supports C and C++ unit and integration testing of modules that have already been implemented. Agile Mode is designed to support projects that are implementing an Agile development process. In Agile Mode, no source code files are needed. When you are building a test environment, you simply point to the directory containing the header files that you want to create test cases for, and then choose one or more headers as the Units Under Test. VectorCAST will create the test environment, including empty definitions for the functions defined in the header files chosen. This results in a complete executable test harness that can be run on the host platform, or any embedded development environment. All other features of the VectorCAST unit testing tool work exactly the same way that they do in Source Mode.
The key features of VectorCAST for C and C++ unit and integration testing include:
How to Automate Embedded C and C++ Unit and Integration Testing with VectorCAST/C++
VectorCAST/C++ parses your source code and invokes code generators to automatically create the test code (stubs and drivers) required to construct a complete, executable test harness.
Once the test harness is constructed, VectorCAST/C++ can be used to build and execute test cases, show code covered, and report static measurements. Test data is maintained separately from the test harness, enabling easy automatic regression testing.
Components of the VectorCAST executable harness
The test harness is data-driven, meaning the harness reads test data during execution. This approach eliminates the need to compile and link a new executable harness for each new test.
VectorCAST/C++ also generates code coverage metrics which indicate which areas of the code that you are testing still have not been tested. The easy-to-read code coverage viewer indicates down to the line of code where there is testing left to be done and can support the different levels of coverage specified in various industry standards like: IEC 62304, ISO 26262, DO-178B/C and IEC 61508.