B.Honiden

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セット実行した時の台数の遷移の比較(横軸:日数、縦軸:台数)