Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Research on TDD

Tags:

tdd

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?

like image 325
Fossmo Avatar asked Oct 02 '08 20:10

Fossmo


People also ask

Is TDD effective?

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).

Is TDD still relevant?

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.

What is the benefit of test driven development TDD?

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.

What are the major challenges faced when performing test driven 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.


2 Answers

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.

like image 87
philant Avatar answered Oct 14 '22 01:10

philant


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

like image 34
Benoit Avatar answered Oct 14 '22 02:10

Benoit