I am a beginner Software tester. I have started to learn test automation of web apps using selenium webdriver in java. Till now I can just automate simple login functionality. I want to know all about test automation frameworks? What are some good practices to implement a framework. How to use design patterns in a framework?

Any good books, tutorials, material to learn about automation frameworks for a beginner?

  • You should get most of the answers on the search lord Google. See my answers for links/books and tutorials. Oct 4, 2015 at 2:58

9 Answers 9


I liked the "Selenium Testing Tools Cookbook". You should try it.

As per your question:

When people use a proven structure of handling (maintenance of script, running test) automation test scripts, which is suitable as per their requirement that’s an automation framework. Anyone can create his or her own framework as well which might be customized as per need.

But the most common and use frameworks are: Keyword driven, Behavior driven (cucumber-Jvm), Data Driven ,TESTNG frame work etc. People can also mix it and can make hybrid framework too!

Try to search of Google. A lot books of are there. You can also search and read first to get the familiar with the ideas before you pick a book.


  • 1
    POM is not a framework. It's a design pattern. You might want to clear that out. Oct 4, 2015 at 3:42

Here is what Google translated me when I searched the meaning of the word Framework

an essential supporting structure of a building, vehicle, or object.

a basic structure underlying a system, concept, or text.

This is precisely what Test Automation Frameworks are all about in Software Testing also. I assume you know what automation means and so I'm not gonna go into that. Coming directly on your questions :

I want to know all about test automation frameworks? what are they?

Framework can be defined as a set of guidelines which when followed produce beneficial results. When speaking in terms of Software testing, these can be set of guidelines like coding standards , test-data handling , object repository treatment etc. which when followed during automation scripting produce beneficial outcomes like increase code re-usage , higher portability , reduced script maintenance cost.

Some of the most commonly used frameworks are :

  • Module based framework
  • Library Architecture
  • Data Driven
  • Keyword Driven
  • Hybrid
  • Behavior Driven

You can easily find definitions of these on web. Here is a detailed description of all of these

Some other to read about Test Frameworks are these :

what are some good practices to implement a framework

While implementing a test framework you might want to consider quite a few things like cost and budget, resource, expectations. Here is a detailed description in my blog.

How to use design patterns in a framework?

I think this depends on how and which framework are you going to use. For example, POM (Page Object Model) seems to be a popular choice with frameworks having Selenium as automation tool.

Good books :

I think the links mentioned above should serve well for other purposes.


As a beginner, you are by definition not (yet) able to design proper framework, so don't waste your time. Start coding, and framework will emerge from your code after you make it work and refactor out code specific to your use case. Possibly after you do it second or third time.

Check "page object" design pattern, I used it to great benefit to my in-house framework. This answer (and the question) has more links


I think of Software Test Automation Frameworks as being a collection of tools that allow you to write automated test cases. Selenium itself is a framework as it defines syntax and apis of how to interact with it.
Another example is ruby on rails and rspec-capybara. Ruby also has mini-test. Pyhton has zope.testing, py.test and nose, java has testNG and Junit among many others.

Which to pick will depend on your existing infrastructure, technical proficiency, developers withskills available


Wikipedia defines Test Automation as a framework that provides the basis of test automation and simplifies the automation effort. The main advantage of a framework of assumptions, concepts and tools that provide support for automated software testing is the low cost for maintenance.

The programming language used to write the software is also a big factor to consider in choosing the right Test Automation Framework. For example, if you are to test a C# written application, NUnit might be the best. Java also has JUnit, PyUnit for Python, RSPEC for Ruby and many other automation frameworks. Also, there are other automation tools that works well in most languages, Selenium and Geb are good examples.

You might find this article useful too.


In simple words, a framework is a set of rules or guidelines that you define to follow when ever a test automation suite is designed. It can start with the naming convention of a variable to the folder structure, the way you want to separate the data and code, test case, validation etc...

The aim of having a framework is to make you and your team's life easier; in terms of modularity, readability, easy debug and scalability.


Framework is a structure which helps building and maintaining the test scripts easily.

We can have a automated test script without a framework but after a few months if someone asks you to modify that or reuse that code, it would definitely be a nightmare.

In that case a proper structure would be very helpful. A structure which defines where the test data comes from, where the output will go, which code will deal directly with the browser, what is the never changing part in the automation etc...

You can start building test scripts using POM, and slowly you will be able to figure out the problems. Then you can start solving them one by one easily.



A testing framework is a set of guidelines or rules used for creating and designing test cases. It helps testers to use resources more efficiently.


Test automation framework not comes up at the start up. Can have at the beginning but its better to comes up after with the requirement and current automation challenges face in the projects. So in the beginning its just automating the test scenarios and its fine. Once that phase is done then move into better way of doing things which become test automation framework for your projects. where you identify what are the challengers face with iteration wise and how we going to address those. How we going to maintain the code with minimum efforts.

  • 5
    How does this answers the question asked by OP? Nov 3, 2015 at 8:14

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.