我是程序分析领域的新手,在阅读了该领域的一些资料后,我有一些问题找不到相应的答案..
看,如果我实现一个工具:符号执行+具体执行 就像DART
那我觉得应该覆盖所有的执行路径,同时保持动态分析的特性..
有人告诉我动态分析不能覆盖所有的执行路径,但基本上是为什么?我认为像 DART 这样的技术现在已经很成熟了......
其他的,比如模型检查,理论上可以保证 100% 的代码覆盖率……我说的对吗?
谁能帮帮我?谢谢!
最佳答案
通过一段代码的路径数量与“if”语句的数量成指数关系。例如,如果您有这样一段代码:
if (a) {
// do something
}
if (b) {
// do something
}
...
if (z) {
// do something
}
然后有 67108864 种可能的代码路径,具体取决于 26 个 bool 变量的值。
关于testing - 为什么动态分析不能覆盖一个程序的所有执行路径?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22059433/