Today I received an interesting email from someone trying to sell an online tutorial on WebdriverIO which posed the following:
"Quick question: What holds you back from writing automated tests?"
Based on my personal experience doing various projects in the wonderful world of software development, here is a list of reasons with which I replied:
- The product is already finished and in production so there's no more budget left for automated testing.
- The platform is legacy software and no one understands how it works.
- We already have an army of functional testers in India who are manually testing everything, and it's cheap.
- You need "technical" people to setup the the automated test environment, and the only technical people we have are developers and system admins.
- Developers hate to write tests and have no time to learn it.
- Most testers are high-level black-box functional testers and are not concerned with the internal details nor are technical enough to understand the underlying software.
- Setting up an automated environment is expensive.
- There are already tons of tests failing and no one gives a damn.
- The CI runs from Jenkins and the guy that set things up is no longer working for us (don't fix whats not broken).
- Managers do not fully understand what automated testing is and how it really works and are therefore unwilling to invest money.
- Automated testing means that the functionality of the complete product is known, however mostly it is undocumented or specific areas of expertise limited to certain privileged individuals.
- We're too busy and have no time.
- Good testers are hard to find, especially those that are technically inclined and/or understand how to write software.
- The product is not stable and is changing too frequently, meaning that time spent invested in writing test scripts that will continuously break is not worth it.