首页> 外文会议>IEEE International Conference on Software Testing, Validation and Verification >Detecting Higher-Order Merge Conflicts in Large Software Projects
【24h】

Detecting Higher-Order Merge Conflicts in Large Software Projects

机译:检测大型软件项目中的高阶合并冲突

获取原文

摘要

Merge conflicts can occur when multiple developers work concurrently on the same source code corpus. Diverging textual changes (in the same lines of code) are typically easy to resolve with help of common tools like Git. More challenging are higher-order merge conflicts. They arise as the result of unintended interactions between changes in different parts of the source code. Higher-order merge conflicts can be caused by a combination of changes, and so even thorough testing of the individual development branches might not be able to identify them. We suggest an approach based on static analysis and a prototypical tool to detect potential higher-order merge conflicts. Our method identifies potentially dangerous dependencies between changed code fragments in a call graph. An evaluation on SAP HANA, a very large industrial product in C++, shows that the approach is able to identify 62% of higher-order merge conflicts causing build failures over 22 months project development time. The same prototype finds no instance of higher-order merge conflicts causing test failures in SAP HANA during a two month development period. In summary, our method scales well and can identify higher-order merge conflicts which escape traditional testing.
机译:当多个开发人员在同一个源代码语料库上同时工作时,可能会发生合并冲突。借助通用工具(如Git),通常可以轻松地解决文本更改(在同一行代码中)的问题。更具挑战性的是高阶合并冲突。它们是源代码不同部分之间的意外交互作用的结果。高阶合并冲突可能是由变更的组合引起的,因此,即使对各个开发分支进行全面测试也可能无法识别它们。我们建议一种基于静态分析和原型工具的方法来检测潜在的高阶合并冲突。我们的方法在调用图中识别出更改后的代码片段之间的潜在危险依赖关系。对SAP HANA(一种用C ++编写的大型工业产品)的评估表明,该方法能够识别出62%的高阶合并冲突,这些冲突在22个月的项目开发时间内导致构建失败。同一原型没有发现在两个月的开发期内导致SAP HANA测试失败的高阶合并冲突的实例。总而言之,我们的方法可以很好地扩展,并且可以识别出避免传统测试的高阶合并冲突。

著录项

相似文献

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

客服邮箱:kefu@zhangqiaokeyan.com

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

  • 服务号