  This paper discusses a model-based approach to testing as a vital part of
software development. It argues that an approach using models as central
development artifact needs to be added to the portfolio of software engineering
techniques, to further increase efficiency and flexibility of the development
as well as quality and reusability of results. Then test case modeling is
examined in depth and related to an evolutionary approach to model
transformation. A number of test patterns is proposed that have proven helpful
to the design of testable object-oriented systems. In contrast to other
approaches, this approach uses explicit models for test cases instead of trying
to derive (many) test cases from a single model.
