The best place to start is over at http://www.thebraidytester.com/ where Michael Hunter describes the stack he built for testing Microsoft Expression in number of articles, papers and blog posts.
I have used this approach as the inspiration for my own watin based stack which is available at http://testingstax.codeplex.com
Essentially the framework breaks down into the following components.
- The test case written 100% in the business domain
- The logical functional model that represents the business domain that the test cases call
- The Physical layer that actually interacts with application to perform the automation
- The verification engine and
- The test data model for modelling the test data.
The key design principle is that all the concerns have been separated. The test, from the business model, the physical implementation from the test data and verification engine.