Understanding the efficacy of Test Driven Development

aut.embargoNoen
aut.thirdpc.containsNo
aut.thirdpc.permissionNo
aut.thirdpc.removedNo
dc.contributor.advisorBuchan, Jim
dc.contributor.advisorPhilpott, Anne
dc.contributor.authorLi, Ling (Angela)
dc.date.accessioned2009-11-17T20:03:07Z
dc.date.available2009-11-17T20:03:07Z
dc.date.copyright2009
dc.date.issued2009
dc.description.abstractTest Driven Development (TDD) is a software development practice in which unit and acceptance test cases are incrementally written prior to writing the production code and guiding the design of the target software. Recently, TDD has gained considerable attention among practitioners and researchers, outside its original context in Extreme Programming (XP), with the promise of a number of benefits to the software development process. Proponents of TDD claim that TDD enhances code quality, application quality and developer productivity compared with a traditional Test-Last development methodology. There are some published empirical studies of TDD that support these claims, but few of these are in an industrial setting and generally focus on measurements of quality or productivity. This study adds to this evidence-based research on TDD by studying practitioners’ perceptions of the benefits of TDD. Furthermore, this study seeks to go further than previous studies in this area and gain a deeper understanding of the efficacy of TDD by investigating the underlying factors contributing to the benefits of using TDD. This is important to inform future tool support and process improvements of TDD. In addition it may suggest strategies for increasing the adoption level of TDD.This research takes a single case study approach. TDD practitioners’ perceptions of the benefits of TDD and the contributing factors were collected in five semi-structured interviews conducted in a medium-sized software company located in Auckland, New Zealand. The results of the interviews were analyzed using a thematic analysis technique looking for patterns and themes that aligned with the three general benefits identified from literature, namely improvements to code quality, application quality and developer productivity. This study contributes empirical evidence where experienced TDD practitioners clearly perceive that using TDD provides a number of benefits and that these align closely with those claimed by proponents of TDD and evidence in related empirical studies. The main underlying factors contributing to these benefits identified in this research can be summarised as: increased confidence in refactoring and modifying code, broader test coverage, deeper understanding of requirements, enhanced code comprehensibility, reduced error scope and severity, and improved developer satisfaction. The benefits of TDD are perceived as strongly linked to developers’ capabilities in refactoring, and writing high quality tests. The findings of this research add to the existing empirical body of knowledge on the use of TDD in an industrial context, as well as strengthening the case for using TDD in this type of software development environment. The research also indicates that current integrated development environments need to improve the level of support they provide for TDD activities.
dc.identifier.urihttps://hdl.handle.net/10292/775
dc.language.isoenen
dc.publisherAuckland University of Technology
dc.rights.accessrightsOpenAccess
dc.subjectSoftware development
dc.subjectCase study research
dc.subjectTest Driven Development
dc.subjectComputer science
dc.titleUnderstanding the efficacy of Test Driven Development
dc.typeThesis
thesis.degree.grantorAuckland University of Technology
thesis.degree.levelMasters Dissertations
thesis.degree.nameMaster of Computer and Information Sciences
Files
Original bundle
Now showing 1 - 1 of 1
Loading...
Thumbnail Image
Name:
LiL.pdf
Size:
690.2 KB
Format:
Adobe Portable Document Format
Description:
Whole dissertation
License bundle
Now showing 1 - 1 of 1
Loading...
Thumbnail Image
Name:
license.txt
Size:
980 B
Format:
Item-specific license agreed upon to submission
Description: