With automated fault injection, developers of hardware and software for embedded systems and components can conveniently generate and manage test cases to be implemented in unit tests, integration tests and component tests automatically without changing the source code.
Classically, whenever 100% code coverage cannot be achieved with normal test cases, fault injections are applied manually. This can be by adding testing code, by code replacements using compiler macros, by replacing functions (stubbing) or by changing variable values using debug tools. These methods have the disadvantage that either they need to be added and removed manually or the instrumentation of the source code remains in place within production code. Given that it is most probably the test engineer who first identify the need for a fault injection, if the code needs to be changed, the subsequent corrections to the code will need to be subject to the software development approvals process required by the safety standards. Such an iteration highly increases development time and cost.
In TESSY 4.1, however, fault injection is automated and does not remain in the source program. The error injections are defined directly in the flow chart of the function within the TESSY environment.
Test cases with automated fault injection have a special flag and will be documented within the test report. When all test cases are executed, these special test cases can be included or excluded from the test execution. All fault injections are conveniently stored and managed in TESSY. In this way, fault injections can be assigned to one or more test cases in a user-friendly way and will be effective at the desired location even after source code changes when doing regression testing.
Razorcat Development GmbH - www.razorcat.com