핵심 개념
FuSeBMC-AIは、機械学習モデルを使ってソフトウェアプログラムの最適な検証設定を予測し、ハイブリッド検証アプローチの効率を向上させる。
초록
本論文では、FuSeBMC-AIというソフトウェア検証ツールを提案している。FuSeBMC-AIは、機械学習技術を活用して、ソフトウェアプログラムの最適な検証設定を予測する。
具体的には以下の通り:
- プログラムのソースコードから様々な特徴量を抽出し、それらを機械学習モデル(決定木分類、サポートベクターマシン、ニューラルネットワーク回帰)に入力する。
- これらのモデルを訓練し、プログラムに最適な検証設定(フラグ値)を予測する。
- 予測された最適設定を用いて、FuSeBMCのバウンデッドモデルチェックとファジングのハイブリッドアプローチを実行する。
- この手法により、一部のベンチマークカテゴリ(ControlFlow、Hardware、Loops、Software Systems BusyBox MemSafety)で、デフォルトのFuSeBMCよりも高い性能(カバレッジ向上、リソース消費削減)を達成できた。
一方で、訓練データの不足などの課題も残されている。今後は、より多様なプログラム構造のデータを用いて、手法の適用範囲を広げていく予定である。
통계
プログラムの特徴量として、ループの数やネストの深さ、条件分岐の数など、合計24種類の指標を抽出している。
これらの特徴量に基づいて、最大384通りの検証設定フラグの組み合わせを試行している。