Thursday, March 16, 2017

What is test automation framework and it's basic framework types ?

A test automation framework is a combination of guidelines, coding standards, concepts, practices, processes, project hierarchies, reporting mechanism, test data, to support automation testing. A tester follows these guidelines while automating applications to take advantage of various productive results.

There are many types of test automation frameworks available in the market, and the most popular ones are listed here. Each one of these frameworks has their individual characteristics and features.
Let us now examine some of the popular frameworks and understand their pros, cons, and usability recommendations:

# Keyword-driven framework
In the keyword-driven framework, testers create various keywords and associate different actions or functions with each of these keywords. Function library contains the logic to read the keywords and call and perform the associated actions. Generally, test scenarios are written in excel sheets. The driver script reads the scenario and performs test execution. This is used in situations where the testers who create test scripts have less programming expertise, whereas framework creation is done by automation experts

# Hybrid framework
The hybrid automation framework is created by combining distinct features of two or more frameworks. This enhances the strengths of the different frameworks and mitigates their weaknesses. It is highly robust, flexible, and more maintainable. However, this requires strong technical expertise to design and maintain.

# Behavior-driven development framework
Behavior-driven development (BDD) framework automates validations in an easily readable and understandable format to business analysts, developers, testers, etc. Such frameworks do not
necessarily require the user to be acquainted with any programming language. There are different tools available for BDD like Cucumber, JBehave, and more which work along with other test automation tools. This framework is more suitable for applications using agile methodology and where user stories and early automation are required. It focuses on the behavior of the system rather than the implementation aspect of the system. The traceability between requirements and scripts is maintained throughout, and test scripts are easy to understand for the business users.