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 条
[21]   Introducing Test Automation and Test-Driven Development: An Experience Report [J].
Damm, Lars-Ola ;
Lundberg, Lars ;
Olsson, David .
ELECTRONIC NOTES IN THEORETICAL COMPUTER SCIENCE, 2005, 116 :3-15
[22]   On the Effectiveness of Unit Tests in Test-driven Development [J].
Tosun, Ayse ;
Ahmed, Muzamil ;
Turhan, Burak ;
Juristo, Natalia .
PROCEEDINGS OF THE 2018 INTERNATIONAL CONFERENCE ON SOFTWARE AND SYSTEM PROCESS (ICSSP 2018), 2018, :113-122
[23]   Test-Driven Development in scientific software: a survey [J].
Aziz Nanthaamornphong ;
Jeffrey C. Carver .
Software Quality Journal, 2017, 25 :343-372
[24]   On the use of Test-Driven Development for Embedded Systems [J].
Cassieri, Pietro ;
Esposito, Michelangelo ;
Romano, Simone ;
Scanniello, Giuseppe .
INFORMATION AND SOFTWARE TECHNOLOGY, 2025, 187
[25]   Automation of Test Skeletons within Test-Driven Development Projects [J].
Olmez, Muhammet Mustafa ;
Gehringer, Edward .
2024 36TH INTERNATIONAL CONFERENCE ON SOFTWARE ENGINEERING EDUCATION AND TRAINING, CSEE & T 2024, 2024,
[26]   USING TEST ORACLES AND FORMAL SPECIFICATIONS WITH TEST-DRIVEN DEVELOPMENT [J].
Alawneh, Shadi G. ;
Peters, Dennis K. .
INTERNATIONAL JOURNAL OF SOFTWARE ENGINEERING AND KNOWLEDGE ENGINEERING, 2013, 23 (03) :361-385
[27]   Bringing Test-Driven Development to web service choreographies [J].
Besson, Felipe ;
Moura, Paulo ;
Kon, Fabio ;
Milojicic, Dejan .
JOURNAL OF SYSTEMS AND SOFTWARE, 2015, 99 :135-154
[28]   A Longitudinal Cohort Study on the Retainment of Test-Driven Development [J].
Fucci, Davide ;
Romano, Simone ;
Baldassarre, Maria Teresa ;
Caivano, Danilo ;
Scanniello, Giuseppe ;
Turhan, Burak ;
Juristo, Natalia .
PROCEEDINGS OF THE 12TH ACM/IEEE INTERNATIONAL SYMPOSIUM ON EMPIRICAL SOFTWARE ENGINEERING AND MEASUREMENT (ESEM 2018), 2018,
[29]   Test-driven programming [J].
Georgiev, Bozhidar ;
Georgieva, Adriana .
39TH INTERNATIONAL CONFERENCE APPLICATIONS OF MATHEMATICS IN ENGINEERING AND ECONOMICS (AMEE13), 2013, 1570 :455-460
[30]   Test-Driven Synthesis [J].
Perelman, Daniel ;
Gulwani, Sumit ;
Grossman, Dan ;
Provost, Peter .
ACM SIGPLAN NOTICES, 2014, 49 (06) :408-418