During software maintenance, regression testing is an expensive but critical activity to ensure that modified versions of the system do not "regress". As software evolves, chances are that not only the implementation changes, but that the specification of the system changes too. We argue that guiding regression testing by the system specifications generated early in software lifecycle will be more accurate than extracting specification from source code, and more cost effective.
Model checking is used to reason about the truth of statements about the system specification. In this paper, we use a model checker as part of a highly- automated regression test generation tool, providing a practical approach to specification based regression testing. Features of our approach that support different specification description languages and different test coverage criteria are also presented.