Assessing the Impact of Execution Environment on Observation-Based Slicing

2022 IEEE 22nd International Working Conference on Source Code Analysis and Manipulation (SCAM)(2022)

引用 1|浏览18
暂无评分
摘要
Program slicing reduces a program to a smaller version that retains a chosen computation, referred to as a slicing criterion. One recent multi-lingual slicing approach, observation-based slicing (ORBS), speculatively deletes parts of the program and then executes the code. If the behavior of the slicing criteria is unchanged, the speculative deletion is made permanent. While this makes ORBS language agnostic, it can lead to the production of some non-intuitive slices. One particular challenge is when the execution environment plays a role. For example, ORBS will delete the line “ $\mathrm{a}=0$ ” if the memory location assigned to a contains zero before executing this statement, because the deletion does not affect the value of a and thus the slicing criterion. Consequently, slices can differ between execution environments due to factors such as initialization and call stack reuse. The technique considered, $\boldsymbol{n}$ VORBS, attempts to ameliorate this problem by validating a candidate slice in $\boldsymbol{n}$ different execution environments. We conduct an empirical study to collect initial insights into how often the execution environment leads to slice differences. Specifically, we compare and contrast the slices produced by seven different instantiations of $\boldsymbol{n}$ VORBS. Looking forward, the technique can be seen as a variation on metamorphic testing, and thus suggests how ideas from metamorphic testing might be used to improve dynamic program analysis.
更多
查看译文
关键词
slicing,ORBS,metamorphic testing,dynamic analysis
AI 理解论文
溯源树
样例
生成溯源树,研究论文发展脉络
Chat Paper
正在生成论文摘要