I'm looking for an online introduction to unit testing and TDD. I have virtually no experience with TDD, unit testing, or any other agile methodology. My development environment is C++ on Linux. If there's a quality introduction to unit testing and TDD that uses C++ as the example language, that'd be great. If not then a general introduction in any old language and a more advanced tutorial using C++ would suffice.
views:
197answers:
3The wikipedia page is pretty good and has several useful links to both online and non-online resources of reasonably high quality, including an online tutorial. Once you have the basics, for C++ specific issues you could start with this presentation (PDF).
For the introduction to TDD, the bowling game episode is very nice, as it demonstrate how the tests drive the design. Then, here are tutorials focusing on C++ frameworks for CppUnit, Boot::Test and CppCheck.
To help choosing a framework, Noel LLopis explored this jungle, albeit a long time ago, especially it dosen't mention GoogleTest or you can refer to this question.
Oh, and BTW, [automated] unit testing and TDD can be applied even in non agile environment.
I wrote a series of blog postings several years ago about how I took some of my 'legacy' code without tests and first added tests to it and then reimplemented it from scratch in a TDD style. The idea was to show TDD and unit testing being used with a non trivial piece of code under test as I'd grown tired of seeing examples of testing simple code.
The code is C++ but it's for Windows so might not interest you, anyway, the articles kick off here: http://www.lenholgate.com/archives/000306.html