RETRACTED ARTICLE: The smell of fear: on the relation between test smells and flaky tests

RETRACTED ARTICLE: The smell of fear: on the relation between test smells and flaky tests
复制标题

撤回的文章:恐惧的气味:关于测试气味和片状测试之间的关系

DOI:
10.1007/s10664-019-09683-z
复制
发表时间:
2019
影响因子:
4.1
通讯作者:
A. Zaidman
A. Zaidman
中科院分区:
计算机科学2区
文献类型:
--
作者:
Fabio Palomba;A. Zaidman

文献摘要

参考文献

被引文献

相似文献

回归测试是开发人员执行的活动,以检查新修改是否尚未引入错误。使回归测试有效的关键要求是测试案例是确定性的。不幸的是,这种情况并非总是如此,因为某些测试可能会遭受所谓的片状,即表现出相同代码的传球和失败结果的测试。片状测试被广泛认为是一个严重的问题,因为它们隐藏了真正的错误并增加了软件检查成本。尽管先前的研究集中在理解自动修复它们的测试片状和设计技术的根本原因,但在本文中,我们探讨了一种正交的观点:片状测试和测试气味之间的关系,即在开发测试时应用的次优发展选择。依靠(1)对最先进的和(2)对工业开发人员的访谈进行分析,我们首先确定了五种诱发片状测试气味类型,即资源乐观,间接测试,测试跑步战争,火灾和忘记,以及有条件的测试逻辑,并自动检测。然后,我们对18个软件系统的19,532种JUNIT测试方法进行了一项大规模的实证研究,发现在75%的情况下,五种认为测试气味与片状测试的因果相关。此外,我们评估了重构的效果,表明它不仅能够消除设计缺陷,而且还固定了所有75%的片状测试,并与测试气味共同发生。
Regression testing is the activity performed by developers to check whether new modifications have not introduced bugs. A crucial requirement to make regression testing effective is that test cases are deterministic. Unfortunately, this is not always the case as some tests might suffer from so-called flakiness, i.e., tests that exhibit both a passing and a failing outcome with the same code. Flaky tests are widely recognized as a serious issue, since they hide real bugs and increase software inspection costs. While previous research has focused on understanding the root causes of test flakiness and devising techniques that automatically fix them, in this paper we explore an orthogonal perspective: the relation between flaky tests and test smells, i.e., suboptimal development choices applied when developing tests. Relying on (1) an analysis of the state-of-the-art and (2) interviews with industrial developers, we first identify five flakiness-inducing test smell types, namely Resource Optimism, Indirect Testing, Test Run War, Fire and Forget, and Conditional Test Logic, and automate their detection. Then, we perform a large-scale empirical study on 19,532 JUnit test methods of 18 software systems, discovering that the five considered test smells causally co-occur with flaky tests in 75% of the cases. Furthermore, we evaluate the effect of refactoring, showing that it is not only able to remove design flaws, but also fixes all 75% flaky tests causally co-occurring with test smells.
Covrig:用于分析实际软件中的代码、测试和覆盖率演变的框架
DOI: 10.1145/2610384.2610419
发表时间: 2014
期刊: --
影响因子: --
作者:
Marinescu P
通讯作者: Marinescu P