Lambda the Ultimate

inactiveTopic Test-Driven Development By Example
started 7/31/2002; 4:17:09 AM - last post 8/2/2002; 6:14:27 AM
Ehud Lamm - Test-Driven Development By Example  blueArrow
7/31/2002; 4:17:09 AM (reads: 1990, responses: 9)
Test-Driven Development By Example
(via Keith Devens)

A draft book on TDD, by Kent Beck.

Reading this I started to wonder just how different TDD is from classic stepwise refinement, in which you write client code, and only then drill down into subroutines.

Stepwise refinement is about procedural programming (e.g., Pascal or C). eXtreme programming and TDD tend to be more about OOP. Indeed, the essence of the xUnit framework is an object oriented design.


Posted to Software-Eng by Ehud Lamm on 7/31/02; 4:18:02 AM

Noel Welsh - Re: Test-Driven Development By Example  blueArrow
7/31/2002; 5:43:30 AM (reads: 1115, responses: 1)
The *ahem* SchemeUnit framework certainly isn't OO. :)

Ehud Lamm - Re: Test-Driven Development By Example  blueArrow
7/31/2002; 6:13:05 AM (reads: 1161, responses: 0)
I was waiting for this

But I hope you'll agree that the design of jUnit et al is object oreinted? Of course, you can write test frameworks that aren't.

Noel Welsh - Re: Test-Driven Development By Example  blueArrow
7/31/2002; 6:22:53 AM (reads: 1114, responses: 2)
Sure I agree XP and xUnit has developed in the OO framework of Java/Smalltalk (what one might call the dominant programming paradigm of the current day). The doesn't mean the ideas can't be applied outside of OO. Witness the recent thread on refactoring in functional programming. I haven' had a chance to read the draft yet, but TDD should be quite different to stepwise refinement assuming it follows standard XP practice (TLA overload!) Test first development (where you code the test before the code it tests) is quite a different way of working in my experience.

Ehud Lamm - Re: Test-Driven Development By Example  blueArrow
7/31/2002; 6:25:31 AM (reads: 1169, responses: 0)
No argument there.

I was just pointing out that while the ideas can be applied to different paradigms, there are closely related to the language and paradigm used.

Ehud Lamm - Re: Test-Driven Development By Example  blueArrow
7/31/2002; 9:43:31 AM (reads: 1140, responses: 0)
TDD should be quite different to stepwise refinement

Different to be sure. But how different?

When I was a die hard Pascal programmer, I remember writing the main program, stubs, and then testing that things are ok. Then I'd add more functionality, re-test etc.

Now this isn't TDD. There were no automatic tests - so obviously tests weren't written before the code. There was no real regression testng going on etc.

Still, it seem to me not so unlike TDD.

Ehud Lamm - Re: Test-Driven Development By Example  blueArrow
7/31/2002; 2:58:12 PM (reads: 1072, responses: 0)
I went over the first example in the book (multi-currency calculations). I like the writing style, though the presentation was a bit too slow for my taste.

It may be instructive for people with little sw design experience (i.e., co-workers etc. )

Shae Erisson - Re: Test-Driven Development By Example  blueArrow
8/1/2002; 1:30:11 PM (reads: 1028, responses: 2)
I do TDD in Haskell with HUnit from HUnit.sf.net, no OO involved there. I have had to become more comfortable with stubbing out functions though.

I dearly love TDD, I would want to do things any other way. Even so, I do web development. TDD in web dev situations is difficult in many settings. Any suggestions for fixing that?

Ehud Lamm - Re: Test-Driven Development By Example  blueArrow
8/1/2002; 2:26:03 PM (reads: 1074, responses: 0)
Well, it seems to me Beck advocates using Imposters in this kind of situation. Right?

Noel Welsh - Re: Test-Driven Development By Example  blueArrow
8/2/2002; 6:14:27 AM (reads: 1080, responses: 0)
MVC is a good way to making testing web applications easier. Design the application so that all the real logic is normal code that you test in normal ways, and have a thin presentation layer that generates HTML. You can then test the HTML separately.