Guidelines To Design An Automation Testing Framework
All programmers agree on the importance of an efficient framework whether it is developing an application or automated testing. For automation testing, there are a bunch of frameworks available online like Robot and Nose, even python provides Pytest with all basic features a framework should possess. While these frameworks provide a wide range of features they may always not be customizable to your needs. Apart from the feature, there will always be an external dependency for support and maintenance with these frameworks. What will you do in that scenario? Compromise? That is not the solution for long-term, at least with the framework.
What if you can design a framework which works flawlessly with your application? Assuming you are a bit flexible about time (and why not if it will save you a lot of time, trouble and complexity in future) and you have required expertise in a programming language. Here I will provide you with basics and flow for creating your own framework as per your needs. And it is going to be exciting!!!
Please note that here I will not provide you with any codes as it will not be applicable to your situation. Although you will get to know the flow for creating a framework, features you can add to your framework and guidelines and best practices.
Framework:
Resources: This section will deal with the things you need to start your testing, like build to test and the user inputs from a config file it can be a JSON or INI or any other supported format. We use testconfig.ini and framework.ini which contain user inputs related to test scripts and framework respectively.
Test Driver: This section will deal with the test case format and how you want to run test cases, one at a time or running multiple test cases or a group of test cases identified by a keyword. You can also add a remote communication point for remote execution of test cases.
Functional API: This section will have the APIs related to application functionality.
Reporting: As after testing we need to store and report the results, here we can configure those. We can choose to create an HTML report or email the report.
Third Party Tools Integration: We can create modules for our framework to interact with third-party applications like JIRA for updating the run results of a test case. Or for any other purposes specific to your application and requirements.
Features to be included in the framework:
A framework is a set of guidelines which you should follow for like increase code re-usage, higher portability, reduced script maintenance and consistency in your code. What features we should expect in a framework?
1. Handle scripts to be executed and input parameters separately
2. Library to contain all reusable components
3. Reporting of results
4. Integration with third-party tools
5. Automated trigger with no human intervention i.e. self-executing and self-cleaning
This is just a basic list to consider while designing a framework, you can either add or remove anything as per your requirements, environment and application under consideration. Mind you these are just guidelines and not rules. Using below framework design we have automated close to 500 test cases for an enterprise level web application.
Leave a Reply