论文标题

进化冲突检查

Evolutionary Conflict Checking

论文作者

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

论文摘要

在软件演变过程中,现有功能可能会受到新更改的不利影响,这被称为回归错误。保持高质量的测试套件有助于防止回归错误,而在很大程度上取决于开发人员。根据新更改不断扩大现有的测试套件可以帮助开发人员研究这些新变化的影响。通过比较在两个版本上生成的测试用例的执行,现有技术能够检测一些常见错误。但是,缺少现有程序行为的新更改的要求和甲壳。此外,新的更改可能会引入新的错误,而这些错误未通过其他不变的代码进行充分检查,最终无法满足开发人员对更改的真正意图。在本文中,我们提出了进化冲突检查的概念,以验证新的变化。通过提取开发人员的意图,反映出新的变化并将线性进化过程转换为一个三向合并,我们可以检测到现有行为与新变化之间的冲突。我们的实验结果表明,进化冲突检查能够在更改后保证软件质量。

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.

扫码加入交流群

加入微信交流群

微信交流群二维码

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