LDRA Testbed - Embedded Code Coverage Analysis (LDRA Ltd)
Test verification for code coverage analysis
Code Coverage Analysis: Automatic detection of areas of the code which have been tested and those which are yet to be tested. Identification of required conditions in order to exercise the uncovered source code. Various coverage levels are available; from statement coverage, branch coverage, up to MC/DC coverage level (DO-178B level A standard) for safety critical software for avionics systems.
- Regression Testing: Automatic detection of code changes and regressed code.
- Dynamic Data Flow Analysis: Where are variables being used? Are output parameters being set?
- Available on any Embedded System: Automatic code coverage measurements available on both host and in Wind River Tornado environments.
Test Verification can be used by the Unit Test component to provide coverage metrics for test cases that execute at various levels, including function/method, module/class and component/system levels. Test Verification provides test planning documents and color-coded graphs to help you achieve the desired coverage, ranging from procedure/function calls to safety-critical modified condition/ decision coverage.
Test Verification also supports the verification of systems running customer provided test cases (outside of the Unit Test Component). These system tests can execute within the LDRA tool suite, in a simulator, in other host-based environments or on a target platform.
For users interested in LDRA's Zero Defect Software Development methodology, Test Verification provides feasibility coverage or the percentage of feasible paths executed by a test case.
A. Coverage Metrics
The LDRA tool suite provides the following industry standard coverage metrics:
- Procedure/Function Call
LDRA also provides feasibility metrics to support its Feasibility Testing methodology.
- Branch Decision Condition
- Branch Condition Combination
- Modified Condition / Decision Coverage (MC/DC for DO-178B Level A)
- Dynamic Data Flow
B. Test Planning
Test Verification produces two test case planning documents:
1. Feasibility Test Case Planner - Shows the source code associated with the branch points within uncovered feasible paths (also called LCSAJ's) together with the logical condition necessary to execute that branch.
2. MC/DC Test Case Planner - Details the steps necessary to achieve DO-178B Level A, Modified Condition/Decision Coverage.
The LDRA tool suite enables visualisation of your system by:
Callgraphs provide the ability to drill down to a procedure/function level. They graphically display procedure/function call coverage and dynamic callgraphs allow visualisation of test coverage.
Flowgraphs provide annotations which display decision criteria, as well as graphical displays of statement and branch coverage.
The automatically generated reports can be configured for pass/fail coverage levels, in a procedure by procedure layout or file layout. The details available are:
- Annotated source code listings
- System overview reports
- Coverage metrics provided for:
D. Data Set/Profile Analysis
Data Set Analysis can be used in two ways.
1. The first is to obtain information on which data sets actually executed each line or set of lines of the source code. This is valuable information for regression testing.
2. The second use is to find which lines of code were executed by any particular test data sets. This can be used for documentation purposes, or for obtaining inspiration on how to execute a particular line of code.
Profile Analysis obtains a minimal set of test data sets which yield the greatest coverage. This minimal set can then be used to make regression testing more efficient, cutting time and costs.
If you are interested in more information on how Wind River partners with this company, click here.