We all are aware of commonly used automation tools such as HP’s Unified Functional Testing [UFT], Selenium, IBM’s Rational Functional Tester [RFT], FitNesse. These tools simplify the process of automation required to perform repeated tasks. Could anyone help me in considering the parameters while designing framework.
Great question! In my opinion, one of the primary parameters is designing a framework is framework maintenance. Framework maintenance should be minimized while still providing benefit to testers and testing. Too many times I’ve seen over designed frameworks become the primary focus of a person providing automation to a product team because the framework needs constant maintenance. When this occurs, the automation person is not as valuable to the product team because they spend more time maintaining than they do adding value to product delivery.
As an automation person, your primary goal is not a framework. Rather, it is just enough utility to provide benefit to the product team in terms of improving testability, delivering good automation, and maintaining an awareness for test improvement opportunities.
An automation framework defines a set of rules followed in a systematic way to get expected results and verify product on some standards. It also provides an execution environment for automated test scripts. Designing an automation framework is not an easy task, as various factors are determined before finalizing the structure of any framework. Factors such as application size, type of data used by application, ease of support and use, logical interaction of components, reporting etc.
Some common examples of automation framework:
- Data Driven Automation Framework
- Keyword Driven Automation Framework
- Modular Automation Framework
- Hybrid Automation Framework
- Linear Scripting Framework
- Behavior Driven Development Framework
After analyzing the pros and cons of these frameworks, most of the automation testing company goes with hybrid automation framework. In agile development, testers don’t have enough time for automating new features in time, so it can be possible duplicating a lot of code in many places. A good framework should be out of such practices. Refactoring code is the best practice to avoid building up a huge tech debt.
Key parameters while developing a test automation framework, one should take notice into are:
- Handling of scripts and data separately
- Create libraries
- Following coding standards
- Should provide high extensibility
- Requires less maintenance
- Script/Framework version control
- Should have meaningful logging and reporting structure
The process of designing automation framework and developing it requires a lot of efforts & planning. To achieve the desired results, one must design framework accurately and with fine approach. A framework must be designed with a perspective to future requirements and using current technologies so that it can be used across projects in an organization.
Hope this information will be helpful for you.