Poster: USE: Unified and Split Execution for Exposing Divergences between Versions

international conference on software engineering(2018)

引用 0|浏览3
暂无评分
摘要
Software maintenance is an important activity during a software development lifecycle in that detecting and fixing software faults are not only costly but also error-prone. How to select an appropriate set of test cases which can effectively show the difference between an old and new version of a software system becomes a challenging research topic. In this paper, we consider both control divergence and data divergence to explore the difference between two versions of code. To do so, we present a novel framework called Use, which executes the common code only once but has separate execution traces for the different code in a single dynamic symbolic execution instance, to generate test cases efficiently. Furthermore, we propose to apply Use to expose control and data divergences introduced by a patch and classifying patches. We evaluate Use on two case studies: SIR benchmark and CoREBench. The initial experimental results show that our methods can efficiently and effectively generate test cases demonstrating the divergence between two versions of code, and be helpful for inferring the bug source.
更多
查看译文
关键词
Divergences,Test Cases Generation,Dynamic Symbolic Execution,Regression Testing,Patches Classification
AI 理解论文
溯源树
样例
生成溯源树,研究论文发展脉络
Chat Paper
正在生成论文摘要