One of the first corners new startups often make is skimping on unit testing for software products. The typical story is:
- Testing is expensive – we can add it later.
- Testing is the vendor’s problem.
- I expect zero defects, and I don’t care how the vendor gets there.
Aside the fact that testing results in much higher quality and lets you take better products to market, there’s another benefit. According to an IBM / Microsoft study that compared four software development teams, two that tested first (the engineering process for this is called “Test Driven Development” or TDD) clearly outperformed teams that did minimal testing:
“What the research team found was that the TDD teams produced code that was 60 to 90 percent better in terms of defect density than non-TDD teams. They also discovered that TDD teams took longer to complete their projects—15 to 35 percent longer.” — Realizing quality improvement through test driven development: results and experiences of four industrial teams
The big winner when you pass on testing is the vendor, and the big loser is your customers.
More interesting software engineeering misconceptions corrected: Exploding Software-Engineering Myths