Warum kann die dynamische Analyse nicht den gesamten Ausführungsweg eines Programms abdecken?
-
23-12-2019 - |
Frage
Ich bin neu im Programmanalysebereich und nachdem ich ein paar Materialien in diesem Bereich gelesen habe, habe ich einige Fragen, die ich nicht die entsprechenden Antworten finden kann ..
siehe, wenn ich ein Werkzeug implementiere: Symbolische Ausführung + Betonausführung Genau wie dart
Dann denke ich, dass es den gesamten Ausführungsweg abdecken sollte, während die dynamischen Analysefunktionen gehalten wird ..
Mir wurde gesagt, dass die dynamische Analyse den gesamten Ausführungsweg nicht abdecken kann, aber im Grunde warum?Ich denke, Techniken wie Dart ist jetzt ziemlich reif ...
andere, wie Modellprüfung, theoretisch garantieren Sie 100% Code-Abdeckung ... bin ich richtig?
Könnte mir jemand helfen?Danke!
Lösung
Die Anzahl der Pfade durch ein Code ist exponentiell in der Anzahl der Anweisungen 'IF'.Wenn Sie beispielsweise einen Code-Code haben:
generasacodicetagpre.Dann gibt es 67108864 mögliche Codepfade, abhängig von den Werten der 26 booleschen Variablen.