arXivDaily arXiv每日学术速递 周一至周五更新
arXiv 2009.10340cs.SE
收藏

进化冲突检查

Evolutionary Conflict Checking

Tao Ji, Liqian Chen, Xiaoguang Mao, Xin Yi, Jiahong Jiang

摘要:

在软件演化过程中,现有功能可能会受到新更改的不利影响,这就是众所周知的回归错误。维护高质量的测试套件有助于防止回归错误,而这在很大程度上取决于开发人员。基于新的变更不断地扩充现有的测试套件可以帮助开发人员调查这些新变更的影响。通过比较生成的测试用例在两个版本上的执行情况,现有技术能够检测出一些常见的错误。然而,缺少对现有程序行为的新更改的需求和预言。此外,当新的更改没有与其他未更改的代码进行充分检查时,可能会引入新的错误,最终无法满足开发人员对更改的真实意图。在本文中,我们提出了进化冲突检查的概念,以验证新的变化。通过提取新变更所反映的开发者意图,将线性演化过程转化为一个三向合并过程,检测现有行为与新变更之间的冲突。我们的实验结果表明,进化冲突检查是能够适用于保证软件质量的变化。

英文摘要:

During the software evolution, existing features may be adversely affected by new changes, which is well known as regression errors. Maintaining a high-quality test suite is helpful to prevent regression errors, whereas it heavily depends on developers. Continuously augmenting the existing test suite based on the new changes can assist developers in investigating the impact of these new changes. And by comparing the executions of the generated test case on two versions, existing techniques are able to detect some common errors. However, the requirements and oracles on the new changes with existing program behaviors are missing. In addition, the new changes may introduce new bugs when they are not sufficiently examined with other unchanged code, which finally fails to meet developers' real intentions on changes. In this paper, we propose the notion of evolutionary conflict checking to validate new changes. By extracting developers' intention reflected by new changes and transforming the linear evolutionary process into one three-way merge, we detect conflicts between existing behaviors and new changes. Our experimental results indicate that evolutionary conflict checking is able to be applied for guaranteeing software quality after changes.

机构、总结、中文摘要均由AI分析而来,可能存在错误,请以论文正文为准。

↑