Equality to Equals and Unequals: A Revisit of the Equivalence and Nonequivalence Criteria in Class-Level Testing of Object-Oriented Software
Issue No.11 - Nov. (2013 vol.39)
Huo Yan Chen , Jinan University, Guangzhou
T.H. Tse , The University of Hong Kong, Hong Kong
DOI Bookmark: http://doi.ieeecomputersociety.org/10.1109/TSE.2013.33
Algebraic specifications have been used in the testing of object-oriented programs and received much attention since the 1990s. It is generally believed that class-level testing based on algebraic specifications involves two independent aspects: the testing of equivalent and nonequivalent ground terms. Researchers have cited intuitive examples to illustrate the philosophy that even if an implementation satisfies all the requirements specified by the equivalence of ground terms, it may still fail to satisfy some of the requirements specified by the nonequivalence of ground terms. Thus, both the testing of equivalent ground terms and the testing of nonequivalent ground terms have been considered as significant and cannot replace each other. In this paper, we present an innovative finding that, given any canonical specification of a class with proper imports, a complete implementation satisfies all the observationally equivalent ground terms if and only if it satisfies all the observationally nonequivalent ground terms. As a result, these two aspects of software testing cover each other and can therefore replace each other. These findings provide a deeper understanding of software testing based on algebraic specifications, rendering the theory more elegant and complete. We also highlight a couple of important practical implications of our theoretical results.
Software, Software testing, Observers, Context, Semantics, Computer science,object-oriented software, Software testing, equivalence criterion, nonequivalence criterion, algebraic specification
Huo Yan Chen, T.H. Tse, "Equality to Equals and Unequals: A Revisit of the Equivalence and Nonequivalence Criteria in Class-Level Testing of Object-Oriented Software", IEEE Transactions on Software Engineering, vol.39, no. 11, pp. 1549-1563, Nov. 2013, doi:10.1109/TSE.2013.33