in reply to OT: Agile programming; velocity during testing?

It's impossible to predict the unknown. The best you can do is limit the number of bugs that get through, by rigorous testing at each phase of development. Every function is considered a potential bug until tested for all possible inputs (min, max, a random middle case if a range of inputs, all inputs if a finite non-sequential set). Every routine using an untested function is considered a potential bug until all functions it uses are tested and the routine itself is tested. Every section of the program using an untested routine is considered a potential bug, etc. etc. Testing takes time, but in a large project that's more than made up for by time saved not having to fix bugs that could be anywhere inside hundreds of thousands of lines of code.

Basically, your best bet is to read up on how to properly test your program and prevent bugs. You limit disease through proper hygiene, not by worrying about how you're going to stock a cure for everything on the face of the planet. If a bug DOES make it through your testing procedures intact, estimate time based on the programming phase you're currently in (a bug in a routine is far easier to locate and fix than a bug somewhere in a "finished" program) and don't sweat specifics. Eventually you'll have enough bugs from each phase so you can fairly well average based on past performance how long it's going to take.

  • Comment on Re: OT: Agile programming; velocity during testing?

Replies are listed 'Best First'.
Re^2: OT: Agile programming; velocity during testing?
by Whitehawke (Pilgrim) on Mar 13, 2005 at 15:30 UTC

    Hmmm...what I'm hearing you say is that, during development, tests should be written not just for individual routines but for larger and larger blocks of routines.

    That sounds good.

    I do worry about the possibility of combinatorial explosion in the number of elements that will be tested...but that's probably a false concern, since you only need to worry about testing blocks of routines that are actually used together. Hmm.

    At the same time, I don't think you can do away with the acceptance testing phase. The point of that phase is not to reveal bugs...the point is to prove TO THE CUSTOMER that the product works as required.

    Thanks, this is definitely the kind of thing I was looking for.