Test Automation is more than a set of tests run to generate apparent results. It includes designing testware, implementing automated test cases, and monitoring and interpreting a broad range of results. Automation by simply running test cases without human interaction doesn’t provide interesting test exercises. This paper describes key elements of automated testing that need to be considered, models for testing that can be used for designing test automation architecture. The paper first develops a general framework for discussion of software testing and test automation. This includes a definition of test automation, a model for software tests, and a discussion of test oracles. The remainder of the paper focuses on using various designing techniques for framework to plan for designing test cases.