I’ve read this paper by Nagappan, Maximilien, Bhat and Williams on the cost, advantages, pitfalls of doing TDD in industrial teams (private companies who create software).
My notes
Abstract:
little empirical evidence supports or refutes the utility of this practice in an industrial context
- they seem to be talking about inside-out tdd as in chapter 2 (page 291), they talk about small units and then integrating them in a bigger context
Benefits
taken from chapter 2 (page 292)
- Better design
- Efficiency
- Test assets
- Reducing defect injection
Conclusions
TDD seems to be applicable in various domains
[TDD] can significantly reduce the defect density of developed software without significant productivity reduction […]
[…] an important aspect of TDD is the creation of tests assets.
Recommendations (this is all quotes):
- Start TDD from the beginning of projects
- For a team new to TDD, introduce automated build test integration towards the second third of the development phase
- […] add new tests every time a problem is found
- Get the test team involved and knowledgeable about the TDD approach
- Constantly running the unit tests […]
- Encourage fast unit test execution and efficient unit testing design