Operational definition and automated inference of test-driven development with Zorro

被引:18
|
作者
Kou, Hongbing [1 ]
Johnson, Philip M. [1 ]
Erdogmus, Hakan [2 ]
机构
[1] Univ Hawaii, Collaborat Software Dev Lab, Dept Informat & Comp Sci, Honolulu, HI 96822 USA
[2] Kalemun Res Inc, Ottawa, ON K1V 1R9, Canada
关键词
Test driven development; Hackystat; Process measurement;
D O I
10.1007/s10515-009-0058-8
中图分类号
TP31 [计算机软件];
学科分类号
081202 ; 0835 ;
摘要
Test-driven development (TDD) is a style of development named for its most visible characteristic: the design and implementation of test cases prior to the implementation of the code required to make them pass. Many claims have been made for TDD: that it can improve implementation as well as design quality, that it can improve productivity, that it results in 100% coverage, and so forth. However, research to validate these claims has yielded mixed and sometimes contradictory results. We believe that at least part of the reason for these results stems from differing interpretations of the TDD development style, along with an inability to determine whether programmers actually follow whatever definition of TDD is in use. Zorro is a system designed to automatically determine whether a developer is complying with an operational definition of Test-Driven Development (TDD) practices. Automated recognition of TDD can benefit the software development community in a variety of ways, from inquiry into the "true nature" of TDD, to pedagogical aids to support the practice of test-driven development, to support for more rigorous empirical studies on the effectiveness of TDD in both laboratory and real world settings. This paper describes the Zorro system, its operational definition of TDD, the analyses made possible by Zorro, two empirical evaluations of the system, and an attempted case study. Our research shows that it is possible to define an operational definition of TDD that is amenable to automated recognition, and illustrates the architectural and design issues that must be addressed in order to do so. Zorro has implications not only for the practice of TDD, but also for software engineering "micro-process" definition and recognition through its parent framework, Software Development Stream Analysis.
引用
收藏
页码:57 / 85
页数:29
相关论文
共 50 条
  • [1] Operational definition and automated inference of test-driven development with Zorro
    Hongbing Kou
    Philip M. Johnson
    Hakan Erdogmus
    Automated Software Engineering, 2010, 17
  • [2] From Test Cases to FSMs: Augmented Test-driven Development and Property Inference
    Arts, Thomas
    Thompson, Simon
    ERLANG 2010: PROCEEDINGS OF THE 2010 ACM SIGPLAN, ERLANG WORKSHOP, 2010, : 1 - 12
  • [3] Integrated Language Definition Testing Enabling Test-Driven Language Development
    Kats, Lennart C. L.
    Vermaas, Rob
    Visser, Eelco
    ACM SIGPLAN NOTICES, 2011, 46 (10) : 139 - 153
  • [4] 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
  • [5] Automated acceptance testing tools for web applications using Test-Driven Development
    Jureczko, Marian
    Mlynarski, Michal
    PRZEGLAD ELEKTROTECHNICZNY, 2010, 86 (09): : 198 - 202
  • [6] Test-driven development of relational databases
    Ambler, Scott W.
    IEEE SOFTWARE, 2007, 24 (03) : 37 - +
  • [7] Understanding the Dynamics of Test-Driven Development
    Fucci, Davide
    36TH INTERNATIONAL CONFERENCE ON SOFTWARE ENGINEERING (ICSE COMPANION 2014), 2014, : 690 - 693
  • [8] A family of experiments on test-driven development
    Santos, Adrian
    Vegas, Sira
    Dieste, Oscar
    Uyaguari, Fernando
    Tosun, Ayse
    Fucci, Davide
    Turhan, Burak
    Scanniello, Giuseppe
    Romano, Simone
    Karac, Itir
    Kuhrmann, Marco
    Mandic, Vladimir
    Ramac, Robert
    Pfahl, Dietmar
    Engblom, Christian
    Kyykka, Jarno
    Rungi, Kerli
    Palomeque, Carolina
    Spisak, Jaroslav
    Oivo, Markku
    Juristo, Natalia
    EMPIRICAL SOFTWARE ENGINEERING, 2021, 26 (03)
  • [9] Test-Driven Development: a systematic review
    Benato, Gustavo Baculi
    Souza Vilela, Plinio Roberto
    REVISTA BRASILEIRA DE COMPUTACAO APLICADA, 2021, 13 (01): : 75 - 87
  • [10] Test-Driven Development for Parallel Applications
    Burris, John W.
    2017 SECOND INTERNATIONAL CONFERENCE ON INFORMATION SYSTEMS ENGINEERING (ICISE), 2017, : 27 - 31