On the influence of test-driven development on software design

被引:31
|
作者
Janzen, David S. [1 ]
Saiedian, Hossein [1 ]
机构
[1] Univ Kansas, Dept Elect Engn & Comp Sci, Lawrence, KS 66045 USA
关键词
D O I
10.1109/CSEET.2006.25
中图分类号
TP31 [计算机软件];
学科分类号
081202 ; 0835 ;
摘要
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.
引用
收藏
页码:141 / +
页数:2
相关论文
共 50 条
  • [1] Test-driven development and software maintenance
    Tilley, S
    [J]. 20TH IEEE INTERNATIONAL CONFERENCE ON SOFTWARE MAINTENANCE, PROCEEDINGS, 2004, : 488 - 489
  • [2] Does test-driven development really improve software design quality?
    Janzen, David S.
    Saiedian, Hossein
    [J]. IEEE SOFTWARE, 2008, 25 (02) : 77 - 84
  • [3] Test-Driven Development in scientific software: a survey
    Nanthaamornphong, Aziz
    Carver, Jeffrey C.
    [J]. SOFTWARE QUALITY JOURNAL, 2017, 25 (02) : 343 - 372
  • [4] Test-Driven Development in scientific software: a survey
    Aziz Nanthaamornphong
    Jeffrey C. Carver
    [J]. Software Quality Journal, 2017, 25 : 343 - 372
  • [5] Adapting test-driven development for innovative software development project
    Mishra, Deepti
    Mishra, Alok
    [J]. AGILE PROCESSES IN SOFTWARE ENGINEERING AND EXTREME PROGRAMMING, PROCEEDINGS, 2007, 4536 : 171 - +
  • [6] Test-Driven Agent-Oriented Software Development
    Merdan, Munir
    Vrba, Pavel
    Melik-Merkumians, Martin
    [J]. 2012 IEEE 17TH CONFERENCE ON EMERGING TECHNOLOGIES & FACTORY AUTOMATION (ETFA), 2012,
  • [7] Towards Software Configuration Management for Test-Driven Development
    Freese, T
    [J]. SOFTWARE CONFIGURATION MANAGEMENT, 2003, 2649 : 267 - 273
  • [8] Chaste: A test-driven approach to software development for biological modelling
    Pitt-Francis, Joe
    Pathmanathan, Pras
    Bernabeu, Miguel O.
    Bordas, Rafel
    Cooper, Jonathan
    Fletcher, Alexander G.
    Mirams, Gary R.
    Murray, Philip
    Osborne, James M.
    Walter, Alex
    Chapman, S. Jon
    Garny, Alan
    van Leeuwen, Ingeborg M. M.
    Maini, Philip K.
    Rodriguez, Blanca
    Waters, Sarah L.
    Whiteley, Jonathan P.
    Byrne, Helen M.
    Gavaghan, David J.
    [J]. COMPUTER PHYSICS COMMUNICATIONS, 2009, 180 (12) : 2452 - 2471
  • [9] Why Do Software Developers Practice Test-Driven Development?
    Kayongo, Patrick
    Chigona, Wallace
    ZwelithiniMabhena
    [J]. 2016 THIRD INTERNATIONAL CONFERENCE ON ADVANCES IN COMPUTING, COMMUNICATION AND ENGINEERING (ICACCE 2016), 2016, : 357 - 361
  • [10] The impact of test-driven development on software development productivity - An empirical study
    Madeyski, Lech
    Szala, Lukasz
    [J]. SOFTWARE PROCESS IMPROVEMENT, PROCEEDINGS, 2007, 4764 : 200 - +