返回
Detecting semantic conflicts with unit tests
DOI:10.1016/j.jss.2024.112070.png)
摘要
En 中文
While modern merge techniques, such as 3 -way and structured merge, can resolve textual conflicts automatically, they fail when the conflict arises not at the syntactic, but at the semantic level. Detecting such semantic conflicts requires understanding the behavior of the software, which is beyond the capabilities of most existing merge tools. Although semantic merge tools have been proposed, they are usually based on heavyweight static analyses, or need explicit specifications of program behavior. In this work, we take a different route and propose SAM (SemAntic Merge), a semantic merge tool based on the automated generation of unit tests that are used as partial specifications of the changes to be merged, and that drive the detection of unwanted behavior changes (conflicts) when merging software. To evaluate SAM's feasibility for detecting conflicts, we perform an empirical study relying on a dataset of more than 80 pairs of changes integrated to common class elements (constructors, methods, and fields) from 51 merge scenarios. We also assess how the four unit test generation tools used by SAM individually contribute to conflict identification. Our results show that SAM performs best when combining only the tests generated by Differential EvoSuite and EvoSuite, and using our proposed testability transformations (nine detected conflicts out of 29). These results reinforce previous findings about the potential of using test -case generation to detect conflicts as a method that is versatile and requires only limited deployment effort in practice.
Keyword:
Semantic conflicts
Differential testing
Behavior change
AI总结
对已上传原文的论文进行重点信息的提取,主要内容包括:简要概述、研究摘要、背景介绍、关键亮点、图文解析、展望与总结。
期刊
IF:
4.1
论文数:
5.5K
被引数:
8.4K
机构
引用论文
Isolation and characterization of two types of actinophage infectingStreptomyces scabies感染疥疮链霉菌的两种类型的放线噬菌体的隔离和表征
1600 faults in 100 projects: automatically finding faults while achieving high coverage with EvoSuite1600 100项目中的故障: 在使用EvoSuite实现高覆盖率的同时自动查找故障

