Before we start lets understand what management wants from automation:
A good structure that will increase the re usability and reduce the cost:
Abstraction is the key for a good framework. Three to four folds abstraction is believed to be best framework. In the low level all wrapper functions to be built on top of GUI objects. This layer is tool specific, but more we go upwards, it will be generic.
In second level, the business component or high level components are built using the wrapper or low level components. On top level the business components stays. That is the core business functionality. The business user should not be bothering about the middle layer or lower level layer of testcases. The early bird may catch the worm but the second mouse gets the cheese!!.
If automation is started too early ,the application could vary greatly which is notably increase the cost of automated test maintenance. If stared too late , automated tests would be executed too infrequently to justify the expenditure on automation.If not all our automation regression cycle may delay the release and product may go to the market very late.
Easy Shifting to other tool:-Portability:
So the transformation is something like lower layer is tool specific but more you go towards up, it is all about the core business. So migration from one tool to another is easy. This plan is required as what is best today may not be suitable tomorrow.
No dependency on Core Automation team: Everybody's right to automate:
Abstraction is also required when there is a mixture of users,the tester and automator .This kind of layer architecture hides the technical details from testers.There are many online tools available to have an interface. Like-QC,Flow builder. Even old days excel is a classic example of such interface.All these interfaces are having excel like grid UI to select a testcases, simple drag and drop of components or simple keywords to connect the components. This architecture gives automation a longer life. Easy to use feature.Test engineers can think more scenarios rather the test tool. It gives freedom to the testers. Manual test engineers can benefited by simply designing the flow with this UI. Maximum resource utilization is possible in this approach.
Ease of Resource Movement:
Another way to look at it is to technology neutral test automation architecture gives advantages of resource mobility. Even different segments of users can take part in application testing and can get benefited. When there is a need like attrition of test developer or executor, this process can eliminate the vacuum. More over this approach is more dependent on process rather people.
It is always better to keep technical knowledge requirement to a minimum for business-level testers,but provide training ans support for any technical tasks for doing such work. Organisation viz management gets benefited if non technical or less technical testers can develop less technical automation scripts,execute,debug and report. In that case core automation team can look into main functionality or core component development.
Second important aspect of framework is the separation between test and execution tool.A good structure is made of
- Data files
- Programming practices and guideline
- Well structures
- Modularity for reusability
Low Maintenance:In agile world,where functionalities are getting changed , the maintenance or upgrade cost will be real low for a nicely structured framework. Object map design is another best practice for good framework. Combined these all can lower the maintenance cost.
Below are some of the links which can give more detail view of framework concept:
Idea of Framework
Perspective of Automation testing framework at different phase
Test Automation framework
Features of today's Automation Testing Framework
Features of today's Automation Testing Framework Part-2
Management often find themselves into a situation where the budget hits the automation most.Funding for automation is an important factor for survival and support today's automation.Management must understand the importance and benefits of automation.A far sighted champion is necessary to get good growth of automation.
A small scale start will always help to raise the awareness of the benefits of automation.Benefits must be quantitative and qualititive. Both should be clear. The goal of a coverage mode test tend to involve packed targets that appear regularly everywhere in the test model.
There can be different kind of coverage:
- A usecase test can often only programmed with a single specific action,making the target extremely sparse.
- A bug hunt mode has no specific target at all.The below guidance algorithm must base its decision on other criteria.A simplest of guidance algorithm is the completely random one. The main advantage of such algorithm is speed.,It is best for densely appearing targets.
Unrealistic imposed objectives(total automation) guarantees failures.Automation is not always successful ,even in some organization identifies the relevant factors and learnt team aspiration whether good or bad. It is not a good idea to try to automate all tests but this can be difficult point for managers and stakeholders accepts.