OO, FP and XP training (extremely long)

Ulf Wiger (AL/EAB) ulf.wiger@REDACTED
Mon Dec 12 13:58:54 CET 2005

Jay Nelson wrote:

> C) No one understands the system
> [...]Ask anyone a deep question about the philosophy of 
> the system, the general performance characteristics or 
> whether there is a clean approach to expanding its range of 
> scope and you will be met with blank stares and requests for 
> specific test descriptions.

Interesting observation, and pretty damaging if it's true.

We're doing some pilot work with QuickCheck, which could 
be viewed as a perverse form of TDD. ;-)

I was thinking that the above statement is probably _not_
true for QuickCheck, since, rather than asking you to 
think in terms of concrete test cases (reducing the system
to small pieces while ignoring the less tangible aspects),
QuickCheck rather prompts the question "what problem am I
trying to solve?". Thus forcing the programmer to think
more abstractly, QuickCheck seems to encourage a system
perspective rather than subverting it. Also, since you 
don't have explicit control of the actual test cases, you
are (again) forced to think more in terms of "how is this
supposed to work in practice?" and, when confronted with 
an inconsistency dug up by QuickCheck, you have to ask
"What is wrong - my code, or my understanding of it?"

Finally, once you get used to it, writing QuickCheck
properties doesn't seem much more difficult than writing
specific test cases.

I will be back (hopefully) with reports on how this 
actually works out in practice.


More information about the erlang-questions mailing list