Observable modified Condition/Decision coverage 本位田研M1 植田黄知 Session:B1 1 概要 • 背景 – テストを評価する指標として有効なMC/DCというC2カバレッジがある • 問題点 – MC/DCではある変数の影響が出力に伝わらずバグを発見できないことが ある • 解決策(OMC/DC) – MC/DCを拡張してある変数の影響を出力に伝えバグをより多く発見でき た Session:B1 2 MC/DCの問題点 • MC/DCを100%にするテストでも内部状態の変化が隠れてしま うとバグを発見できない e1 = i1 or i2 100%MC/DCテスト o1 = e1 and i3 test i1 i2 i3 o1 1 2 3 T F F F F T F T F F F F 4 T T T T e1 = i1 and i2 o1’ = e1 and i3 ※MC/DCとは? ある条件の変化が独立に出力に影響するか どうかの指標 Session:B1 3 OMC/DCによる改善 • MC/DCにオブザーバビリティという指標を追加することで内部 状態の変化を出力に伝える e1 = i1 or i2 100%OMC/DCテスト o1 = e1 and i3 test i1 i2 i3 o1 1 2 3 T F F F F T T T T T F T 4 T F F F e1 = i1 and i2 o1’ = e1 and i3 ※オブザーバビリティとは? ある条件の全ての変化が独立に出力に影響する かどうかの指標 Session:B1 4 評価 • 基準 – バグ検出率 – 構造に対する堅牢性 • 設定 – 手法:MC/DC or OMC/DC – 観測する変数:外部出力のみ or 全ての変数 – プログラムの構造:インライン化する or しない • 対象 – 第三者が作成した大小さまざまなプログラム5つ • 方法 – 250個のバグを埋め込んでテスト Session:B1 5 バグ発見率 • 全てにおいて改善 – 特にNon-Inlined+Output-Only Non-Inlined Inlined DWM1 DWM2 Latctl Vertmax Microwave OMC/DC Output-Only 91% 96% 95% 98% 93% MC/DC Output-Only 3% 77% 55% 41% 59% OMC/DC Maximum 100% 99% 99% 99% 95% MC/DC Maximum 86% 92% 96% 86% 89% OMC/DC Output-Only 88% 97% 97% 96% 95% MC/DC Output-Only 82% 95% 92% 80% 73% OMC/DC Maximum 100% 99% 100% 100% 95% MC/DC Maximum 99% 98% 97% 89% 93% Session:B1 6 構造に対する堅牢性 • プログラムの構造が変わってもバグの発見率が変わらない Case Example DWM1 DMW2 Latctl Vertmax Microwave Oracle OMC/DC MC/DC Output-Only -3 79 Maximum 0 13 Output-Only 1 18 Maximum 0 6 Output-Only 2 37 Maximum 1 1 Output-Only -2 39 Maximum 1 3 Output-Only 2 14 Maximum 0 4 Session:B1 7 Billions and Billions of Constraints: Whitebox Fuzz Testing in Production Ella Bounimova, Patrice Godefroid, David Molnar 概要 超大規模にwhitebox fuzzingを適用した結果の報告 大規模に長期間のテストを行うと問題が発生 Windows 7のバグの ▪ 人間による監視と制御を支援するシステムを開発 1/3を発見 ▪ マイクロソフト社内で500マシン年の規模で運用できバグを大量に発見 背景知識|Whitebox fuzzing , y = 4 -1 入力: x = 0, ▪ 記号的実行とfuzzingを組み合わ せたテスト入力自動生成手法 if x = 0 1. ランダムに生成した入力を利用して 記号的実行を行う 2. 記号的実行で収集された条件の一部 を反転して制約を生成する 3. 生成された制約をソルバに解かせる 4. ソルバが求めた解を新たな入力とし て1.に戻る x = 0 x != 0 if y > 3 y > 3 y <= 3 a = x + y 提案システム 運用中に発生する問題を人間が解決する必要 ⇒ 大量のマシンの監視・制御を支援するシステムを開発 ▪ SAGAN ▪ SAGEからのログを収集するシステム ▪ JobCenter ▪ SAGEを中央からコントロールするシステム 共著者らが提案したWhitebox fuzzingツール 提案システムによる運用 長期間の運用が可能に (台) (台) (台) (日) (日) (日) 分析とチューニングを挟んで3セット実行した時の台数の遷移の比較(横軸:日数、縦軸:台数)
© Copyright 2024 ExpyDoc