Defining Testability
Design for Testability is not an endeavor solely owned by the chip, board or software test ambassadors—although these segments of industry oddly appear to believe that the Design for Testability process is peculiarly theirs. Many of the definitions of testability or Design for Testability that can be found on the Internet are extremely narrow, funneled towards the low-level testing methodologies performed for circuit or software test. Furthermore, many of these definitions are closely associated with specific test methodologies (JTAG, Boundary Scan, etc.) that imply that their intended domain is only low-level, electronic-specific or software test applications. It is hard to imagine how designers of fuel systems, radar arrays, military vehicles and communication satellites—to name just a few of the many system technologies to which Design for Testability must be contractually applied—could find a use for the process described in the provincial definitions that are becoming alarmingly widespread.
Moreover, excessively low-level descriptions of the benefits of good testability usually result in a mis-connect when engineers attempt to sell Design for Testability to management. It is important that the process be described in terms that are general enough to encompass the various benefits in all of the disciplines (Maintainability, Safety, Supportability, etc.) that it is ultimately Design for Testability’s responsibility to sustain. It is beyond the scope of this paper to propose a new definition of testability—especially since there are plenty of serviceable definitions already afloat that may serve as excellent starting points. One could do worse than to begin with the extremely (and intentionally) general definition served up in IEEE 1522:
Testability: A design characteristic that allows its operational status to be determined and the isolation of faults to be performed efficiently.
We could then hazard the following, equally general definition of Design for Testability:
Design for Testability: The aspects of the product design process whose goal is to ensure that the testability of the end product is competently and sufficiently developed.