Testing Object-Oriented Software Using the Category-Partition Method

Seventeenth International Conference on Technology of Object-Oriented Languages and Systems (TOOLS USA '95), pages 293--304, Santa Barbara, CA, August 1995.

Jeff Offutt and Alisa Irvine


When migrating from conventional to object-oriented programming, developers face difficult decisions in modifying their development process to best use the new technology. In particular, ensuring that the software is highly reliable in this new environment poses different challenges and developers need to understand effective ways to test the software. Much previous work in testing OO software has focused on developing new techniques and procedures. We ask whether existing techniques can work, and present empirical data that show that the existing technique of category-partition testing can effectively find faults in object-oriented software, and new techniques may not be needed. For this study, we identified types of faults that are common to C++ software and inserted faults of these types into two C++ programs. Test cases generated using the category-partition method were used to test the programs. A fault was considered detected if it caused the program to terminate abnormally or if the output was different from the output of the original program. The results show that the combination of the category-partition method and a tool for detecting memory management faults may be effective for testing C++ programs in general. Since the evidence is that traditional techniques are effective, this paper suggests that software developers will not need new testing methods when migrating to object-oriented development.

Back to my home page.