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 条
[1]   CAN PROGRAMMING BE LIBERATED FROM VON NEUMANN STYLE - FUNCTIONAL STYLE AND ITS ALGEBRA OF PROGRAMS [J].
BACKUS, J .
COMMUNICATIONS OF THE ACM, 1978, 21 (08) :613-641
[2]   COMPARING THE EFFECTIVENESS OF SOFTWARE TESTING STRATEGIES [J].
BASILI, VR ;
SELBY, RW .
IEEE TRANSACTIONS ON SOFTWARE ENGINEERING, 1987, 13 (12) :1278-1296
[3]  
BEIZER B, 1983, SOFTWARE TESTING TEC
[4]   NOTIONS OF CONSISTENCY AND PREDICATE LOCKS IN A DATABASE SYSTEM [J].
ESWARAN, KP ;
GRAY, JN ;
LORIE, RA ;
TRAIGER, IL .
COMMUNICATIONS OF THE ACM, 1976, 19 (11) :624-633
[5]  
FREEDMAN R, 1987, OCT U SEM ART INT NI
[6]  
FREEDMAN R, 1987, POLYTECHNIC NOTES AR, V5
[7]  
FREEDMAN R, 1985, PROGRAMMING APSE SOF
[8]  
Fujiwara H., 1985, LOGIC TESTING DESIGN
[9]  
GARDARIN G, 1989, RELATIONAL DATABASES
[10]   TEST DATA AS AN AID IN PROVING PROGRAM CORRECTNESS [J].
GELLER, M .
COMMUNICATIONS OF THE ACM, 1978, 21 (05) :368-375