Testing, Fixing and Costs

For those of you who don’t know me, you almost certainly won’t know what I do. Of course, there are probably a load of people who do know me, who still don’t know what I do (and, no, “Nothing” is not the answer). I work as a software tester and I have done for the last 7+ years now in a few different places.

cost_curve1Generally, this job involves a fair bit of evangalism – sometimes it’s quite successful (eg Promoting the use of Bugzilla as a defect tracking tool). One of my favourite diagrams is that shown in this post – I like this graph a lot. It is a graph showing the rough relationship between the cost of fixing a bug or defect, and what stage of the development process that bug or defect was found.

It’s fairly clear from the graph that, the later you realise there is a problem, the more it costs you to go back and unravel what is wrong and sort it. The reasons are fairly clear – if you find a problem at a later stage, you often have to go right back to the beginning of the process of development, testing and so on.

Some notes I like to make relating to this:

  1. Even if you are already employed by a company, you are not “free”. Having someone fix a problem, and work repeated costs money – “we already pay their wages” is not an argument! Sheffield Teaching Hospitals Trust – take heed (Quote from the Reg article: The trust argued that the consequences of its decision making had not cost public money, “just time and effort by the IT teams”.).
  2. Accurate. timely requirements are essential. Finding out that you have mis-specified something as it is nearing the release date is a Bad Thing™.
  3. Not having requirements before coding is asking for even more trouble.
  4. Changing requirements part way through the process (or, worse, finding out during testing that your requirements were duff!) is much along the lines of 2 and 3 with similar outcomes (moving goalposts anyone?).
  5. Doing unit testing is much better than sending code straight to the testers – it saves a lot of heartache on both sides…
  6. Actually having enough time to perform a sufficient level of testing can save you an enormous amount of hassle and cost.
  7. Squishing bugs as you go at the earliest possible opportunity is much advised – multiple bugs can quickly make a system unusable and costly to fix up. (There is another similarly shaped graph – see it as The Law Of Bugterial Infection)
  8. No one is perfect… not even me 😉

Feel free to use the graph above if you want and evangelise away…

CC BY-NC-SA 4.0 Testing, Fixing and Costs by Graeme Coates is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License.

3 thoughts on “Testing, Fixing and Costs”

  1. Ah yes – welcome to the often non-existant world of unit testing. The “I’ve written it, so it must be OK” mentality is far too prevalent… Feel free to nick the graph and evangelise away!

    (Actually, the curve should be even steeper I think – the number of “bugs” I have seen that have been introduced because the specification was utter crap is unbelievable…I once wasted 2 months testing a required messaging feature (as well as re-writing proper requirements for it), retesting, etc. – only to be told by the user when demonstrating the finished product that it was actually not required, as it would allow anyone to send messages to anyone else on the system and they didn’t want that! It’s never been used to this day…)

  2. tell me about it. I am trying to create a forum product at the moment. and a jobs search. There are more bugs than actual requirements, i’m sure.

Leave a Reply