Test-Driven Code Review: An Empirical Study

被引:22
|
作者
Spadini, Davide [1 ,2 ]
Palomba, Fabio
Baum, Tobias [3 ,4 ]
Hanenberg, Stefan [5 ]
Bruntink, Magiel [2 ]
Bacchelli, Alberto [3 ]
机构
[1] Delft Univ Technol, Delft, Netherlands
[2] Software Improvement Grp, Amsterdam, Netherlands
[3] Univ Zurich, Zurich, Switzerland
[4] Leibniz Univ Hannover, Hannover, Germany
[5] Univ Duisburg Essen, Paluno, Duisburg, Germany
基金
欧盟地平线“2020”; 瑞士国家科学基金会;
关键词
INSPECTIONS; LESSONS;
D O I
10.1109/ICSE.2019.00110
中图分类号
TP18 [人工智能理论];
学科分类号
081104 ; 0812 ; 0835 ; 1405 ;
摘要
Test-Driven Code Review (TDR) is a code review practice in which a reviewer inspects a patch by examining the changed test code before the changed production code. Although this practice has been mentioned positively by practitioners in informal literature and interviews, there is no systematic knowledge of its effects, prevalence, problems, and advantages. In this paper, we aim at empirically understanding whether this practice has an effect on code review effectiveness and how developers' perceive TDR. We conduct (i) a controlled experiment with 93 developers that perform more than 150 reviews, and (ii) 9 semi-structured interviews and a survey with 103 respondents to gather information on how TDR is perceived. Key results from the experiment show that developers adopting TDR find the same proportion of defects in production code, but more in test code, at the expenses of fewer maintainability issues in production code. Furthermore, we found that most developers prefer to review production code as they deem it more critical and tests should follow from it. Moreover, general poor test code quality and no tool support hinder the adoption of TDR.
引用
收藏
页码:1061 / 1072
页数:12
相关论文
共 50 条
  • [1] LLM-Based Test-Driven Interactive Code Generation: User Study and Empirical Evaluation
    Fakhoury, Sarah
    Naik, Aaditya
    Sakkas, Georgios
    Chakraborty, Saikat
    Lahiri, Shuvendu K.
    IEEE TRANSACTIONS ON SOFTWARE ENGINEERING, 2024, 50 (09) : 2254 - 2268
  • [2] Test-driven development, engagement in activity, and maintainability: An empirical study
    Ren, Wei
    Barrett, Stephen
    IET SOFTWARE, 2023, 17 (04) : 509 - 525
  • [3] The effect of test-driven development on program code
    Mueller, Matthias M.
    EXTREME PROGRAMMING AND AGILE PROCESSES IN SOFTWARE ENGINEERING, PROCEEDINGS, 2006, 4044 : 94 - 103
  • [4] Investigating the Impact of Peer Code Review and Pair Programming on Test-Driven Development
    Swamidurai, Rajendran
    Dennis, Brad
    Kannan, Uma
    IEEE SOUTHEASTCON 2014, 2014,
  • [5] Test-Driven Development: a systematic review
    Benato, Gustavo Baculi
    Souza Vilela, Plinio Roberto
    REVISTA BRASILEIRA DE COMPUTACAO APLICADA, 2021, 13 (01): : 75 - 87
  • [6] Towards an operationalization of test-driven development skills: An industrial empirical study
    Fucci, Davide
    Turhan, Burak
    Juristo, Natalia
    Dieste, Oscar
    Tosun-Misirli, Ayse
    Oivo, Markku
    INFORMATION AND SOFTWARE TECHNOLOGY, 2015, 68 : 82 - 97
  • [7] The impact of test-driven development on software development productivity - An empirical study
    Madeyski, Lech
    Szala, Lukasz
    SOFTWARE PROCESS IMPROVEMENT, PROCEEDINGS, 2007, 4764 : 200 - +
  • [8] Towards empirical evaluation of Test-Driven Development in a university environment
    Pancur, M
    Ciglaric, M
    Trampus, M
    Vidmar, T
    IEEE REGION 8 EUROCON 2003, VOL B, PROCEEDINGS: COMPUTER AS A TOOL, 2003, : 83 - 86
  • [9] Effects of Test-Driven Development: A Comparative Analysis of Empirical Studies
    Makinen, Simo
    Munch, Jurgen
    SOFTWARE QUALITY: MODEL-BASED APPROACHES FOR ADVANCED SOFTWARE AND SYSTEMS ENGINEERING, 2014, 166 : 155 - 169
  • [10] Empirical evaluation of continuous test-driven development in industrial settings
    Madeyski, Lech
    Kawalerowicz, Marcin
    JOURNAL OF INTELLIGENT & FUZZY SYSTEMS, 2019, 37 (06) : 7643 - 7655