DocumentCode :
1624273
Title :
On the Influence of Test-Driven Development on Software Design
Author :
Janzen, David S. ; Saiedian, Hossein
Author_Institution :
Electr. Eng. & Comput. Sci., Kansas Univ., Lawrence, KS
fYear :
2006
Firstpage :
141
Lastpage :
148
Abstract :
Test-driven development (TDD) is an agile software development strategy that addresses both design and testing. This paper describes a controlled experiment that examines the effects of TDD on internal software design quality. The experiment was conducted with undergraduate students in a software engineering course. Students in three groups completed semester-long programming projects using either an iterative test-first (TDD), iterative test-last, or linear test-last approach. Results from this study indicate that TDD can be an effective software design approach improving both code-centric aspects such as object decomposition, test coverage, and external quality, and developer-centric aspects including productivity and confidence. In addition, iterative development approaches that include automated testing demonstrated benefits over a more traditional linear approach with manual tests. This study demonstrates the viability of teaching TDD with minimal effort in the context of a relatively traditional development approach. Potential dangers with TDD are identified regarding programmer motivation and discipline. Pedagogical implications and instructional techniques which may foster TDD adoption will also be referenced
Keywords :
computer science education; educational courses; object-oriented programming; program testing; software architecture; software quality; teaching; agile software development; internal software design quality; iterative development approach; iterative test-first approach; iterative test-last approach; linear test-last approach; object decomposition; programmer discipline; programmer motivation; programming project; software engineering course; test-driven development; undergraduate students; Automatic testing; Iterative methods; Linear programming; Productivity; Programming profession; Software design; Software engineering; Software testing; System testing; Writing;
fLanguage :
English
Publisher :
ieee
Conference_Titel :
Software Engineering Education and Training, 2006. Proceedings. 19th Conference on
Conference_Location :
Turtle Bay, HI
ISSN :
1093-0175
Print_ISBN :
0-7695-2557-1
Type :
conf
DOI :
10.1109/CSEET.2006.25
Filename :
1617340
Link To Document :
بازگشت