Re: how many bugs do you find and correct during TDD?

From: Andrew McDonagh (news_at_andrewcdonagh.f2s.com)
Date: 12/31/04


Date: Thu, 30 Dec 2004 23:44:14 +0000

Tammy wrote:
>
>
> Steve Jorgensen wrote:
>
>> So, let's say the avergage test/fail/pass cycle is 10 minutes. In
>> that time,
>> first you write a test you expect to fail. Perhaps, it does fail, and
>> perhaps
>> it doesn't. If it is not as expected, is that a bug, an imporperly
>> written
>> test, or is that a misunderstanding of what the code's current untested
>> capabilities are. A little bit of digging is done, and it is found
>> that the
>> test was not written properly. Is that a bug?
>
>
> Yes.

No as we haven't finished the cycle. Its like saying we have a bug
every time we hit a key until the line of code we are writing works as
expected.

>
>> Next, the test is corrected,
>> and now fails as expected. That's not a bug because we expected it,
>> right?
>
>
> Agreed.
>
>> OK, now we do the simplest thing that could possibly work to make the
>> test
>> pass, and the test still fails (or another test fails). Is that a
>> bug? I
>> dunno - we didn't know whether to expect the test to pass or fail
>> because we
>> were experimenting to see if the simplest thing actually did work.
>
>
> If you expected it to pass and it didn't then that is a bug.

Not really, as we won't check the code in, so again is akin to what I
said above.

>
>> As you can see from this pattern, TDD is not so much about finding
>> bugs before
>> they go into production as setting up tests that ensure code that
>> passes them
>> functions as designed, then making the code meet the tests. I would
>> say that
>> a bug, in this context is defined as something that got through our
>> net either
>> becuase we forgot a test, wrote an inadequate test, we misunderstood the
>> request, or the request itself was the result of a misunderstanding of
>> the
>> problem. How many bugs does TDD catch then?
>
>
> I am trying to figure out the error rate of a human programmer as they
> work.

Its the unit of work here that (IMO) seems to be the confusion. A test
cycle is the smallest working unit when TDDing. During that cycle its
normal for tests to not work for a wide variety of reasons.

>So only classifying a bug as something that slips the net doesn't
> accomplish that goal.
>

But thats what bugs are, code that doesn't work as expected slipped the
net - whether that net is a TDD test or for non-TDDers a code review, etc.

Andrew



Relevant Pages

  • Weekly Python Patch/Bug Summary
    ... Patch / Bug Summary ... new exit and quit objects ... Python memory allocator: Free memory ... tkinter Dialog fails when more than four buttons are used ...
    (comp.lang.python)
  • Weekly Python Patch/Bug Summary
    ... Patch / Bug Summary ... http://python.org/sf/1126187 opened by Philippe Kirsanov ... Fix to allow urllib2 digest auth to talk to livejournal.com ... gensuitemodule.processfile fails ...
    (comp.lang.python)
  • Weekly Python Patch/Bug Summary
    ... Patch / Bug Summary ... http://python.org/sf/1457736 closed by loewis ... http://python.org/sf/1580726 reopened by gbrandl ... Bulding source with VC6 fails due to missing files ...
    (comp.lang.python)
  • Re: Exception raised when drawing many circles
    ... at Microsoft.DirectX.Direct3D.Line.DrawTransform(Vector3vertexList, Matrix transform, Int32 color) ... Direct3D9::Vertex buffer must be unlocked during DrawPrimitive call ... I don't quite follow your response to Olivier, but I fail to see how this behavior could be anything but a bug in the Line class. ... I'd guess what's going on is that the Line class or something it wraps makes some assumption about a maximum buffer size and fails to reallocate properly when a request is made to draw lines that require a larger buffer. ...
    (microsoft.public.win32.programmer.directx.managed)
  • Re: TDD: Test-Driven Design or Test-Driven Development?
    ... > anything would be different with TDD? ... Changing the code a lot, maybe while following a plan, denies tests during ... But suppose the 3rd ability introduced a bug, ... But TDD is not the same as developers writing tests after the features they ...
    (comp.object)