Companies often know they should be writing automated tests but “don’t have the time”. As a result, they may pay an outside agency to write their automated tests for them or assign it to a QA team. This situation is far from ideal: Developers should be writing the automated tests for their code. An outside agency or QA team can be used to write more functional, higher level tests as a safety net to that. I really believe this is the only correct way to do it. But, if you insist on having an outside agency or QA do it, here are some important dos and don’ts:
There are people out there who are not the biggest fans of automated tests. They think they cause more trouble than they are worth. I can definitely sympathize with that perspective. In fact, I will readily admit it can be completely true. A bad automated test can be worse than no test. But, I’ve worked on projects that had a lot of good automated tests and I think they were better off for them.
There are people out there who think writing all these automated tests is usually more trouble than it’s worth. The alternative to automated tests is to “run your software frequently in a live scenario to test the features as they’re being deployed“. But, I have some questions for the people that feel this way: