Testing Object-Oriented Programs - An Integrated Approach

Mei-Hwa Chen and Ming-Hung H. Kao


Traditional testing techniques often overlook object-oriented faults that are either caused by inheritance and/or polymorphism features or are introduced in object management. We present an object-flow based testing strategy that utilizes two object-flow coverage criteria--all-bindings and all-du-pairs--in testing object-oriented programs. The all-bindings criterion takes inheritance and polymorphism features into account to ensure that every binding of every object is exercised under some test. Whereas, the all-du-pairs criterion is applied to monitor the behavior of every object during its lifetime by keeping track of where the object is defined and where such definition is referenced. These object-flow coverage criteria can be used to develop test cases that are able to trigger object-oriented faults. Furthermore, an integrated approach that incorporates the object-flow based testing strategy with traditional testing techniques as well as state based testing technique is introduced. The results of our empirical study conducted on three industrial systems show that with this approach the reliability of the systems can be improved significantly and at least 80\% of the maintenance cost can be reduced.