4 ms·
> If it's as good as they claim, why aren't there large numbers of successful TDD projects to cite as examples every time this discussion comes up? What exactl
by pifflesnort 14y ago
> If it's as good as they claim, why aren't there large numbers of successful TDD projects to cite as examples every time this discussion comes up?
What exactly makes you think there aren't?
- Silhouette 14y agoWhat exactly makes you think there aren't? The fact that every time I have ever had this discussion, the person taking your position comes back with a question like that instead of just listing counterexamples. Can you name a few major projects, preferably on the same kind of scale as the examples that have been mentioned in other posts in this discussion, that were built using TDD? Not just projects that use some form of automated testing, or projects that use unit tests, or projects that use a test-first approach to unit tests, or anything else related to but not implying TDD, but projects where they really follow the TDD process? The development processes for major open source projects tend to be public by their nature, and there are also plenty of people who have written about their experiences working for major software companies on well-known closed source projects, so telling a few TDD success stories shouldn't be a difficult challenge at all.
- pifflesnort 14y ago> Can you name a few major projects, preferably on the same kind of scale as the examples that have been mentioned in other posts in this discussion, that were built using TDD? Operating systems? No. Sorry. Operating systems, as a rule, predate modern practices by some 1-4 decades. Making a kernel like Linux, Darwin, or FreeBSD testable would be a task somewhere between "massive headache" and "really massive headache". I've done some in-kernel unit testing, but only on our own driver subsystems that could be abstracted from the difficult-to-test underlying monolithic code base. Outside of kernels/operating systems, just Google. Unit/automated testing is prevalent in just about all modern OSS software ecosystems. A few examples, off the top of my head. Apache APR: http://svn.apache.org/viewvc/apr/apr/trunk/test/README?revision=701392&view=markup http://svn.apache.org/viewvc/apr/apr/trunk/test/README?revis... Clang: http://llvm.org/svn/llvm-project/cfe/trunk/test/ http://llvm.org/svn/llvm-project/cfe/trunk/test/ Go: https://code.google.com/p/go/source/browse/src/pkg/math/all_test.go https://code.google.com/p/go/source/browse/src/pkg/math/all_... (see all *_test.go files)
- Silhouette 14y agoMy apologies if I've misinterpreted your posts. I thought we were talking specifically about TDD, since that seemed to be the subject of the original article, but from the examples you gave, you seem to be talking about automated unit testing more generally now. In that case, I would certainly agree that there are successful projects using the approach. However, I would also say that if you've never seen code untested in that way that wasn't crap then you're not looking hard enough. Some of the most impressively bug-free projects ever written used very different development processes with no unit testing at all. Space shuttle software, which is obviously about as mission critical as you can get, went in a very different direction[1]. Donald Knuth, the man who wrote TeX among other things, isn't much of a fan either[2]. [1] http://www.fastcompany.com/28121/they-write-right-stuff http://www.fastcompany.com/28121/they-write-right-stuff [2] http://www.informit.com/articles/article.aspx?p=1193856 http://www.informit.com/articles/article.aspx?p=1193856