我遇到了条款"具体和&象征性执行"当我经历concolic testing的概念时。 (那里提到的文章," CUTE:C" 的一个古老的单元测试引擎,在其摘要部分中使用该术语。)
"所使用的方法建立在先前的工作基础上,结合了符号和具体执行,更具体地说,使用这样的组合来生成测试输入以探索所有可行的执行路径。"
任何人都可以确认具体的执行情况"手段?尽管我的搜索,我找不到任何直接引用/明确的陈述。
据我所知,"具体执行"表示"执行具有实际输入值的程序,与符号执行不同,后者假定符号值为变量,输入等。"。如果我错了,请纠正我(如果可能,请用一个小例子)。
答案 0 :(得分:14)
Concoic执行是CONCrete执行和symbOLIC执行之间的混合,具有可行性的目的。
符号执行允许我们通过所有可能的执行路径执行程序,从而实现所有可能的路径条件(路径条件=将我们带到执行中的特定点的逻辑约束集)。问题在于,除了微基准之外,通过所有可能的执行路径执行程序的成本是指数级的,因此是禁止的。
另一方面,如果我们为符号执行提供具体值,您可以引导它通过特定的执行路径(不遍历所有路径)并实现相应的路径条件。这是可行的。
我希望这能回答你的问题
答案 1 :(得分:2)
在您提到的背景下,我非常确定"具体执行"指的是在特定输入上实际运行程序并查看发生的情况。 " concolic测试"您链接的文章建议在特定输入测试(具体执行,完整但不健全)和符号测试(符号执行,听起来但不完整)之间采用混合方法。
希望这有帮助!