Test-Driven Development
This morning, I started working around 9:15. After catching up with the Rails weblog, I started reading “Test-Driven Development (By Example)” by Kent Beck. I’ve finished Part I and so far it has been quite inspiring. It has some nice parallels to the way Multiprogramming is taught by Wim Feijen at our university; in this course you learn to first focus on the simplest possible correct implementation and then worry about progress requirements. To make the parallels more explicit, I like to point out constructing correct implementations from a specification is not so different from making tests and trying to implement the simplest possible thing that fulfills these tests. The test can be seen as a sort of specification in this TDD-methodology. Often it occurs that the progress requirements in multiprogramming problems require you to do refactoring of the implementation. So far TDD sounds logical and actually gives testing a better place in the way I think about programming.
The Fibonacci-example in Appendix II made it clear that it fits really well with the formal programming style I learned in university. I think I’ll write a comparison of the two methods of working later when I have some spare time.