I know there is done some research on TDD at the North Carolina State University. They have published a paper called 'An Initial Investigation of Test Driven Development in Industry'. Other publications by NCSU can be found here.
Can anybody point me to other good publications on this topic?
They examined the results from teams that used TDD, and those that didn't. The big takeaways were 60-90% decrease in defects, and a 15-35% increase in time to complete the projects (but the teams agreed that it was offset by reduced maintenance costs).
TDD is not dead in 2022. It will never be dead because there will always be projects where developers can use TDD effectively. Today and in the future, developers will want to make sure their code is not broken and works properly. By writing tests first, developers can see if they are on the right track or not.
TDD helps developers understand and learn the principles of modular design when writing tests for very small features. In this way, problems in the application's architecture can be detected at an early stage of development.
The main problem with Test-Driven Development, is that unit testing is not a measure of correctness but a measure of predictable behavior. Unit tests guarantee that our code behaves as we expected it to, but the expected behavior might be incorrect, incomplete or functional only on happy flows.
On the Effectiveness of the Test-First Approach to Programming, by Hakan Erdogmus, Maurizio Morisio, and Marco Torchiano.
Despite the name it covers TDD:
Abstract:
Test-Driven Development (TDD) is based on formalizing a piece of functionality as a test, implementing the functionality such that the test passes, and iterating the process.
This paper describes a controlled experiment for evaluating an important aspect of TDD: In TDD, programmers write functional tests before the corresponding implementation code. The experiment was conducted with undergraduate students. While the experiment group applied a test-first strategy, the control group applied a more conventional development technique, writing tests after the implementation. Both groups followed an incremental process, adding new features one at a time and regression testing them.
We found that test-first students on average wrote more tests and, in turn, students who wrote more tests tended to be more productive. We also observed that the minimum quality increased linearly with the number of programmer tests, independent of the development strategy employed.
The ACM Digital Library has quite a few papers on TDD. Simply Search for Test Driven Development.
The top results from Google's Test driven development academic research:
Test-Driven Development: Concepts, Taxonomy, and Future Direction in the IEEE Computer Society.
software Architecture Improvement through TDD at the ACM
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With