What is Test Automation all about:Test automation is a concept where the Automation experts uses a tool and try to simulate an user's activity.In other word they put intelligence to computer through coding by which computer behaves like an user. By doing this method automation test engineers mainly reduce
- The pain of testing a same piece of application with different set of data in multiple time.
- Manual intervention to the system
- Regression effect due to a bug fix or new implementation
Process of Automation Testing:
- Record /code the required place(100% testing through automation is not possible)
- Change as per framework.
- Insert data in the data table in case test engineers need to test for multiple iterations.
- Execute the code
- Generate result
- Validate the result.
Problems of Traditional Automation Testing Process:
- Most of times the codes made by automation engineers become more of personal code. I mean very much test engineer's specific code. Poor variable deceleration . I have seen people using girlfriend's name as a variable.No comments!!! Due to these problems a test engineer do not want to update or debug some other test engineer's code.
- Test engineers try to inject new code by simply click on record. Do all the transformation on recorded code to make it as per framework.(Some do not bother to transform also).This bring problem absolute no re usability of the existing code. The previous development cost becomes useless.
- Even if there is a review process defined,they are very much unstructured. They mainly checks the variable declaration,format of the script,entry and exit reporting.Inbuilt logic becomes untouched.This leads to script failure later part.
- Time is another factor which leads to poor review of automation test code .It is always given the least time and last priority.Most of the automation engineers are more interested to run a flow and complete it rather than review of the code.
- Managers are not open to find out a bug in the script code. Rather it is always a blame game with developer , manual QA process.
- A test engineer's performance can not be measured with how many defects he has caught and whose code run perfectly without any problem.When I said that scripts are executing perfectly, it is meant without manual intervention. But Manual intervention never means an automation test engineer is poor at coding,there can be n number of reasons behind that.Frequently these problems lead to poor performance appraisal for a test engineers.As a result test engineer is more interested to make a result pass rather investigating the root cause of the problem.
- GUI object change is also one more reason why testing process fails.Say in release x it was only drop down but in release y it became editable field.In our day to day life automation engineers never track an object. They only depend on tool to identify those cases.When failed , test engineers try to fix it.This reactive approach not only slow down the execution speed also can open a regression effect or can mess up everything.
- Improper tool selection is also a major contributor to the faulty process.I have seen tools which records the action itself and unable to run it back.I have seen a tool which when generate fresh code able to run. But if saved and run later always throws error "Object not found" even if the object is there.
- Insufficient knowledge about the tool also make process unhealthy.
- Too much of function learning while automating the flow may contributes a percentage to the wrong automation testing process .