The emphasis in object-oriented programs is on defining abstractions that have both state and behavior. This emphasis causes a shift in focus from software units to the way software components are connected. Thus, we are finding that we need less emphasis on unit testing and more on integration testing. The compositional relationships of inheritance and aggregation, especially when combined with polymorphism, introduce new kinds of integration faults. This paper presents results from an ongoing research project that has the goal of improving the quality of object-oriented software. New testing criteria are introduced that take the effects of inheritance and polymorphism into account. These criteria are based on the new analysis technique of quasiinterprocedural data flow analysis. These testing criteria can improve the quality of object-oriented software by ensuring that integration tests are high quality.
Roger T. Alexander, A. Jefferson Offutt