Sponsored Link •
Test Driven Development (TDD) represents the state of the art of development processes, but what's next?
It is hard to argue that Test Driven Development (TDD) is not the state of the art of development methodologies, but where do we go from there? Well you eliminate the tests of course.
If we look at a software design as satisfying a set of tests, then by simply reducing the number of tests neccessary is a logical way to streamline the development process. I propose that perhaps the evolutionary development of TDD is Test Elimination Driven Design (TEDD?).
Clearly tests are crucial, but they are also undeniably time-consuming to write, and execute. There is also a strong correlation between the number of tests needed to verify the correctness of a design, and the complexity of the design.
Reducing tests can only be done when you know something to be correct, or by reducing the design complexity. My approach for a long time has been to rely on code which is verifiably correct, and to use implicit testing techniques. For instance I would write code which reused small functions, even when it would lead to more code and less efficient designs. This put an extra strain on the function which would lead to an implicit "stress-test". This helped to reveal flaws more quickly.
I guess what I am getting at is that reuse of verified code (demonstrably correct through: explicit tests, implicit stress-tests, proofs, assertions, and simple inspection), reduces the need for certain tests and thus can streamline the development process.
|Christopher Diggins is a software developer and freelance writer. Christopher loves programming, but is eternally frustrated by the shortcomings of modern programming languages. As would any reasonable person in his shoes, he decided to quit his day job to write his own ( www.heron-language.com ). Christopher is the co-author of the C++ Cookbook from O'Reilly. Christopher can be reached through his home page at www.cdiggins.com.|