We evaluated many embedded software testing tools during this process. We chose VectorCAST for its robust features and ease of...Read full story »
- Requirements Specification:
- System Design:
- Unit Testing:
- Integration Testing:
- System Testing:
VectorCAST/C++ is a highly automated unit and integration test solution used by embedded developers to validate safety and business critical embedded systems. This dynamic test solution is widely used in the avionics, medical device, automotive, industrial controls, railway, and financial industries.
- Can be used on new or legacy applications
- Ease of use enables non-regulated industries to realize benefits of C and C++ unit testing
- Makes developer testing a streamlined and repeatable technology
- Moves testing from a manual process to engineering rigor
- Proven reduction in cost by automating framework creation to isolate newly developed code
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:
- Complete test-harness construction for C and C++ unit and integration testing – no writing of test code
- Stub and driver code built automatically
- Test execution from GUI or scripts
- Code-coverage analysis with optimization for embedded systems
- Integrations with The MathWorks® Simulink®, Green Hills® INTEGRITY®, IBM® Rational® DOORS® IBM® Rational® Rhapsody®, PC-Lint and other tools
- On-target and simulator test execution
- Code-complexity analysis highlights high risk code
- Automatic test case generation based on decision paths
- Test execution playback to assist in debugging Integrated with leading static analysis tools
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
- test driver
- source file(s) under test
- complete stubs for dependent functions
- source files for any dependent units that are not stubbed
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.
Discover the benefits of VectorCAST with a Free Trial
See how VectorCAST C and C++ unit and integration testing tools improve performance in your exact testing environment, by registering today for a 30-day, fully-functional version.