動的分析がプログラムのすべての実行パスをカバーできない理由
-
23-12-2019 - |
質問
プログラム分析エリアでは新しく、この分野でいくつかの素材を読んだ後、私は対応する回答を見つけることができないいくつかの質問をしています。
ツールを実装する場合:シンボリック実行+具体的な実行 dart
それは動的解析機能を維持しながらすべての実行パスをカバーする必要があると思います。
動的分析はすべての実行パスをカバーできないと言われていますが、基本的になぜなぜですか。私はDartのようなテクニックが今、今ではかなり成熟していると思います...
その他モデルチェックのように、理論的には100%のコードカバレッジを保証します...私は正しいですか?
誰も私に助けを与えてもらえますか?ありがとうございました!
解決
コードを通るパス数は、 'if'ステートメントの数で指数関数的です。たとえば、このようなコードがある場合:
if (a) {
// do something
}
if (b) {
// do something
}
...
if (z) {
// do something
}
.
その後、26ブール値変数の値に応じて、67108864の可能なコードパスがあります。
所属していません StackOverflow