On the Influence of Test-Driven Development on Software Design

David S. Janzen, H. Saiedian
{"title":"On the Influence of Test-Driven Development on Software Design","authors":"David S. Janzen, H. Saiedian","doi":"10.1109/CSEET.2006.25","DOIUrl":null,"url":null,"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","PeriodicalId":246045,"journal":{"name":"19th Conference on Software Engineering Education & Training (CSEET'06)","volume":"109 1","pages":"0"},"PeriodicalIF":0.0000,"publicationDate":"2006-04-19","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":"83","resultStr":null,"platform":"Semanticscholar","paperid":null,"PeriodicalName":"19th Conference on Software Engineering Education & Training (CSEET'06)","FirstCategoryId":"1085","ListUrlMain":"https://doi.org/10.1109/CSEET.2006.25","RegionNum":0,"RegionCategory":null,"ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":null,"EPubDate":"","PubModel":"","JCR":"","JCRName":"","Score":null,"Total":0}
引用次数: 83

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
测试驱动开发对软件设计的影响
测试驱动开发(TDD)是一种同时处理设计和测试的敏捷软件开发策略。本文描述了一个检验TDD对内部软件设计质量影响的对照实验。实验对象为软件工程专业的本科生。三组学生使用迭代测试优先(TDD)、迭代测试最后或线性测试最后的方法完成了一个学期的编程项目。这项研究的结果表明,TDD可以是一种有效的软件设计方法,既可以改进以代码为中心的方面,如对象分解、测试覆盖和外部质量,也可以改进以开发人员为中心的方面,包括生产力和信心。此外,包含自动化测试的迭代开发方法比具有手动测试的更传统的线性方法有好处。这项研究证明了在相对传统的开发方法的背景下,以最小的努力教授TDD的可行性。TDD的潜在危险是根据程序员的动机和纪律确定的。还将提到可能促进TDD采用的教学含义和教学技术
本文章由计算机程序翻译,如有差异,请以英文原文为准。
求助全文
约1分钟内获得全文 求助全文
来源期刊
自引率
0.00%
发文量
0
×
引用
GB/T 7714-2015
复制
MLA
复制
APA
复制
导出至
BibTeX EndNote RefMan NoteFirst NoteExpress
×
提示
您的信息不完整,为了账户安全,请先补充。
现在去补充
×
提示
您因"违规操作"
具体请查看互助需知
我知道了
×
提示
确定
请完成安全验证×
copy
已复制链接
快去分享给好友吧!
我知道了
右上角分享
点击右上角分享
0
联系我们:info@booksci.cn Book学术提供免费学术资源搜索服务,方便国内外学者检索中英文文献。致力于提供最便捷和优质的服务体验。 Copyright © 2023 布克学术 All rights reserved.
京ICP备2023020795号-1
ghs 京公网安备 11010802042870号
Book学术文献互助
Book学术文献互助群
群 号:604180095
Book学术官方微信