9

当我了解concolic 测试的概念时,我遇到了“具体和符号执行”这些术语。(那里提到的文章“CUTE: A concolic unit testing engine for C”在其摘要部分使用了该术语。)

“所使用的方法建立在先前结合符号和具体执行的工作的基础上,更具体地说,使用这种组合来生成测试输入以探索所有可行的执行路径。”

谁能确认“具体执行”是什么意思?尽管我进行了搜索,但我找不到任何直接引用/明确的陈述。

据我了解,“具体执行”是指“执行具有实际输入值的程序,这与符号执行不同,符号执行将符号值假定为变量、输入等”。如果我错了,请纠正我(如果可能的话,举个小例子)。

4

2 回答 2

17

Concolic 执行是 CONCrete 执行和 symbOLIC 执行之间的混合,目的是实现可行性。

符号执行允许我们通过所有可能的执行路径执行程序,从而实现所有可能的路径条件(路径条件 = 将我们带到执行中特定点的一组逻辑约束)。问题在于,除了微基准之外,通过所有可能的执行路径执行程序的成本呈指数级增长,因此令人望而却步。

另一方面,如果我们为符号执行提供具体的值,则可以引导它通过特定的执行路径(无需遍历所有路径)并实现相应的路径条件。这是可行的。

我希望这回答了你的问题

于 2015-04-24T11:38:52.260 回答
2

在您提到的上下文中,我很确定“具体执行”是指在特定输入上实际运行程序并查看会发生什么。您链接到的“concolic testing”文章建议在测试特定输入(具体执行,完整但不健全)和符号测试(符号执行,听起来但不完整)之间采用混合方法。

希望这可以帮助!

于 2015-01-24T18:28:27.330 回答