在概念测试中,什么是“具体执行"?意思是? [英] In concolic testing, what does "concrete execution" mean?
问题描述
当我经历在其抽象部分中使用了该术语.)
I came across the terms "concrete & symbolic execution" when I was going through the concept of concolic testing. (The article mentioned there, "CUTE: A concolic unit testing engine for C", uses that term in its abstract section.)
所使用的方法建立在先前的工作之上,结合了象征性的执行和具体的执行,更具体地说,是使用这种组合来生成测试输入以探索所有可行的执行路径."
任何人都可以确认具体执行"是什么意思吗?尽管进行了搜索,但我找不到任何直接的引文/明确的陈述.
Can anyone please confirm what "concrete execution" means? In spite of my search, I could not find any direct citations / explicit statements.
据我了解,具体执行"是指以实际输入值执行程序,而不是符号执行,它假定变量,输入等具有符号值."如果我错了,请纠正我(如果可能,请举个小例子).
From what I have understood, "concrete execution" means "the execution of a program with actual input values unlike symbolic execution, which assumes symbolic values to variables, inputs etc.". If I am wrong, please correct me (if possible with a small example).
推荐答案
出于可行的目的,concolic执行是CONCrete执行和symbOLIC执行之间的混合.
Concolic execution is a mix between CONCrete execution and symbOLIC execution, with the purpose of feasibility.
符号执行使我们能够通过所有可能的执行路径执行程序,从而实现所有可能的路径条件(路径条件=使我们到达执行过程中特定点的一组逻辑约束).问题在于,除了微基准测试之外,通过所有可能的执行路径执行程序的成本成倍增加,因此令人望而却步.
Symbolic execution allows us to execute a program through all possible execution paths, thus achieving all possible path conditions (path condition = the set of logical constraints that takes us to a specific point in the execution). The problem is that, except for micro benchmarks, the cost of executing a program through all possible execution paths is exponentially large, thus prohibitive.
另一方面,如果我们为符号执行提供具体值,则可以引导它通过特定的执行路径(无需遍历所有路径)并实现各自的路径条件.这是可行的.
On the other hand, if we provide the symbolic execution with concrete values, you can guide it through a specific execution path (without traversing all of them) and achieve the respective path condition. This is feasible.
我希望这能回答您的问题
I hope this answers your question
这篇关于在概念测试中,什么是“具体执行"?意思是?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!