Most of the time the test automation engineers build framework or rectify the current one or upgrade the current framework.
The objective of the automation are:
- Test execution can be completed faster
- consistent and effectiveness
- Re usability makes better ROI.
- Reduce the cost of testing
Few basic criteria for Automation:
- Tool must support UAT
- Multiple releases should be carried out
- Less manual intervention
- Project should be in spiral model.
- UAT should be stable
- budget should be there to carry out expensive automation
Importance of framework –
- Easy Maintenance
- Better ROI
Examples of automation:
- sending bank statement
- credit salary information
- Any manual process which is repetitive and tedious.
For automation , we need to pick up a tool and script using underlying programming language. Example of the tools-UFT/QTP,Selenium,Silktest,RFT,Test partner.
Automation testing is activated if there are two conditions
1. if you are doing regression testing for single or multiple dataset
2. if your application is stable enough to perform the test repeatedly
Steps for Automation:
- Collect the acceptance testcases/ regression testcases
- Record and code the script
- Improve the testscript in order to reliability.
- Parameterize the hard coded values
- Separate the test data from code by moving variables to a separate files
- Create utility functions
So creating a basic framework needs the following things covered:
- Prototype components
- Test designing
- Create test interpreter
- Create AUT specific test drivers
- Add repository
- Add logger,reports capabilities
- Create test documentation.
Phases of Automation Testing:
- Development phase
- Execution phase
- Maintenance phase
Why Automation fails?
These are the main reasons why automation fails.
- Iterative Development
- Different failure
- Technology Change
Here are the top ten features of today’s automation.
Coverage is the most important feature of any Automation success. In my view a simple framework creation which can cover more is much more acceptable than a complex framework which covers less. So decide correctly by which approach you can get more coverage.When we get a big flow to automate , generally seen very less time is given to make it done.Management often misunderstood the term automatic and automated. Allocated time is not sufficient as the development team pushes the patching window or crosses the deadlines.This time an automation test engineers thinks to find out all the reusable components so that the development time becomes less.We use a lot of loop to do same activity again and again. We try to automate what ever is possible. Our objective is to check an outline to check the overall completeness.Smart enough to complete the task???
standard become important as more people will be developing in a very short span of time. Getting feedback from the framework users will help for latter acceptance. Automation Test development is a dedicated effort, there is nothing called free lunch.(often management asks for free or extra time of a tester to automate the flow.) Yes,we can automate in a shorter span of time. but shall we??
No!!. we must not automate poor tests.Efforts put into automating high value,high quality tests will improve the test execution and provides greater pay back. Similarly, simply automating manual testcases may not give us better ROI or a best automation suite.Select the tests judiciously.
Don’t try to automate very complex flows at first.Automation should go in a slow but steady pace.Identify the proper testcase while automating the complex flows. If you automate chaos,all you will get a faster chaos.Smoke testcases are designed to check health of the builds,releases. This type of tests saves hundreds of hours for testers and developers. Smoke testcases are good place to start the automation development, as they run almost everyday,on every checkin,or on every build.This is a less value add for testers error prone and boring.
Extended environment and multitool Support:
Most of designed Automation is not environment neutral. They support only one Operating system or one tool specific. Please build a framework that will work for multiple OS or in multiple tool. This can be achieved through designing a loosely coupled system.
The second most important issue is data issue.Most of the time either data is not present or wrong data causes the execution to stop.Even using manual testdata sometimes gives wrong output. The third point may be data-hell condition. When we create a lot of modular scripts and try to create data for modular approach we create same data again and again.Say I need to change a set of data there is no mechanism to make the this latent change reflect everywhere. We have to open the child script datasheet one by one and change. there is no consistency at all between the data. These causes problem When running the scripts.
What I mean that any test can be operated from any machine.Let us improve the framework little bit more. I can copy the master driver which will automatically create the folder structure add up the necessary dependent files and will be ready to run any testcases.
An Automation process is very much useful When a non technical person can create an automation testcase and execute the same. Basic building block of such kind of framework is to create business process. A non technical person might not understand your piece of code but very well understand the Business process. He should not bother about the under laying code.
Ease of Functionality can be achieved When we can give user a platform where user can plug in and plug out any extra feature he/she required/not required respectively.Like Manager , business analysts and functional people can control global testing without knowing the tool.This will truly become Skill Utilization too.The more we make our framework user friendly , by providing Easy controlled and controllable actions ,More it will be a go to tool for all.This feature will allow business user to scope a set of testcases or scenario for a specific business flow.
Easy Reporting and Self documentation:
This is one more improvement that can be implemented is the self documentation of steps performed. Gradually this feature will give proper navigation step validation and data validation in future.