This post was initially posted on LogiGear’s blog, and I decided to make a copy for my record.

A lot has been written about Test Automation, and one of the most important parts of a successful automation practice is picking your framework. In this article, we’ll cover what a framework is. We’ll focus on test automation frameworks and the types of test automation frameworks you can use and briefly touch on test automation tools.

What is a Framework?

According to Software Testing Help, “A framework is considered to be a combination of set tools, protocols, rules, standards, and guidelines that can be incorporated or followed as a whole to leverage the benefits provided by the Framework.”

There are many rules (sets of guidelines) for building the right Test Automation framework. If followed, the guidelines bring more benefits and less trouble for users.

Frameworks have key distinguishing features that separate them from normal libraries:

  • Inversion of control: in a framework, unlike in libraries, the overall flow of control is not dictated by the caller but by the framework.
  • Extensibility: the ability for a user to extend the framework — usually by selective overriding; programmers can add specialized user code to provide specific functionality.
  • Non-modifiable framework code: the framework, in general, is not supposed to be modified while accepting user-implemented extensions. In other words, users can extend the framework but should not modify its code.

Test Automation Framework

A Test Automation Framework is a framework that is created specifically to provide an execution environment for automated test scripts. It provides the user with various benefits that help them to develop, execute, and report on automated test scripts efficiently.

Here are some advantages of using a Test Automation Framework: ease of test development, scalability, modularity, readability, re-usability, and maintainability. There are several types of test automation frameworks that you can use for different types of testing/testing scenarios.

Types of Test Automation Framework

Linear Automation Framework

Also known as a record-and-playback framework, testers use linear automation frameworks to record test steps and then automatically play the script to conduct the test.

Modular Based Testing Framework

Built on the concept of abstraction, the Modular Based Testing Framework divides the entire “Application Under Test” (AUT) into several logical and isolated modules. For each module, we create separate and independent test scripts. The abstraction layer hides isolated module(s) or components from the rest of the AUT. Thus the changes made to this module do not affect others. These test scripts can be combined to make larger test scripts to achieve the required scenarios.

Library Architecture Testing Framework

Library Architecture Testing Framework is called “Structured Scripting” or “Functional Decomposition.” The basic fundamentals behind this framework include determining the common steps, grouping them into functions under a library, and calling those functions in the test scripts whenever required.

Data-Driven Framework

Data Driven Framework separates the test script's logic and the test data into two parts. Data-Driven automated testing is a method in which the test dataset is created in the excel sheet and then imported into Automation Testing tools to feed to the software under test (Software Testing Help). Using this framework, we easily make the test scripts work for different test datasets.

Keyword-Driven Framework

Defined by Tools QA, the Keyword Driven Framework is a type of Functional Test Automation Framework. It is also known as Table-Driven testing or Action Word Based testing. The Keyword Driven Framework will divide a Test Case into four parts: the Test Step, the Object of the Test Step, the Action on the Test Object, and the Data for the Test Object.

The main idea behind the Keyword Driven approach in Automation is to separate the coding or technical part from the test case & test step. This helps a non-technical person to understand Automation well.

This is further illustrated with the “action word-based testing approach,” Action Based Testing. Action-Based Testing is a modern approach to Keyword-Driven Testing. Action Based Testing is a modular-design and action-driven test method that provides a systematic approach to increase the success of automated testing. The modular design addresses test planning and test case management challenges through efficient test organization. Action-driven test development eliminates most of the programming work required to automate and maintain long-term tests. This alleviates the need for a technical testing staff.

Hybrid Testing Framework

A Hybrid Test Automation Framework combines two or more frameworks mentioned above. It attempts to leverage the strengths and benefits of other frameworks for the particular test environment it manages.

Behavior Driven Development Framework

According to Wikipedia In software engineering, Behavior-Driven Development (BDD) is a software development process that emerged from Test-Driven Development (TDD). Behavior-Driven Development combines the general techniques and principles of TDD with ideas from domain-driven design, object-oriented analysis, design (to provide software development), management teams with shared tools, and a shared process to collaborate on software development.

Final Thoughts

There are various other frameworks also in place. In this article, we discussed the basics of a Test Automation Framework. We also discussed the types of frameworks available in the market. Keyword-Driven Framework and Hybrid Testing Framework seems to have more benefits (than others).

If you are looking for an Automation Testing tool to help you design a solid Test Automation framework, then TestArchitect may be a good starting point. By utilizing Action Based Testing, this keyword-driven approach allows teams to create multiple Test Automation Frameworks for Keyword Driven testing, BDD, and data-driven testing. LogiGear’s CTO, Hans Buwalda, discusses how Action Based Testing can be used for BDD and Data-Driven testing in his Techwell Insights column.