为什么动态分析无法涵盖程序的所有执行路径?
-
23-12-2019 - |
题
我是新的程序分析区域和在这个区域阅读一些材料后,我有一些问题我找不到相应的答案..
参见,如果我实现工具:符号执行+具体执行 就像 dart
然后,我认为它应该覆盖所有执行路径,同时保持动态分析功能..我告诉动态分析不能涵盖所有的执行路径,但基本上是为什么?我认为像Dart这样的技术现在已经成熟...
其他,如模型检查,理论上保证100%代码覆盖......我是对的吗?谁能给我一些帮助吗?谢谢!
解决方案
通过一段代码的路径数是“如果”语句的数量的指数。例如,如果您有这样的代码:
if (a) {
// do something
}
if (b) {
// do something
}
...
if (z) {
// do something
}
.
然后有67108864可能的代码路径,具体取决于26个布尔变量的值。
不隶属于 StackOverflow