TY - JOUR
T1 - The ASTOOT Approach to Testing Object-Oriented Programs
AU - Doong, Roong Ko
AU - Frankl, Phyllis G.
N1 - Copyright:
Copyright 2016 Elsevier B.V., All rights reserved.
PY - 1994/1/4
Y1 - 1994/1/4
N2 - 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.
AB - 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.
KW - Abstract data types
KW - algebraic specification
KW - object-oriented programming
KW - software testing
UR - http://www.scopus.com/inward/record.url?scp=0028421077&partnerID=8YFLogxK
UR - http://www.scopus.com/inward/citedby.url?scp=0028421077&partnerID=8YFLogxK
U2 - 10.1145/192218.192221
DO - 10.1145/192218.192221
M3 - Article
AN - SCOPUS:0028421077
SN - 1049-331X
VL - 3
SP - 101
EP - 130
JO - ACM Transactions on Software Engineering and Methodology (TOSEM)
JF - ACM Transactions on Software Engineering and Methodology (TOSEM)
IS - 2
ER -