Precise semantic history slicing through dynamic delta refinement

Precise semantic history slicing through dynamic delta refinement
复制标题

通过动态增量细化进行精确的语义历史切片

DOI:
--
复制
发表时间:
2016
期刊:
International Conference on Automated Software Engineering
影响因子:
--
通讯作者:
M. Chechik
M. Chechik
中科院分区:
--
文献类型:
--
作者:
Yi Li;Chenguang Zhu;J. Rubin;M. Chechik

文献摘要

被引文献

相似文献

语义历史记录切片解决了从软件版本历史记录中提取与特定高级功能相关的更改的问题。最新的技术结合了静态程序分析和动态执行跟踪,以推断过过度Ximated的变化集,该更改可以保留测试套件捕获的功能行为。但是,由于这种技术的保守性,切片的历史可能包含无关紧要的变化。在本文中,我们提出了一种通过动态的增强型增强的分裂和折叠式分区方法,以产生较小的语义历史片段。我们利用从连续的测试执行产生的动态不变式中使用三角洲,以了解相对于目标功能的变化的重要性。此外,我们引入了一种文件级提交技术,以解开单个提交中引入的无关更改。经验结果表明,这些测量值根据其与所需的测试行为的相关性准确地对变化进行排名,从而以有效有效的方式分配历史切片。
Semantic history slicing solves the problem of extracting changes related to a particular high-level functionality from software version histories. State-of-the-art techniques combine static program analysis and dynamic execution tracing to infer an over-approximated set of changes that can preserve the functional behaviors captured by a test suite. However, due to the conservative nature of such techniques, the sliced histories may contain irrelevant changes. In this paper, we propose a divide-and-conquer-style partitioning approach enhanced by dynamic delta refinement to produce much smaller semantic history slices. We utilize deltas in dynamic invariants generated from successive test executions to learn significance of changes with respect to the target functionality. Additionally, we introduce a file-level commit splitting technique for untangling unrelated changes introduced in a single commit. Empirical results indicate that these measurements accurately rank changes according to their relevance to the desired test behaviors and thus partition history slices in an efficient and effective manner.