Can automated testing really replace all manual testing? Software development strategies such as Agile methods are highly committed with the idea of devoting a large part of an organization’s testing resources, if not 100%, to automated testing. Jonathan Kohl reflects on this “over-automation” debate in his blog entry about the risks of Reckless Test Automation.

This controversy isn’t new news - for years the software industry has been trying to understand what constitutes Agile methods such as Extreme Programming (XP). The idea that all tests should be automated continues to saturate the industry. Yes, there are some clear benefits of test automation. Tests can be run faster, they’re consistent, there is less overhead, the quality assurance cycle is presumed shorter. Kohl does point out that test automation will truly deliver, however some amount of manual ad-hoc testing is the supplement needed to fill in the holes.

I agree with Kohl’s outlook - although I don’t necessarily agree that every member of the Agile community is enthusiastically supporting the 100% automation methodology. Automated unit tests and functional tests have great value and are a cornerstone of many agile development methods but this is just a small part of the overall testing effort. In instances where you’re only going to run the test once or twice tests are better suited for manual execution.

In the end, it really comes down to the appropriate choice of tools, techniques and approaches for the test at hand. The moral of Kohl’s story is that sometimes there is just no substitute for simple human involvement with a product. Every software development shop needs to find a good balance between both automated and manual testing, if you go too far in either direction, the results will be reckless.