Wednesday, February 29, 2012

Incredible Summary of Where Software Testing Could Improve

I ran across an article today about "What is the biggest weakness in software testing today?" Noah Sussman put forth the most succinct and clear articulation on the real cost of software testing I've ever seen. Seems like I've been stumbling along for years trying to make the point he does in a mere 212 words.

Noah Sussman, Technical Lead, Etsy:A surprising number of organizations seem to dramatically underestimate the costs of software testing.
Testability is a feature and tests are a second feature. Having tests depends on the testability of an application. Thus, “testing” entails the implementation and maintenance of two separate but dependent application features. It makes sense then that testing should be difficult and expensive. Yet many enterprise testing efforts do not seem to take into account the fact that testing an application incurs the cost of adding two new, non-trivial features to that application.
There also seems to be a widespread misconception that testing somehow makes application development easier. In fact the opposite is true.
If I may mangle Kernighan: testing is much more difficult than writing the code in the first place. To implement testability and then write tests, one needs first to understand the architecture of the application under test. But testing also requires doing hard things — like input partitioning and path reduction — that are beyond the scope of the application. The reality is that to get good tests, you’re going to have to ask some of your best people to work on the problem (instead of having them work on user-facing application features). Yet many organizations seem not yet to have recognized this.

Awesome. Thank you Noah.