【24h】

Inspecting Code Churns to Prioritize Test Cases

机译:检查代码搅拌以优先考虑测试用例

获取原文

摘要

Within the context of software evolution, due to time-to-market pressure, it is not uncommon that a company has not enough time and/or resources to re-execute the whole test suite on the new software version, to check for non-regression. To face this issue, many Regression Test Prioritization techniques have been proposed, aimed at ranking test cases in a way that tests more likely to expose faults have higher priority. Some of these techniques exploit code churn metrics, i.e. some quantification of code changes between two subsequent versions of a software artifact, which have been proven to be effective indicators of defect-prone components. In this paper, we first present three new Regression Test Prioritization strategies, based on a novel code churn metric, that we empirically assessed on an open source software system. Results highlighted that the proposal is promising, but that it might be further improved by a more detailed analysis on the nature of the changes introduced between two subsequent code versions. To this aim, in this paper we also sketch a more refined approach we are currently investigating, that quantifies changes in a code base at a finer grained level. Intuitively, we seek to prioritize tests that stress more fault-prone changes (e.g., structural changes in the control flow), w.r.t. those that are less likely to introduce errors (e.g., the renaming of a variable). To do so, we propose the exploitation of the Abstract Syntax Tree (AST) representation of source code, and to quantify differences between ASTs by means of specifically designed Tree Kernel functions, a type of similarity measure for tree-based data structures, which have shown to be very effective in other domains, thanks to their customizability.
机译:在软件演变的背景下,由于上市时间的压力,公司没有足够的时间和/或资源在新的软件版本上重新执行整个测试套件并不罕见,以检查非回归。要面对这个问题,已经提出了许多回归测试优先级化技术,用于排名测试用例,以一种测试更有可能暴露出错的方式具有更高的优先级。其中一些技术利用代码流失度量,即一些在软件工件的两个后续版本之间的代码变化的量化,已被证明是有效的缺陷易受组件的指标。在本文中,我们首先基于新的代码流失指标,提出了三种新的回归测试优先级策略,我们在开源软件系统上经过经验评估。结果强调了该提案很有希望,但通过更详细的分析两个后续代码版本之间引入的变化的性质,可能会进一步提高。为此目的,在本文中,我们还绘制了一种更精致的方法,我们目前正在调查,这量化了在更精细的粒度级别的代码库中的变化。直观地,我们寻求优先考虑压力更容易变化的测试(例如,控制流程中的结构变化),W.R.T.那些不太可能引入错误的人(例如,重命名变量)。为此,我们提出了利用源代码的抽象语法树(AST)表示,并通过专门设计的树内核功能来量化AST之间的差异,这是一种基于树的数据结构的相似性度量,它具有由于其定制性,在其他域中显示非常有效。

著录项

相似文献

  • 外文文献
  • 中文文献
  • 专利
获取原文

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号