Despite the efforts to verify/ refute the effects of applying TDD, there are still many unknowns about it, posing important challenges with highly practical impact:
- Existing body of evidence contains conflicting results regarding the effects of TDD on developer productivity and software quality.
- TDD’s impact on short-term and long-term code quality is the subject of ongoing debate, and its impact on developer productivity is even more controversial.
- Existing evidence is mostly collected from green-field projects and it is still a challenge to utilize it for developing legacy systems, and there exists no studies reporting TDD’s effects in such an environment.
- Systematic reviews on TDD emphasize on the importance of process conformance, existence of other practices (e.g. pair programming), task size, task type (e.g. new feature, maintenance), application domain and development context as potential factors resulting in the contradictory outcomes.
- There is a steep learning curve associated with mastering TDD.
- Existing evidence is mostly based on unrealistic projects in academic environments or small sample sizes in more realistic settings.
This project will address the challenges above through empirical studies (controlled experiments and case studies) with students and professionals using a variety of realistic tasks, and replicating the studies over the course of the project to achieve a proper sample size. The factors listed above will be controlled for in the analyses, especially the process conformance argument, and finally recommender tools will be developed for easier adoption of TDD.