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.
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.
Your framework will communicate between Systems, interfaces and application under test.
Here we will put all the product-specific operations which we have to perform every time we start testing an application like installation, prerequisites check, test cases to be executed.
Below is the flowchart which we follow for our automation testing. You can use this adaptation or use a modified version of it