To Test Before Or To Test After - An Experimental Investigation Of The Impact Of Test Driven Development
Bhadauria, Vikram Singh
MetadataShow full item record
Test driven development (TDD) requires the developer to create the test suite before designing and writing the application program. Unlike traditional software development practices, in TDD test development precedes application development. Such a practice also redefines the role of the developer. Lately, TDD is growing in popularity as a part of Agile methodologies. There is a critical need for rigorous empirical research to understand the role and impact of TDD as a software development practice. The goal of this dissertation research is to fill this gap. We conducted a Laboratory Experiment to understand the influence of TDD on the outcomes of the software development process. We examined software quality, learning and task satisfaction as outcome variables. In the experiment, we compared groups that used traditional method of software development with the group using TDD. We also compared individual programmers with pair programmers, when both used TDD approach of software development. It was found in this study that individual programmers using TDD produced better quality of software as compared to the programmers using traditional method of software development. Comprehension, as a part of the learning measure, was also found to be significantly higher in case of programmers using TDD as compared to the programmers using traditional method of software development. Also, programmers using TDD were also found to achieve higher task satisfaction as compared to the programmers using traditional method of software development. Another important finding of this study was that collaborating pairs outperformed second best programmers in nominal groups in terms of software quality, when both nominal groups and collaborating groups using TDD approach for developing software.