90% of Automation Projects Fail to Give Promised Value. They keep getting trapped in the same old mistakes.
Here are common traps to avoid if you want to succeed in automation:
1. Don’t underestimate the cost of automation.
- Underestimating the true time needed to do automation will eventually give a sense of automation taking too much time to your stakeholders.
- Setting correct estimates and processes is important.
2. Don’t underestimate the need for training / learnings.
- Maybe you know the tools and languages in your toolchain but is your team on board too? If not, better account for the time required for training / learning.
- The team may need training on topics like clean code, etc.
3. Don’t expect to be more productive over the short term.
- Don’t be over-optimistic with your productivity.
- Account for team meetings, org meetings, fests, and other things that will reduce your actual work time.
4. Don’t spend all your time and effort on regression testing.
- Regression is one facet of delivering value via automation.
- What about adding value by automating test data generation, environment setup, ci scripts, etc?
- In short: Go beyond regression testing.
5. Don’t use instability of code as an excuse.
- Unstable code is a shock for anyone coming from a dev background.
- Building a stable code is part of your responsibility as a tester.
- Ask for testability/automatability at the start. Don’t wait till the end and then give an excuse.
6. Don’t put off finding bugs in order to write test cases.
- Automation is important but stakeholders came to you for “testing” first.
- Stop prioritizing test scripting over raising bugs in the product.
- Give them feedback first and then work on your scripts.
7. Don’t write simplistic test cases.
- Don’t waste your time validating that a field should be empty by default or that the text of the submit button is “Submit”.
- Focus your time and effort on tests that actually matter.
- Don’t just automate anything for the sake of it.
8. Don’t shoot for 100% automation.
- 100% is a dream number in testing world.
- Don’t use it for automation too.
- Be realistic, Don’t set wrong expectations.
9. Don’t use record / playback tools.
- I know they find it easy to create scripts.
- Easy is a disaster in the long run.
- Don’t cut corners. Record and playback is a failure recipe (Time Tested)
10. Don’t create test scripts that won’t be easy to maintain in the long term.
- Think of modularity, reusability, and design principles.
- Don’t create a short-term mess for rotting in the long run.
11. Don’t make the code machine / user-specific.
- No hard codes or reckless assumptions in the scripts.
- Keep things configurable
- It should NOT JUST WORK ON YOUR MACHINE.
12. Don’t fail to treat this as a genuine programming project.
- Automation = Development.
- Whoever doesn’t believe it is living in a fairy world.
- It’s a separate project on its own.
13. Don’t “forget” to document your work.
- The next new engineer in your team doesn’t know the “obvious” things that you do.
- Document the work or wait for them to recreate and re-engineer the same thing again and again.
- Document, PLEASE!!!
14. Don’t deal unthinkingly with legacy project code.
- Old codes can be messy.
- Don’t assume.
- Don’t make minor modifications assuming no side effects. Better test it before making a change in production.
15. Don’t insist that all your testers be programmers.
- Not everyone is meant for everything.
- Let people work on their strengths.
- Otherwise, you will have a team of “JUGADU” automators.
16. Don’t ignore library updates and their effect on your automation.
- Sometimes, you may face breaking changes.
- Sometimes, you will face library bugs.
- Be open to realities 🙂
17. Don’t forget to clear the fantasies that might have been spoonfed to your management by some vendor.
- Marketers can create fake illusions for management disrupting their expectations.
- Clear any such fantasies. Be realistic!
Hoilllaa! That’s all!
Credits: Cem Kaner, Software Test Automation Paper.