A structured experiment of test-driven development

被引:90
|
作者
George, B [1 ]
Williams, L
机构
[1] Virginia Polytech Inst & State Univ, Dept Comp Sci, Falls Church, VA 22043 USA
[2] N Carolina State Univ, Dept Comp Sci, Raleigh, NC 27695 USA
关键词
software engineering; test driven development; extreme programming; agile methodologies;
D O I
10.1016/j.infsof.2003.09.011
中图分类号
TP [自动化技术、计算机技术];
学科分类号
0812 ;
摘要
Test Driven Development (TDD) is a software development practice in which unit test cases are incrementally written prior to code implementation. We ran a set of structured experiments with 24 professional pair programmers. One group developed a small Java program using TDD while the other (control group), used a waterfall-like approach. Experimental results, subject to external validity concerns, tend to indicate that TDD programmers produce higher quality code because they passed 18% more functional black-box test cases. However, the TDD programmers took 16% more time. Statistical analysis of the results showed that a moderate statistical correlation existed between time spent and the resulting quality. Lastly, the programmers in the control group often did not write the required automated test cases after completing their code. Hence it could be perceived that waterfall-like approaches do not encourage adequate testing. This intuitive observation supports the perception that TDD has the potential for increasing the level of unit testing in the software industry. (C) 2003 Elsevier B.V. All rights reserved.
引用
收藏
页码:337 / 342
页数:6
相关论文
共 50 条
  • [1] Professionalism and test-driven development
    Martin, Robert C.
    IEEE SOFTWARE, 2007, 24 (03) : 32 - +
  • [2] An industry experiment on the effects of test-driven development on external quality and productivity
    Tosun, Ayse
    Dieste, Oscar
    Fucci, Davide
    Vegas, Sira
    Turhan, Burak
    Erdogmus, Hakan
    Santos, Adrian
    Oivo, Markku
    Toro, Kimmo
    Jarvinen, Janne
    Juristo, Natalia
    EMPIRICAL SOFTWARE ENGINEERING, 2017, 22 (06) : 2763 - 2805
  • [3] Scaling test-driven development
    Ambler, Scott W.
    DR DOBBS JOURNAL, 2008, 33 (02): : 71 - 73
  • [4] Test-Driven Development of Ontologies
    Keet, C. Maria
    Lawrynowicz, Agnieszka
    SEMANTIC WEB: LATEST ADVANCES AND NEW DOMAINS, 2016, 9678 : 642 - 657
  • [5] An industry experiment on the effects of test-driven development on external quality and productivity
    Ayse Tosun
    Oscar Dieste
    Davide Fucci
    Sira Vegas
    Burak Turhan
    Hakan Erdogmus
    Adrian Santos
    Markku Oivo
    Kimmo Toro
    Janne Jarvinen
    Natalia Juristo
    Empirical Software Engineering, 2017, 22 : 2763 - 2805
  • [6] Impact of test-driven development on productivity, code and tests: A controlled experiment
    Pancur, Matjaz
    Ciglaric, Mojca
    INFORMATION AND SOFTWARE TECHNOLOGY, 2011, 53 (06) : 557 - 573
  • [7] A family of experiments on test-driven development
    Adrian Santos
    Sira Vegas
    Oscar Dieste
    Fernando Uyaguari
    Ayşe Tosun
    Davide Fucci
    Burak Turhan
    Giuseppe Scanniello
    Simone Romano
    Itir Karac
    Marco Kuhrmann
    Vladimir Mandić
    Robert Ramač
    Dietmar Pfahl
    Christian Engblom
    Jarno Kyykka
    Kerli Rungi
    Carolina Palomeque
    Jaroslav Spisak
    Markku Oivo
    Natalia Juristo
    Empirical Software Engineering, 2021, 26
  • [8] Regression test selection in test-driven development
    Zohreh Mafi
    Seyed-Hassan Mirian-Hosseinabadi
    Automated Software Engineering, 2024, 31
  • [9] Investigating the Impact of Development Task on External Quality in Test-Driven Development: An Industry Experiment
    Tosun, Ayse
    Dieste, Oscar
    Vegas, Sira
    Pfahl, Dietmar
    Rungi, Kerli
    Juristo, Natalia
    IEEE TRANSACTIONS ON SOFTWARE ENGINEERING, 2021, 47 (11) : 2438 - 2456
  • [10] Regression test selection in test-driven development
    Mafi, Zohreh
    Mirian-Hosseinabadi, Seyed-Hassan
    AUTOMATED SOFTWARE ENGINEERING, 2024, 31 (01)