TESTABILITY OF SOFTWARE COMPONENTS

被引:103
作者
FREEDMAN, RS [1 ]
机构
[1] POLYTECH INST NEW YORK,DEPT COMP SCI,BROOKLYN,NY 11201
关键词
SOFTWARE TESTING; FUNCTIONAL TESTING; TESTABILITY; OBSERVABILITY; CONTROLLABILITY;
D O I
10.1109/32.87281
中图分类号
TP31 [计算机软件];
学科分类号
081202 ; 0835 ;
摘要
The knowledge as to whether a software component is testable or not is important to the software engineering process: a program that is not easily testable may have to go through several iterations of program and test redesign. In this paper we formally investigate the meaning of software testability. We define a new concept, domain testability, by applying the concepts of observability and controllability to software. Observability refers to the ease of determining if specified inputs affect the outputs; controllability refers to the ease of producing a specified output from a specified input. Observability and controllability properties are already used for assessing the testability of hardware components. A domain testable program is observable and controllable: it does not exhibit any test input-output inconsistencies. We discuss to domain testability properties of several programs which have been presented in the literature and investigate the observability and controllability properties of several programming structures. We also define new testing metrics (that can be applied to programs or to functional specifications) which can be used to easily asses the level of effort required to modify a program so that it becomes domain testable. We also show how testability can be assessed from program specifications and discuss an experiment which shows that it takes less time to build and test a program developed from a domain-testable specification than a similar program developed from a nondomain-testable specification. In the Appendix, domain testability is defined in terms of denotational semantics.
引用
收藏
页码:553 / 564
页数:12
相关论文
共 32 条