:::info 作者:
:::
摘要
1 引言
2 原始研究:研究问题和方法
3 原始研究:有效性威胁
4 原始研究:结果
5 重复研究:研究问题和方法
6 重复研究:有效性威胁
7 重复研究:结果
8 讨论
9 相关工作
10 结论和参考文献
软件开发中一个反复出现的问题是对使用的技术、方法和工具做出错误的决策。大多数情况下,这些决策是基于开发人员对它们的感知。影响人们感知的一个因素是过去的经验,但这不是唯一的因素。在本研究中,我们旨在发现在没有先前经验的情况下,人们对不同技术的缺陷检测有效性的感知与其实际有效性的匹配程度。
\ 为此,我们进行了一项实证研究及其重复实验。在原始研究中,我们进行了一项受控实验,让学生应用两种测试技术和一种代码审查技术。在实验结束时,他们参加了一项调查,以了解他们认为哪种技术最有效。结果表明,参与者的感知是错误的,而且这种不匹配在质量方面代价高昂。
\ 为了更深入地了解结果,我们重复了这项受控实验,并扩展了调查,包括关于参与者对技术和程序的意见的问题。重复研究的结果证实了原始研究的发现,并表明参与者的感知可能不是基于他们对复杂性的看法或对技术的偏好,而是基于他们认为自己应用技术的好坏程度。
如今,软件开发公司让开发人员选择自己的技术环境已成为越来越流行的做法。这意味着不同的开发人员可能使用不同的生产力工具(编程语言、IDE等)。然而,软件工程(SE)是一门人力密集型学科,错误的决策可能会影响最终软件的质量。在SE中,关于在软件开发中使用哪些方法、技术和工具的决策通常基于开发人员的感知和/或意见,而非证据,正如Dyb˚a等人[19]和Zelkowitz等人[55]所建议的那样。
\ 然而,实证证据可能无法获得,因为某些方法、技术或工具可能尚未在特定环境中甚至完全未被研究过。或者,根据Vegas和Basili[49]的说法,开发人员可能根本不熟悉这些研究。基于此,重要的是发现开发人员的感知(信念)与现实的匹配程度,如果不匹配,找出背后的原因,正如Devanbu等人[14]所指出的。根据心理学,经验在人们的感知中起着作用。这一点也被Devanbu等人[14]在SE中观察到。
\ 然而,本研究旨在发现在没有使用技术的先前经验的情况下,感知与现实的匹配程度如何。这有几个原因:1)经验不是影响开发人员感知的唯一因素;2)开发团队通常由有经验和无经验的人员混合组成;3)不清楚什么类型的经验会影响感知。例如,Dieste等人[17]得出结论,学术经验而非专业经验可能会影响开发人员在应用测试驱动开发时生成的代码的外部质量。
\ 我们旨在研究关于三种缺陷检测技术有效性的感知是否与现实相符,如果不符,这些感知背后是什么。据我们所知,这是第一篇实证评估这一问题的论文。为此,我们与学生进行了一项实证研究及其重复实验。在原始研究中,我们测量了(作为受控实验的一部分)参与者应用两种测试技术和一种代码审查技术时的有效性。然后,我们将感知最有效的技术(通过调查收集)与实际最有效的技术进行了比较。
\ 此外,我们分析了感知与现实之间不匹配在有效性损失方面的成本。主要发现包括:
– 不同的人认为不同的技术更有效。没有一种技术被认为比其他技术更有效。– 50%的参与者(23人中的11人)的感知是错误的。
– 对技术的错误感知平均可以降低31个百分点的有效性。
\ 这些发现促使我们在重复实验中扩展研究目标,以调查参与者感知背后可能存在的原因。为此,我们在重复受控实验中检查了他们对所应用技术和测试程序的意见。主要发现包括:
– 重复实验的结果证实了原始研究的发现。
– 参与者认为技术有效性完全取决于他们的表现,而不是技术本身可能存在的弱点。– 关于技术复杂性的意见和对技术的偏好似乎在感知有效性中不起作用。这些结果对开发人员和研究人员都有用。它们表明:
– 开发人员应该意识到他们判断的局限性。
– 应该设计能够向开发人员提供技术有效性反馈的工具。
– 应该确定最佳技术组合,既容易应用又有效。– 应该开发工具,使实证结果可供开发人员使用。
\ 本文介绍的研究相关材料可在https://github.com/GRISE-UPM/Misperceptions找到。本文的组织如下。第2节描述了原始研究。第3节介绍了其有效性威胁。第4节讨论了结果。第5节描述了基于对原始研究的修改而进行的重复研究。第6节介绍了其有效性威胁。第7节报告了这项重复研究的结果。第8节讨论了我们的发现及其影响。第9节展示了相关工作。最后,第10节概述了本工作的结论。
\ \
:::info 本论文可在arxiv上获取,采用CC BY-NC-ND 4.0许可证。
:::
\


