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.
Designing an automation framework is necessary when we are going to automate any software product and by automating software products we can be assure of its already fixed functionality. To make the automation process successful for any product, a well designed automation framework is mandatory & it should be well executed to achieve the best result out of the product.
We can say that framework is a combination of coding standards, test data handling, and object repository management that are followed during automation scripting which results in producing beneficial outcomes such as re-usage of the same code in multiple projects, higher portability. It also decrease the script maintenance cost as well. There are a lot of things that should be considered while designing an automation framework. As it will gonna be the blue print of the whole structure where your product stands out, you must have to keep an close eye while designing any of its segment.
If I go to explain in the simple terms, design of test automation framework is defined as an organization’s way of doing things that provide support to an entity that could further expand in future. The scripts are designed and executed within a test automation framework. In the software domain, it is widely accepted practice to follow a set of standards that would lead to successful execution of software projects. Check out the below mentioned factors that you must keep in mind while designing a test automation framework. Let’s explore:
Reports and Logs: Test automation framework should provide all the details required for test execution. Logs should be provided with necessary details of problem along with the custom message.
Scripts and Data Handling: Input test data should be kept separated from the Automated test scripts.
Library: Library should contain the external connections such as databases, application & generic functions as well as all the reusable components.
Scripting Standards: Maintain a coding standard across the test automation framework is necessary.
Well Organized Framework: An organized framework provide support for addition of new features and easy integration with automation tools and third party tools etc.
Configuration Options: Framework should provide an option to select the configurations at run time so that it can be used as per the test execution requirement.
Good Design: Test design should be such that the application locators are separated from the test code so that the locators can be updated independently in the locator file. Test data should be separated from the code and pulled from the excel, csv or xml file and data can be updated whenever required.
Framework Versioning: Various versions of framework should be maintained in a local repository which would further help in easy monitoring of the changes made to the software code.
Extensibility and Maintenance: An ideal test automation framework should withstand all new enhancements to the software application and allow modification of the existing features.
Finally, a well designed automation framework is always highly recommended by every automation testing service provider, before initialization of any test automation process, as this would not only support the software testing process, but also help in improving the product quality on long terms basis. If it is properly designed and implemented then the clients and business community would get a clear understanding of benefits of implementing a test automation framework.