Integration Testing for Embedded Software
When individually verified software units are combined into larger components and subsystems, new defect classes emerge. Interface mismatches, incorrect assumptions about shared data, and unintended coupling between modules all become visible at this stage. Integration testing is where these are found and resolved before system-level testing begins.
What Integration Testing Covers
Integration testing focuses on the boundaries between software units and components. Key verification objectives include:
- Correct implementation of interfaces between modules
- Correct behavior when multiple units interact under combined conditions
- Data coupling: the order and correctness of read and write access across shared data
- Control coupling: ensuring that control signals passed between components behave as specified
Under DO-178C and related standards, data and control coupling must be explicitly identified, tested, and shown to be complete. This includes demonstrating the absence of unintended coupling between components.
Coverage at Integration Level
Coverage measurement continues at the integration level, often using different instrumentation approaches than at the unit level. VectorCAST/QA instruments source code independently of the compiler, allowing it to be used across diverse build configurations and in environments where modifying the unit test setup is not practical.
The instrumented executable runs in existing test environments with coverage data collected during execution, bringing white-box coverage measurement to black-box integration and system tests without modifying the test setup.
Data and Control Coupling
VectorCAST's Component and Coupling Coverage Reports provide the evidence for data and control coupling required by DO-178C and similar standards. VectorCAST/Coupling detects data couple read and write actions and captures control couple calls, producing the coupling coverage reports that auditors require.
From Integration to System
VectorCAST supports unit, integration, and system level testing using the same test infrastructure, coverage measurement, traceability records, and reporting across all three. A test suite built at unit level does not need to be rebuilt when the scope moves to integration or system testing.