QUICK REVIEW
[論文レビュー] Automatic Test Data Generation and Model Checking with CHR
R. Nicholas Gerlich|arXiv (Cornell University)|Jun 9, 2014
Software Testing and Debugging Techniques参考文献 10被引用数 5
ひとこと要約
本論文は、制約処理ルール(CHR)を用いたツールチェーンを提示し、ミッションクリティカルな衛星ソフトウェアにおける自動テストデータ生成およびモデルチェックを実現する。制約処理ルールを用いて到達不能なパスを検出するとともに、構造的カバレッジ基準を満たす入力を生成する。本手法は、以前手動および静的解析で見逃されていた1バイトのバッファオーバーフローを数秒で発見した。
ABSTRACT
We present an example for application of Constraint Handling Rules to automated test data generation and model checking in verification of mission critical software for satellite control.
研究の動機と目的
- ミッションクリティカルな衛星制御ソフトウェアの自動テストデータ生成およびモデルチェックを実現すること。
- テスト入力生成の段階で到達不能な実行パスを早期に検出すること。
- 構造的カバレッジ目標と算術制約を統合し、正確なテスト入力合成を実現すること。
- 制約ベースの記号実行を用いて、複雑な埋め込みシステムの正しさを検証すること。
- 自動検証およびテスト生成を通じて、安全で信頼性の高いソフトウェアを向上させること。
提案手法
- 本手法は、経路構築、充足可能性の検査、制約の解法を実装するため、制約処理ルール(CHR)を用いた制約ソルバーを採用する。
- 経路制約は、関数の制御フローダイアグラムから構築され、特定の経路が到達可能であるために満たすべき条件を表す。
- 効率性を向上させるとともに、到達不能な経路を早期に検出するため、前向き、後向き、分割戦略を組み合わせた経路構築手法を採用する。
- 境界付き整数型および浮動小数点型に対する算術制約は、区間フィルタリングおよび両方向プロパゲーションを用いて処理する。
- 実際の衛星制御ソフトウェアでの検証のため、動的ランダムテストツール(DCRTT)とツールチェーンを統合する。
- 記号実行を用いて経路を解析し、経路制約を解くことで、潜在的なバッファオーバーフローを検出する。
実験結果
リサーチクエスチョン
- RQ1CHRは、安全で信頼性の高い埋め込みシステムにおける自動テストデータ生成およびモデルチェックに効果的に適用可能か?
- RQ2制約ベースの手法を用いて、経路構築段階で到達不能な経路をどのように早期に検出できるか?
- RQ3制約ベースの記号実行は、手動および静的解析で見逃された微細なバッファオーバーフローをどの程度検出できるか?
- RQ4構造的カバレッジ目標と算術制約の統合は、実世界のミッションクリティカルなコードにおいてどの程度有効か?
- RQ5混合データ型および複雑な制御フローを有する複雑な実世界の埋め込みソフトウェアに対して、CHRベースのソルバーはスケーラブルか?
主な発見
- ツールチェーンは、以前手動および静的解析で見逃されていた実際の衛星制御関数における1バイトのバッファオーバーフローを検出した。
- オーバーフロー条件下でのmemcpy呼び出しに到達するという目的で経路制約を解いたところ、1秒未塔で欠陥が特定された。
- 解釈により、オーバーフローは next_entry_start == MAX_BUFFER_SIZE - length + 1、last_entry_start > 0、かつ last_entry_start < length - 1 のときに発生することが明らかになった。
- このオーバーフローは、揮発性データおよび非揮発性プログラムメモリの破損を引き起こし、応答なしの状態に至る可能性がある。
- 欠陥は確認され、修正された。また、将来の類似問題の検出を可能とするよう、ランダムテストツールが拡張された。
- 本研究は、CHRベースの制約ソルビングが、複雑な埋め込みシステムにおける記号実行およびモデルチェックに有効であることを示している。
より良い研究を、今すぐ始めましょう
論文の読解から最終レビューまで、研究時間を劇的に削減しましょう。
クレジットカード登録不要
このレビューはAIが作成し、人間の編集者が確認しました。