We all know that testing/verification activities are important in any software project, but how important? Most referenced paper on this topic I could find is B. Hailpern and P. Santhanam's paper on IBM Systems Journal in 2002. They stated:
"In a typical commercial development organization, the cost of providing this assurance via appropriate debugging, testing, and verixEFxACx81cation activities can easily range from 50 to 75 percent of the total development cost." - IBM SYSTEMS JOURNAL, VOL 41, NO 1, 2002
This article 'The Case for Automated Software Testing' by Bernie Gauf and Elfriede Dustin, IDT contains further survey statistics on the time spent on testing out of total software development cycle:
Although the numbers vary, it is safe to say mostly will agree to the ratio in the range of 30%-75%. The average: >50%. Nowadays software are released more frequently, i.e, requires more testing effort. If we take this into consideration, the figure is even higher.
Some might find about more than half effort on testing/verification hard to believe, my observation is in align with the authors above, that's is reality in many software projects. Now I let me explain, verification in software department is not only limited to testers (what's why I used 'verification' instead of 'testing'), most of team members in a software projects doing verification:
- Testers test a build against requirements
- Programmers verify functions being developed or bug fixes
- Business Analysts verify the implementation matches customer's expectation.
Please note that they do these activities pretty much every day.
If your software project is late, over budget and looks like a mission impossible, verification is the first area you shall look into for improvement.