我是程序分析领域的新手,在阅读了这方面的一些资料后,我有些问题无法找到相应的答案。
请参阅,如果我实现了一个工具:符号执行+具体执行 就像DART
一样然后我认为它应该涵盖所有执行路径,同时保持动态分析功能..
我被告知动态分析无法涵盖所有执行路径,但基本上为什么呢?我认为像DART这样的技术现在已经相当成熟......
其他人,比如模型检查,从理论上保证了100%的代码覆盖率......我是对的吗?
有人能给我一些帮助吗?谢谢!
答案 0 :(得分:1)
通过一段代码的路径数量是“if”语句数量的指数。例如,如果您有一段这样的代码:
if (a) {
// do something
}
if (b) {
// do something
}
...
if (z) {
// do something
}
然后有67108864个可能的代码路径,具体取决于26个布尔变量的值。