80% of the automation testing projects turn into a firefighting mode post delivery.
What are the common reasons for poor automation projects.
- Synchronization issues
- Application changes over a period of time breaking the automation code
- Bad Framework design
- Poor coding techniques
- Impact of changes in environments (SIT, UAT, DEV) and data issues in different environments
- Unstable environments - Interconnected systems and services not working properly
- Poor reporting mechanism used in the automation framework does not help to find out the exact problem in the application under test.
With so many issues in automation project, engineers usually find it very frustrating to be working in such projects. Instead of providing return on investment, most of projects turn out to be expensive due to the heavy maintenance efforts required to fix the issues that keep cropping up. So how you can make the automation project a big success. You can follow below guidelines to handle any automation project with ease.
- Remember that 80% of the problems in the code occur due to 20% issues. If you can nail down recurring issues, you will have a big sigh of relief.
- Add robust synchronization points to synchronize your automation code with the application response. Application response time always keeps changing. So avoid fixed time outs. It's a big NO. Problem with fix timeouts is that they are very inefficient and does not solve the purpose of synchronization at all. On the contrary, heavy use of time outs may lead to slower execution time. Additionally, what if application takes more time to respond than fix time out? To handle such scenarios, try to always use the synchronization points based on the application objects, properties and values. Sometimes, you may need to repeat certain steps (Code block) to better synchronize the application.
- Design a proper reporting mechanism and error handling in the code which will help you catch the problems by just looking at the report of execution. What is more frustrating is to reproduce the issue by manually executing the test. To avoid it, create impressive reports that will be easy to read. Video recording the test execution can be very useful in troubleshooting the problems.
- Major problems occur at the time of executing tests in different environments. So you should have detailed documentation on how to set up the build agents, how to set up configuration files and any other prerequisites that may require. Always have separate configuration files for each environment.
- Never ignore application errors and exception that you see while automating the application or executing your tests. Try to handle all these errors and report them so that you can easily explain to the stakeholders why tests failed. For each error that you handle, try to add recovery logic to resume the execution in more graceful manner.
- Property values used for identifying the objects should be very robust. Slight change in the values should not break the ability of the code to identify the objects. Using regular expressions wherever possible could be very handy.
No comments:
Post a Comment
Leave your valuable feedback. Your thoughts do matter to us.