Skip to Main Content
We present a minimalist approach to model-based test generation. Our approach leverages the information provided in the domain and behavioral models of an application under test to produce a small yet effective set of test cases without additional user input. The domain model consists of UML class diagram with invariants, while the behavioral model consists of UML use cases. Each use case flow has an associated guard condition and a set of updates (to the domain object diagram and the output parameters). We treat the model invariants to enable a novel specify once, test everywhere paradigm. Our approach frees the modeler from the responsibility of specifying appropriate alternate flows on use cases affected by each invariant - our analysis augments the specified use cases with appropriate alternate flows. Our approach then produces suitable testing goals which are refinements of the guard conditions on the augmented flows using a set of fault models. Another salient feature of our approach is generation of verification sequences to ensure that the object diagram updates associated with a given flow are implemented correctly. Our technique uses a novel set of fault models to mutate an object diagram and a novel algorithm which distinguishes between the original and the mutated object diagrams. We describe the techniques used in our test generation approach.