Thursday, April 22, 2010

Test Automation Framework features

If you are interested in test automation, you have probably come across the term, Test Automation Framework, for example, as I explain in my Selenium Python Page Object Model Tutorial. First, see a Test Automation Framework in action in my Selenium Unit Testing Tutorial. Then read on.

A Test Automation Framework commonly consists of the implementation of certain concepts and code that gives a jump-start or provides support to one or more test automation projects. Before you design or enhance your Test Automation Framework, you should identify the objectives that you want to achieve with it.

Test Automation Framework features

The desired features of your Automation Framework may include:

General features
1. Re-use of existing code by writing code once and invoking it elsewhere
2. Consistency of test automation implementation by defining standards
3. Tool independence by implementing your framework as separate software
4. Ease of framework installation
5. Ease of framework maintenance
6. Ease of upgrading the deployed framework
7. Types of testing supported by the framework
8. Supported operating systems
9. Supported browsers

Features related to test design
10. Simple to learn and use
11. Common operations already built-in the framework
12. Help documentation with examples
13. Minimal changes to the test automation in case the application changes :)
14. Integration with version control systems and test management systems

Features related to test execution
15. Ability of the framework to run on multiple systems
16. Support for test configuration e.g. application name, server name/ URL and test cases to be executed
17. Support for scheduled execution
18. Supported invocations of the framework e.g. by GUI or by command-line
19. Support for invoking and closing/ shutting down the application(s) under test
20. Ability to connect to myriad test data sources and collect test data
21. Fast performance
22. Robustness
23. Error recovery e.g. by dismissing unknown windows, retrying a failed operation with/ without configurable delays, proceeding to the next step/ test case and even resetting or re-starting the application(s) under test
24. Integration with defect tracking systems
25. Clean up test data in the application(s) under test after completing each test

Features related to test reporting
26. Logging states and results
27. Reporting test results (in one or multiple formats e.g. Excel or HTML) with metrics such as number of test cases in the test plan, test cases executed, test cases passed, test cases failed and the time taken to execute the test cases
28. Distributing test results e.g. by publishing to web or email

When you estimate the effort it is going to take to build the desired features in your Automation Framework, you may find that the time available is not sufficient. You should then prioritize the features and build the most important ones first. Start small. As your Automation Framework is used in test automation projects, you may learn about the problems faced while using your framework. You should then prioritize the fixes and enhancements and build upon your existing Automation Framework accordingly.


  1. Excellent Article, all points well articulated here. This will help anyone who is newly designing a framework or enhancing an existing one.


  2. Thanks for the article, excellent stuff.
    You can get info on Software Testing Carrier as well with some guidelines with different way of thinking.