3 research outputs found
A survey on software testability
Context: Software testability is the degree to which a software system or a
unit under test supports its own testing. To predict and improve software
testability, a large number of techniques and metrics have been proposed by
both practitioners and researchers in the last several decades. Reviewing and
getting an overview of the entire state-of-the-art and state-of-the-practice in
this area is often challenging for a practitioner or a new researcher.
Objective: Our objective is to summarize the body of knowledge in this area and
to benefit the readers (both practitioners and researchers) in preparing,
measuring and improving software testability. Method: To address the above
need, the authors conducted a survey in the form of a systematic literature
mapping (classification) to find out what we as a community know about this
topic. After compiling an initial pool of 303 papers, and applying a set of
inclusion/exclusion criteria, our final pool included 208 papers. Results: The
area of software testability has been comprehensively studied by researchers
and practitioners. Approaches for measurement of testability and improvement of
testability are the most-frequently addressed in the papers. The two most often
mentioned factors affecting testability are observability and controllability.
Common ways to improve testability are testability transformation, improving
observability, adding assertions, and improving controllability. Conclusion:
This paper serves for both researchers and practitioners as an "index" to the
vast body of knowledge in the area of testability. The results could help
practitioners measure and improve software testability in their projects
System-level testability of hardware/software systems
As modern digital hardware/software systems become more complex, the testing of these systems throughout their entire system life cycle, including design verification, production testing, and field testing, becomes a severe problem. In this paper a structured approach is presented to solve the problems of system-level testability. A strategy towards design for system-level testability is introduced, which consists of partitioning the system specification into testable parts, and inserting implementation-independent test functionality in the specification. Incorporating these test requirements in the hardware/software implementation will considerably improve system-level testability. The design and implementation of a traffic-lights control system is presented as an example to illustrate the benefits of this approac