Test automation frameworks keeps all test automation artefacts in single format and easy to maintain, in addition brings faster and better ROI to organisations.
This article was written assuming the fact that you are aware of the necessity of automation testing and how to decide on which automation tool to be considered for test automation.
Lets see what are the list of most important factors to determine if a test automation framework is best or not. You should also understand that not every framework can acheive all of these factors:
- Less maintenance
- Easy to debug if any issues are encountered
- Shorter execution time
- Easy to understand the scripts
- Script parametrization
- Minimal manual intervention during certifications or testing cycles.
Understanding these factors, you need to decide which automation framework would be suitable for a given test automation project or implementation, these are mostly driven by the application under test, future plan of the organisations as what they want to do with these test assets and their business plan.
Lets deep dive in to each one after the other:
Any automation script or asset created should be easily maintainable, which means even if there is any functional change or UI object change or UI Layout changes or any synchronization changes, automation resource should be able to make necessary changes in a quick turn around time and keep the automation scripts and assets intact and workable.
Reusable: plays a major role in achieving less maintenance
Developing reusable assets will help in faster development of automation scripts and assets and there by increase the coverage of testing through automation, which would in turn reduce the testing costs and increase the accuracy of testing.
It also helps in maintaining the scripts intact even if there is any change in functionality, updating the scripts assets at one place would reflect the same in all the areas where it was reused.
Easy to debug during executions:
Should not involve major effort in performing the executions of automated test scripts, automation resource executing the scripts should be able to easily identify as where exactly the automation script has failed and if the cause of script execution failure is due to a functional issue or an issue in automation script. Automation resource is not supposed to spend major time in the identification it self.
Shorter execution time:
Need to find best possible ways to reduce the automation execution time and there by reduce the testing cycle time.
Easy to understand:
Automation resources should be able to understand the automation scripts and assets in a small turn around time by looking at them irrespective of having functional knowledge, this is majorly needed when a new person enters in to team or if there is a swap of resources across different functional areas of testing or if a person a leaves and a resource needs to take up new functional area apart from the existing ones.
Many a times the customers or clients would like to run the automated scenarios with different sets of test data, the framework should have the flexibility to run multiple iterations with same test data and with different sets of test data.
Minimal manual intervention:
The process of identifying the test case scenarios and the external factors involved to develop or execute the automation scripts should either have zero or least possible manual intervention.
The automation scripts should be highly stable and have either zero or least possible manual intervention.
Also in an organisation or team where people with different skills and capabilities working in single project may have lot of differences of opinions which needs to be addressed.
In order to address above said factors automation frameworks have come up and evolved along the time. Evolved primarily due to various business development models, type of applications, features, resource skill sets, capabilities, requirements for automation and none the least the management needs.
Note: understand that the factors are to be well balanced based on the requirements to design a better framework.
I have given my views and thoughts, this might need lot of evolution, appreciate if you can add more to this through comments and discussions.