of Interface Environment. Interface engine consists of a parser and a test runner. The parser is present to parse the object files coming from the object repository into the test specific scripting language. The test runner executes the test scripts using a test harness. Object repository Object repositories are a collection of UI/Application object data recorded by the testing tool while exploring the application under test. Defining boundaries between automation framework and a testing tool Tools are specifically designed to target some particular test environment, such as Windows and web automation tools, etc. Tools serve as a driving agent for an automation process. However, an automation framework is not a tool to perform a specific task, but rather infrastructure that provides the solution where different tools can do their job in a unified manner. This provides a common platform for the automation engineer. There are various types of frameworks. They are categorized on the basis of the automation component they leverage. These are: Data-driven testing Modularity-driven testing Keyword-driven testing Hybrid testing Model-based testing Code-driven testing Behavior driven development What to test Testing tools can help automate tasks such as product installation, test data creation, GUI interaction, problem detection (consider parsing or polling agents equipped with test oracles), defect logging, etc., without necessarily automating tests in an end-to-end fashion. One must keep satisfying popular requirements when thinking of test automation: Platform and OS independence Data driven capability (Input Data, Output Data, Metadata) Customization Reporting (DB Data Base Access, Crystal Reports) Easy debugging and logging Version control friendly – minimal binary files Extensible & Customization (Open APIs to be able to integrate with other tools) Common Driver (For example, in the Java development ecosystem, that means Ant or Maven and the popular IDEs). This enables tests to integrate with the developers' workflows. Support unattended test runs for integration with build processes and batch runs. Continuous integration servers require this. Email Notifications like bounce messages Support distributed execution environment (distributed test bed) Distributed application support (distributed SUT) See also List of GUI testing tools List of web testing tools Continuous testing Fuzzing Headless browser Software testing System testing Unit test References General references Roman Savenkov: How to Become a Software Tester. Roman Savenkov Consulting, 2008, Hayes, Linda G., "Automated Testing Handbook", Software Testing Institute, 2nd Edition, March 2004 Kaner, Cem, "Architectures of Test Automation", August 2000 External links Practical Experience in Automated Testing