|
ABSTRACT
This article describes a new approach to the unit testing of object-oriented programs, a set of tools based on this approach, and two case studies. In this approach, each test case consists of a tuple of sequences of messages, along with tags indicating whether these sequences should put objects of the class under test into equivalent states and/or return objects that are in equivalent states. Tests are executed by sending the sequences to objects of the class under test, then invoking a user-supplied equivalence-checking mechanism. This approach allows for substantial automation of many aspects of testing, including test case generation, test driver generation, test execution, and test checking. Experimental prototypes of tools for test generation and test execution are described. The test generation tool requires the availability of an algebraic specification of the abstract data type being tested, but the test execution tool can be used when no formal specification is available. Using the test execution tools, case studies involving execution of tens of thousands of test cases, with various sequence lengths, parameters, and combinations of operations were performed. The relationships among likelihood of detecting an error and sequence length, range of parameters, and relative frequency of various operations were investigated for priority queue and sorted-list implementations having subtle errors. In each case, long sequences tended to be more likely to detect the error, provided that the range of parameters was sufficiently large and likelihood of detecting an error tended to increase up to a threshold value as the parameter range increased.
REFERENCES
Note: OCR errors may be found in this Reference List extracted from the full text article. ACM has opted to expose the complete List rather than only correct and linked references.
 |
1
|
|
| |
2
|
~ANTOY, S. AND HAMLET, D. 1992. Automatically checking an implementation against its formal ~specification. Tech. Rep. TR 91-1, Rev. 1, Portland State Univ., Portland, Ore.
|
| |
3
|
~BARTUSSEK, W. AND PARNAS, n. L. 1986. Using assertions about traces to write abstract ~specifications for software modules. In Software Specification Techniques. Addison-Wesley, ~Reading, Mass., 111-130.
|
| |
4
|
|
| |
5
|
~CHOQUET, N. 1986. Test data generation using a prolog with constraints. In Proceedmgs ofthe ~Workshop on Software Testing. IEEE Computer Society, Washington, D.C., 132-141.
|
| |
6
|
|
 |
7
|
Roong-Ko Doong , Phyllis G. Frankl, Case studies on testing object-oriented programs, Proceedings of the symposium on Testing, analysis, and verification, p.165-177, October 08-10, 1991, Victoria, British Columbia, Canada
[doi> 10.1145/120807.120822]
|
| |
8
|
|
 |
9
|
John Gannon , Paul McMullin , Richard Hamlet, Data Abstraction, Implementation, Specification, and Testing, ACM Transactions on Programming Languages and Systems (TOPLAS), v.3 n.3, p.211-223, July 1981
[doi> 10.1145/357139.357140]
|
| |
10
|
~GAUDEL, M. AND MARRE, B. 1988. Generation of test data from algebraic specifications. In ~Proceedings of the 2nd Workshop on Software Testing, Verification, and Analysis. IEEE ~Computer Society, Washington, D.C., 138-139.
|
| |
11
|
~GOGUEN, J. A. AND WIN}~LER, T. 1988. Introducing OBJ3. Tech. Rep. SRI-CSL-88-9, Computer ~Science Lab., SRI Int., Menlo Park, Calif.
|
| |
12
|
~GOGUEN, J. A., THATCHER, J. W., AND WAGNER, E.G. 1978. An initial algebra approach to the ~specification, correctness, and implementation of abstract data types. Current Trends Program. ~Meth. 4, 80-149.
|
| |
13
|
|
| |
14
|
~GUTTAG, J.J. 1980. Notes on type abstraction (version 2). IEEE Trans. Softw. Eng. 6, 1 (Jan.), ~13 23.
|
 |
15
|
|
| |
16
|
~GUTTAG, J. J. AND HORNING, J.J. 1978. The algebraic specification of abstract data types. Acta ~Inf. 10, 1, 27 52.
|
 |
17
|
|
 |
18
|
|
 |
19
|
D. Hoffman , C. Brealey, Module test case generation, Proceedings of the ACM SIGSOFT '89 third symposium on Software testing, analysis, and verification, p.97-102, December 13-15, 1989, Key West, Florida, United States
|
| |
20
|
|
| |
21
|
|
| |
22
|
|
| |
23
|
~JALOTE, P. AND CABALLERO, M.G. 1988. Automated testcase generation for data abstraction. In ~Proceedings of COMPSAC 88. IEEE Computer Society, Waghington, D C., 205-210.
|
| |
24
|
~KNUTH, D. E. AND BENDIX, P. B. 1970. Simple word problems in universal algebras. In ~Computational Problems in Abstract Algebra. Pergamon Press, Elmsford, N.Y., 263-297.
|
| |
25
|
~LISKOV, B. H. AND Z~LLES, S.N. 1975. Specification techniques for data abstractions. IEEE ~Trans. Softw. Eng. 1, i (Mar.), 7-19.
|
 |
26
|
|
| |
27
|
|
| |
28
|
~MUSSER, D.R. 1980. Abstract data type specification in the AFFIRM system. IEEE Trans. ~Softw. Eng. 6, 1 (Jan.), 24-32.
|
| |
29
|
|
| |
30
|
~WEYUKER, E.J. 1982. On testing non-testable programs. Comput. J. 25, 4, 465 470.
|
CITED BY 45
|
|
|
|
|
David Kung , Jerry Gao , Pei Hsia , Yasufumi Toyoshima , Chris Chen , Young-Si Kim , Young-Kee Song, Developing an object-oriented software testing and maintenance environment, Communications of the ACM, v.38 n.10, p.75-87, Oct. 1995
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Y. Labiche , P. Thévenod-Fosse , H. Waeselynck , M.-H. Durand, Testing levels for object-oriented software, Proceedings of the 22nd international conference on Software engineering, p.136-145, June 04-11, 2000, Limerick, Ireland
|
|
|
|
|
|
Gilles Bernot , Laurent Bouaziz , Pascale Le Gall, A theory of probabilistic functional testing, Proceedings of the 19th international conference on Software engineering, p.216-226, May 17-23, 1997, Boston, Massachusetts, United States
|
|
|
|
|
|
Pei Hsia , Xiaolin Li , David C. Kung, Class testing and code-based criteria, Proceedings of the 1996 conference of the Centre for Advanced Studies on Collaborative research, p.14, November 12-14, 1996, Toronto, Ontario, Canada
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Pei Hsia , Xiaolin Li , David C. Kung, Augmenting data flow criteria for class testing, Proceedings of the 1997 conference of the Centre for Advanced Studies on Collaborative research, p.9, November 10-13, 1997, Toronto, Ontario, Canada
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Daniel Hoffman , Durga Prabhakar , Paul Strooper, Testing iptables, Proceedings of the 2003 conference of the Centre for Advanced Studies on Collaborative research, p.80-91, October 06-09, 2003, Toronto, Ontario, Canada
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Robert M. Hierons , Kirill Bogdanov , Jonathan P. Bowen , Rance Cleaveland , John Derrick , Jeremy Dick , Marian Gheorghe , Mark Harman , Kalpesh Kapoor , Paul Krause , Gerald Lüttgen , Anthony J. H. Simons , Sergiy Vilkomir , Martin R. Woodward , Hussein Zedan, Using formal specifications to support testing, ACM Computing Surveys (CSUR), v.41 n.2, p.1-76, February 2009
|
|
|
|
|
|
|
REVIEW
"David A. Gustafson : Reviewer"
ASTOOT is a software testing tool that automates many parts of the
testing process for object-oriented software. This excellent paper
presents a new twist in software testing. It is well worth the effort of
reading and understanding it. Resear
more...
|