Test Automation Framework
A framework is an integrated system that sets the rules of Automation of a specific product. This system integrates the function libraries, test data sources, object details and various reusable modules. These components act as small building blocks which need to be assembled in a regular fashion to represent a business process. Thus, framework provides the basis of test automation and hence simplifying the automation effort.
The core components of an automation framework are as follows:

Defining
automation framework objectives:
It is very important to
have a clear definition of the objectives of test automation before designing
the test automation framework. So of the questions that need to be asked are:
· What is the shelf of the framework?
· What percent of application will be automated using the framework?
· How stable is the application?
· What are the testing skills of the target audience?
· Who is the target audience for using Test Automation Framework?
· What is the expected ROI from the automation efforts?
Key capabilities to look for in any test automation frameworks
Script-less representation of automated tests: The testing framework should offer point - and - click interface for accessing and interacting with the application components under test—as opposed to presenting line after line of scripting. Testers should be able to visualize each step of the business scenario, view and edit test cases intuitively. This will shorten the learning curve for testers and help QA teams meet deadlines.
Data driven tests: A key benefit of automating functional testing is the ability to test large volumes of data on the system quickly. But you must be able to manipulate the data sets, perform calculations, and quickly create hundreds of test iterations and permutations with minimal effort. Test Automation Frameworks must have capability to integrate with spreadsheets and provide powerful calculation features.
Concise reporting: The ability to run high volume of tests is of little benefit if the results of the tests are not easy to understand. The framework must automatically generate reports of the test run and show the results in an easy-to-read format. The reports should provide specifics about where application failures occurred and what test data was used. Reports must present application screen shots for every step to highlight any discrepancies and provide detailed explanations of each checkpoint pass and failure. Reports must also be easily shared across the entire QA and development teams.
Coupling Test Automation Framework and the application-under-test (AUT): A key factor to consider while designing a Test Automation Framework is to identify if it is to be tightly integrated or loosely coupled with the application-under-test (AUT).There are merits and de-merits of each approach.
· If the Test Automation Framework is intended for a defined set of applications and if applications-under-test are stable, then the Test Automation Framework should be tightly coupled with the application-under-test (AUT).In this case, UI validations and specific business processes are implemented within the framework, so that QA teams only have to configure tests based on their business scenarios.
· If the Test Automation Framework is designed for applications that are in development or for future use, then the Test Automation Framework should be loosely coupled with the application-under-test (AUT) to provide flexibility for extension and derive ROI from the existing automation effort. In this case QA teams have to configure every validation or checkpoint which makes the test configuration complex and time consuming.
The main types of Software automation frameworks are as follows:
The Test Script Modularity Framework
The Test Library Architecture Framework
The Keyword-Driven or Table-Driven Testing Framework
The Data-Driven Testing Framework
The Hybrid Test Automation Framework