论文标题
评估执行环境对基于观察切片的影响
Assessing the Impact of Execution Environment on Observation-Based Slicing
论文作者
论文摘要
将程序切片减少到保留所选计算的较小版本,称为切片标准。一种最近的多语性切片方法,基于观察的切片(ORB),推测删除了程序的一部分,然后执行代码。如果切片标准的行为不变,则将投机性删除永久性。 尽管这使得Orbs语言不可知论,但它可能导致某些非直觉切片的生产。一个特别的挑战是执行环境发挥作用。例如,如果在执行语句之前分配给A的内存位置为零,则ORB将删除“ A = 0”行,因为删除不会影响A的值,因此不会影响切片标准。因此,由于诸如初始化和呼叫堆栈重用之类的因素,切片在执行环境之间可能有所不同。 考虑到NVORBS的技术,试图通过在n个不同的执行环境中验证候选人切片来改善此问题。我们进行了一项实证研究,以收集有关执行环境导致切片差异的频率的初步见解。具体而言,我们比较和对比由NVORB的七个不同实例化产生的切片。展望未来,该技术可以看作是变质测试的变体,因此暗示了如何使用变质测试的想法来改善动态程序分析。
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 "a = 0" if the memory location assigned to a contains zero before executing the statement, since deletion will 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, nVORBS, attempts to ameliorate this problem by validating a candidate slice in 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 nVORBS. 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.