Test Selection for Specification-Based Testing of Object-Oriented Software Based on Formal Specifications

Traditional testing techniques cannot be directly applied to object-oriented software systems because of some features of this paradigm, namely history, encapsulation, inheritance and polymorphism. We propose a specification based strategy for test selection to verify the interactions of the methods of an object or of a cluster of objects. Its essence is to perform selection as a reduction process. The exhaustive test set which serves as reference of correctness is transformed into a practicable test set by applying hypotheses on the program under test. The number of cases that must be tested is reduced while preserving the integrity of the test set. The oracle is implemented as an observational equivalence, which allows disregarding the internal representation of objects.

Besides analyzing the problems induced by the object-oriented paradigm, the main contribution of the thesis is to present a set of hypotheses specific to object-oriented systems. Regularity hypotheses are m:n generalizations of the program behavior and allow specifying the shape of test cases. Uniformity hypotheses are 1:n generalizations of the program behavior. Used in conjunction with subdomain decomposition, they ensure a good coverage of the specification. Incrementallity hypotheses are applied to take advantage of the hierarchy relationships inside object models by reusing test cases already selected for parent classes to test subclasses. Other hypotheses are proposed to limit the impact of polymorphism by taking into account the properties of the subtyping relationships.

For further information, please go to my PhD home page.

Related material