T he test-driven development strategy requires writing automated tests prior to developing functional code in small, rapid iterations. Although developers have been applying TDD in various forms for several decades, 1 this software development strategy has continued to gain increased attention as one of the core extreme programming practices.XP is an agile method that develops object-ori ented software in very short iterations with little upfront design. Although not originally given this name, TDD was described as an integral XP prac tice necessary for analysis, design, and testing that also enables design through refactoring, collective ownership, continuous integration, and programmer courage.Along with pair programming and refactoring, TDD has received considerable individual attention since XP's introduction. Developers have created tools specifically to support TDD across a range of languages, and they have written numerous books explaining how to apply TDD concepts. Re searchers have begun to examine TDD's effects on defect reduction and quality improvements in aca demic and professional practitioner environments, and educators have started to examine how to inte grate TDD into computer science and software engineering pedagogy. Some of these efforts have been implemented in the context of XP projects, while others are independent of them.
TEST-DRIVEN DEVELOPMENT DEFINEDAlthough its name implies that TDD is a testing method, a close examination of the term reveals a more complex picture.
University professors traditionally struggle to incorporate software testing into their course curriculum. Worries include doublegrading for correctness of both source and test code and finding time to teach testing as a topic. Testdriven development (TDD) has been suggested as a possible solution to improve student software testing skills and to realize the benefits of testing. According to most existing studies, TDD improves software quality and student productivity. This paper surveys the current state of TDD experiments conducted exclusively at universities. Similar surveys compare experiments in both the classroom and industry, but none have focused strictly on academia.
A Spring 2003 experiment examines the claims that test-driven development or test-first programming improves software quality and programmer confidence. The results indicate support for these claims and inform larger future experiments.
scite is a Brooklyn-based organization that helps researchers better discover and understand research articles through Smart Citations–citations that display the context of the citation and describe whether the article provides supporting or contrasting evidence. scite is used by students and researchers from around the world and is funded in part by the National Science Foundation and the National Institute on Drug Abuse of the National Institutes of Health.