This Article 
 Bibliographic References 
 Add to: 
Testability of Software Components
June 1991 (vol. 17 no. 6)
pp. 553-564

The concept of domain testability of software is defined by applying the concepts of observability and controllability to software. It is shown that a domain-testable program does not exhibit any input-output inconsistencies and supports small test sets in which test outputs are easily understood. Metrics that can be used to assess the level of effort required in order to modify a program so that it is domain-testable are discussed. Assessing testability from program specifications and 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 are also discussed.

[1] J. Backus, "Can programming be liberated from the von Neumann style? A functional style and its algebra of programs,"Commun. ACM, vol. 21, no. 8, pp. 613-641, Aug. 1978.
[2] V. R. Basili and R. W. Selby, "Comparing the effectiveness of software testing strategies,"IEEE Trans. Software Eng., vol. SE-13, no. 12, pp. 1278-1296, Dec. 1987.
[3] B. Beizer,Software Testing Techniques. New York: Van Nostrand Reinhold, 1983.
[4] K. P. Eswaran, J. N. Gray, R. A. Lorie, and I. L. Traiger, "The notions of consistency and predicate locks in a database system,"Commun. ACM, vol. 19, no. 11, pp. 624-633, Nov. 1976.
[5] R. Freedman,Programming with APSE Software Tools. Princeton, NJ: Petrocelli, 1985.
[6] R. Freedman, M. Shooman, M. Corcoran, and R. Frail,A Knowledge-Based Testing Assistant(Polytechnic Notes on Artificial Intelligence, no. 5). Brooklyn, NY: Polytechnic Univ., 1987.
[7] R. Freedman, M. Shooman, M. Corcoran, and R. Frail, "An expert system for software component testing," presented at the Univ. Seminar on Artificial Intelligence, Unisys Corp., Nice, France, Oct. 1987.
[8] H. Fujiwara,Logic Testing and Design for Testability. Cambridge, MA: MIT Press, 1985.
[9] G. Gardarin and P. Valduriez,Relational Databases and Knowledge Bases. New York: Addison-Wesley, 1989.
[10] M. Geller, "Test data as an aid in proving program correctness,"Commun. ACM, vol. 21, pp. 368-375, May 1978.
[11] J. B. Goodenough and S. L. Gerhart, "Toward a theory of test data selection,"IEEE Trans. Software Eng., vol. SE-1, pp. 156-173, June 1975.
[12] J. B. Goodenough, "Ada compiler validation: An example of software testing theory and practice," Wang Institute of Graduate Studies, Tech. Rep. TR-86-07, July 1986.
[13] M. Gordon,The Denotational Description of Programming Languages. New York: Springer-Verlag, 1979.
[14] B. Hetzel,The Complete Guide to Software Testing, 2nd ed. Wellesley, MA: QED Info. Sci., 1988.
[15] R. House, "Comments on program specification and testing,"Comm. ACM, vol. 23, no. 6, pp. 324-331, June 1980.
[16] W. E. Howden, "A survey of dynamic analysis methods," inTutorial: Software Testing and Validation Techniques, 2nd ed., E. Miller and W. E. Howden, Eds. Washington, DC: IEEE Computer Soc. Press, 1981, pp. 209-231.
[17] R. E. Kalman, P. L. Falb, and M. A. Arbib,Topics in Mathematical System Theory. New York: McGraw-Hill, 1969.
[18] L. Lamport, "On the proof of correctness of a calendar program,"Comm. ACM, vol. 22, no. 10, pp. 554-556, Oct. 1979.
[19] E. J. McCluskey,Logic Design Principles. New York: Prentice-Hall, 1986.
[20] G. J. Myers,The Art of Software Testing. New York: Wiley, 1979.
[21] G. J. Myers, "A controlled experiment in program testing and code walk-throughs/inspections,"Commun. ACM, pp. 760-768, Sept. 1978.
[22] P. Naur, "Programming by action clusters,"BIT, vol. 9, no. 3, pp. 250-258, 1969.
[23] S. Reddy, "Easily testable realizations for logic functions,"IEEE Trans. Comput., vol. C-21, pp. 1183-1188, Nov. 1972.
[24] D. Scott and C. Strachey, "Toward a mathematical semantics for programming languages," inProc. Symp. on Computers and Automata, J. Fox, Ed. New York: Polytechnic Instit. of Brooklyn Press, 1971.
[25] M. L. Shooman,Software Engineering: Design, Reliability, and Management. New York: McGraw-Hill, 1983.
[26] J. E. Stoy,Denotational Semantics: The Scott-Strachey Approach to Programming Language Theory. Cambridge, MA: MIT Press, 1977.
[27] L. Tsalalikhin, "Dialog with a tester (architecture and functions of one unit test facility)," inProc. 1986 Workshop on Software Testing. Washington, DC: IEEE Computer Soc., 1986, pp. 51-60.
[28] M. Watkins, "A technique for testing command and control software,"Comm. ACM, vol. 25, no. 4, pp. 228-232, Apr. 1982.
[29] S. Rapps and E. J. Weyuker, "Selecting software test data using data flow information,"IEEE Trans. Software Eng., vol. SE-11, no. 4, pp. 367-375, Apr. 1985.
[30] E. J. Weyuker, "Axiomatizing software test data adequacy,"IEEE Trans. Software Eng., vol. SE-12, no. 12, pp. 1128-1138, Dec. 1986.
[31] S. H. Zweben and J. S. Gourlay, "On the adequacy of Weyuker's test data adequacy axioms,"IEEE Trans. Software Eng., vol. SE-15, pp. 496-501, Apr. 1989.
[32] ANSI/IEEE Std 829-1983 (Standard for Software Test Documentation) and ANSI/IEEE Std 1008-1987 (Standard for Software Unit Testing), inSoftware Engineering Standards, 3rd ed. New York: IEEE, 1989.

Index Terms:
software components; domain testability; observability; controllability; domain-testable program; input-output inconsistencies; small test sets; test outputs; program specifications; domain-testable specification; nondomain-testable specification; formal specification; program testing
R.S. Freedman, "Testability of Software Components," IEEE Transactions on Software Engineering, vol. 17, no. 6, pp. 553-564, June 1991, doi:10.1109/32.87281
Usage of this product signifies your acceptance of the Terms of Use.