Design for Testability
Problem
Assessment of system integrity by testing external black-box behavior is almost impossible
Solution: Design for Testability
- Improves quality
- Reduces time to market
- Reduces test costs
Testability Metrics
Controllability - measures the difficulty in driving a node to a specific value
Observability -measures the difficulty in propagating the value on a node to a primary output
Design for Testability Techniques
HW design:
- Ad-Hoc (problem oriented)
- Structured techniques
- Scan design
- Boundary scan
SW design:
- modular design
- structured programming
- object oriented design
Difference in Strategies for HW/SW Testability
HW QA is focused on proving the correct manufacture and on field faults detection
SW QA is focused on design validation and verification (improving specifications and programming styles)
Problem: during high level design it may be not decided yet which part to implement in HW and which in SW, but system level test strategies should not be implementation dependent. There is a need for common testability approach
Design for System Level Testability
The strategy is based on clear separation between implementation independent system specification and actual hw/sw implementation:
- Create Specification of system's functional behavior
- Add system level test requirements to the Specification
- Choose architecture and partition the system into hardware and software
- Transform the implementation independent test requirements into actual HW and SW requirements (it may demand special HW/SW test facilities)
System Level Testability in the Specification
Partition the system using testability as a major criterion
- minimizing dependencies between modules
- minimizing parallelism inside a module
Add test functionality to control and observe individual modules and the interactions among them for testing purposes (modular design without access to modules doesn't help)
Types of Test Functionality
- Transparent Test Mode (TTM) - in this mode modules that constitute the path to the module under test pass incoming events directly to outgoing events
- Built-In Self Test (BIST) at module level reduces required controllability and observability from the system environment
- Point of control and observation (PCO)
Point of Control and Observation (PCO)
Hierarchical Test Architecture
Functions at every test hierarchy level:
- Initialization of system, subsystems, modules or components (mode setting, reset)
- Access to and control of the lower levels
- Transportation of test stimuli
- Control of built-in test facilities
- Collection of test results
- Identification of components