论文标题

关于测试驱动开发的实验家族

A Family of Experiments on Test-Driven Development

论文作者

Santos, Adrian, Vegas, Sira, Dieste, Oscar, Uyaguari, Fernando, Tosun, Aysee, 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

论文摘要

上下文:测试驱动的开发(TDD)是一种敏捷的软件开发方法,已被广泛认为可以提高软件质量。但是,TDD提高质量的程度似乎在很大程度上取决于评估研究的特征(例如,研究方法,参与者类型,编程环境等)。每个研究的特殊性使结果的汇总无法实现。目的:本文的目的是:提高在TDD上孤立的实验中实现的结果的准确性和普遍性,对在不同工业和学术环境中TDD的性能提供联合结论,并评估实验特征在多大程度上影响与TDD相关质量相关性能的程度。方法:我们在学术界和工业中进行了12个实验的一家家族。我们通过荟萃分析来汇总他们的结果。我们执行探索性分析,以识别影响TDD质量相关性能的变量。结果:与TDD相比,TDD新手的代码质量略高(即ITL,TDD的反向方法)。开发的任务在很大程度上决定了质量。编程环境,应用TDD和ITL的顺序或从一种开发方法到另一种开发方法的学习效果似乎不会影响质量。使用TDD的专业人员的质量相关性能比学生降低了。我们假设这可能是由于他们对变革的抵抗力更大,并且可能比学生更有动力。结论:先前的研究似乎为TDD性能提供了矛盾的结果(即分别为正面和负面)。我们假设这些相互矛盾的结果可能是由于不同的研究时间造成的,实验参与者不熟悉TDD过程...

Context: Test-driven development (TDD) is an agile software development approach that has been widely claimed to improve software quality. However, the extent to which TDD improves quality appears to be largely dependent upon the characteristics of the study in which it is evaluated (e.g., the research method, participant type, programming environment, etc.). The particularities of each study make the aggregation of results untenable. Objectives: The goal of this paper is to: increase the accuracy and generalizability of the results achieved in isolated experiments on TDD, provide joint conclusions on the performance of TDD across different industrial and academic settings, and assess the extent to which the characteristics of the experiments affect the quality-related performance of TDD. Method: We conduct a family of 12 experiments on TDD in academia and industry. We aggregate their results by means of meta-analysis. We perform exploratory analyses to identify variables impacting the quality-related performance of TDD. Results: TDD novices achieve a slightly higher code quality with iterative test-last development (i.e., ITL, the reverse approach of TDD) than with TDD. The task being developed largely determines quality. The programming environment, the order in which TDD and ITL are applied, or the learning effects from one development approach to another do not appear to affect quality. The quality-related performance of professionals using TDD drops more than for students. We hypothesize that this may be due to their being more resistant to change and potentially less motivated than students. Conclusion: Previous studies seem to provide conflicting results on TDD performance (i.e., positive vs. negative, respectively). We hypothesize that these conflicting results may be due to different study durations, experiment participants being unfamiliar with the TDD process...

扫码加入交流群

加入微信交流群

微信交流群二维码

扫码加入学术交流群,获取更多资源