I read the following article earlier today: Bronze Age Development. The article considers the amount of time spent testing compared to the amount of time in development, and reflects on the fact testing is likely to take longer than development – despite the fact that even now many people believe that it shouldn’t.
On consideration I suggested that, in fact, we could expect the relative amount of time spent testing to increase with the use of modern tools and reuse techniques. A quick search on the subject brought out the following quote:
“Fred Brooks (author of the Mythical Man Month) found that the following rule of thumb allocates time for software development with reasonable accuracy: 1/3 specification and design, 1/6 programming, 1/4 function and integration testing, and 1/4 system test.” (Avoiding software project overruns: watch the ratio!)
It seems that testing is historically three times the size of the development effort. I have been looking, but can’t find any studies which show how these ratios have varied over time, or for the different technologies and development styles. I’m slightly surprised by this, but for the moment would suggest that it would be worth using these values as a starting point. I would also strongly agree with the watch the ratios article above: Keep a track of the ratios of the levels of effort and time expended in your project. If they vary widely from reasonable values investigate why. If not, the chances are something might be going wrong in your process.