Upload
lyn
View
26
Download
2
Embed Size (px)
DESCRIPTION
Leveraging Existing Instrumentation to Automatically Infer Invariant-Constrained Models. Ivan Beschastnikh 1 , Yuriy Brun 1 , Sigurd Schneider 2 , Michael Sloan 1 and Michael D. Ernst 1 1 University of Washington 2 Saarland University 担当 : NTT サイバースペース 研究所 岡田敏. 目的と貢献. 目的 - PowerPoint PPT Presentation
Citation preview
Copyright © 2012 日本電信電話株式会社
Leveraging Existing Instrumentation toAutomatically Infer Invariant-Constrained ModelsIvan Beschastnikh1, Yuriy Brun1, Sigurd Schneider2 ,Michael Sloan1 and Michael D. Ernst1
1 University of Washington2 Saarland University
担当 : NTT サイバースペース研究所 岡田敏
1
Copyright © 2012 日本電信電話株式会社
目的と貢献
目的– システムのログを利用して、システムのデバックや
理解を簡単に行える仕組みを作る
主要な貢献– 従来のログを使ったデバッグ・システム理解より
も、開発者に要求する手順・入力を削減• 既存の動作ログ と 解析するための数行の正規表現
– 簡単・明確にシステムモデルを推測する。• モデルを見ることにより、ログの解析を容易にする。
– 研究成果をツール化(名称: Synoptic)• ツールは OSS として提供中:
http://code.google.com/p/synoptic/2
Copyright © 2012 日本電信電話株式会社
利用イメージ 1 74.15.155.103 [06/Jan/2011:07:24:13] "GET HTTP/1.1 /check-out.php" 2 13.15.232.201 [06/Jan/2011:07:24:19] "GET HTTP/1.1 /check-out.php" 3 13.15.232.201 [06/Jan/2011:07:25:33] "GET HTTP/1.1 /invalid-coupon.php" 4 74.15.155.103 [06/Jan/2011:07:27:05] "GET HTTP/1.1 /valid-coupon.php" 5 74.15.155.199 [06/Jan/2011:07:28:43] "GET HTTP/1.1 /check-out.php" 6 74.15.155.103 [06/Jan/2011:07:28:14] "GET HTTP/1.1 /reduce-price.php" 7 74.15.155.199 [06/Jan/2011:07:29:02] "GET HTTP/1.1 /get-credit-card.php" 8 13.15.232.201 [06/Jan/2011:07:30:22] "GET HTTP/1.1 /reduce-price.php" 9 74.15.155.103 [06/Jan/2011:07:30:55] "GET HTTP/1.1 /check-out.php"10 13.15.232.201 [06/Jan/2011:07:31:17] "GET HTTP/1.1 /check-out.php"11 13.15.232.201 [06/Jan/2011:07:31:20] "GET HTTP/1.1 /get-credit-card.php"12 74.15.155.103 [06/Jan/2011:07:31:44] "GET HTTP/1.1 /get-credit-card.php"
1/3
1/3
reduce-price
1 1
1 get-credit-card
1, 2, 5
9, 10
6,8
7, 11, 12
14
3
Log:
Line parsing: (?<ip>) .+ /(?<TYPE>.+).php"Execution mapping: \k<ip>
valid-coupon
invalid-coupon
check-out
check-out
1/3
Synoptic
Regular Expressions :
ログ解析するために利用:
開発者が準備
入力
始点 終点
行番号
遷移確率
不正な遷移 ⇒バグ発見!!
Ivan Beschastnikh, Yuriy Brun, Sigurd Schneider, Michael Sloan, Michael D. Ernst"Leveraging Existing Instrumentation to Automatically Infer Invariant-Constrained Models" (ESEC/FSE’11) Figure1 より引用
3
Copyright © 2012 日本電信電話株式会社
手法の概要 (モデル生成の流れ)
4
(1) ログを解析解析用正規表現により、三つの系列に分
割
(2) 初期モデルの生成同じ名前のノードを集約
(3) 不正ルートの検出(1) から valid-coupon の後に invalid-
coupon は来ないので不正
(4) ノードの分割・集約順序性が正しくなるようにノードを分割
し、まとめられる部分を集約
Ivan Beschastnikh, Yuriy Brun, Sigurd Schneider, Michael Sloan, Michael D. Ernst"Leveraging Existing Instrumentation to Automatically Infer Invariant-Constrained Models" (ESEC/FSE’11) Figure3, 4, 5, 6 より引用
Copyright © 2012 日本電信電話株式会社
評価
二つのケーススタディを実施:– 実システム:
• reverse traceroute システムの開発者• 900,000 のイベントログを対象• モデルを見ながら、インタビューを実施 ⇒ モデル提示から数分でバグを発見
– 学生実験:• ワシントン大学、分散システムコースの学部生。 2-4 人からなる 18 のグループ• peer-to-peer のソーシャルネットワークの設計・実装で評価• 3グループで実装バグを発見
実験(インタビュー、レポートを含む)により、Synoptic が以下に貢献していることを確認– コード中のバグ発見 : これまで見つけづらかったバグの発見を容易に– 開発者の信頼性向上 : バグがないことをモデルとして示すことができる。– システム理解 : モデルを観察することにより、システム理解ができる。
5
Copyright © 2012 日本電信電話株式会社
Path Exploration based on Symbolic Output
Dawei Qi, Hoang D.T. Nguyen, Abhik Roychoudhury
School of Computing, National University of Singapore
担当 : NTT サイバースペース研究所 大島剛志
Copyright © 2012 日本電信電話株式会社
目的と貢献
本論文の目的– より効率的なプログラムの経路探索手法の構築
主要な貢献– 効率的なパス探索手法を提案した
• 記号実行を行った際の出力ベースの手法
– 従来の全経路探索を採用しているツールよりも効率的な経路の探索を可能にした
– テストスイート作成の際に当手法が有用であることを実験で確認した
7
Copyright © 2012 日本電信電話株式会社
手法 Motivating Example
8
Dawei Qi, Hoang D.T. Nguyen, Abhik Roychoudhury"Path Exploration based on Symbolic Outpit" (ESEC/FSE’11) Figure1, 4 より引用
上のプログラムの例では分岐が3つ存在→経路が8通り存在しかし,出力変数” out” に着目すると,経路は3通り
Copyright © 2012 日本電信電話株式会社
手法と評価 手法
Reordered Relevant-Slice Condition(RSC)
による経路探索
評価
提案手法と DART(Directed Automated Random Testing) で経路抽出の効率を比較した
9
Dawei Qi, Hoang D.T. Nguyen, Abhik Roychoudhury"Path Exploration based on Symbolic Outpit" (ESEC/FSE’11) Figure5, Table 4 より引用
Copyright © 2012 日本電信電話株式会社
評価つづき 提案手法と DART( 全経路探索 ) で経路抽出の効率を
比較した
10
提案手法 ( 赤線 ) において,よりよい結果が得られたDawei Qi, Hoang D.T. Nguyen, Abhik Roychoudhury"Path Exploration based on Symbolic Outpit" (ESEC/FSE’11) Figure7 より引用
Copyright © 2012 日本電信電話株式会社
Synthesizing Data-structure Manipulations from StoryboardsRishabh Singh1, Armando Solar-Lezama1
1 MIT CSAIL
担当 : NTT サイバースペース研究所 神谷慎吾
Copyright © 2012 日本電信電話株式会社
1. 背景、目的 背景
– 複雑なデータ構造を操作するプログラムの作成は難しい。– プログラマは操作前後のデータ構造を白板等に図示して考察するが、実際のプ
ログラムは考察の図とはかなり違う。– 簡単な例として、二重リンクリストのノードを削除する場合 :
目的– 操作前後でデータ構造がどう変わるかの図 (Storyboard) を基に操作プログ
ラムを合成する。
白板に書くプログラマの発想実際に作らなければならないプログラム
認識GAP
Rishabh Singh, Armando Solar-Lezama“Synthesizing Data-structure Manipulations from Storyboards" (ESEC/FSE’11) Figure 1 より引用(一部修正有り )
Copyright © 2012 日本電信電話株式会社
2. 提案手法、既存手法との違い 提案手法
– PBE: Programming by Example の一種– データ構造の変化を示す図に相当するテキスト記法でシナリオ例 (複数可 )
を書く。 ( 現時点では図的な入力にはなっていない。 )– Constraint-based synthesis + abstract-interpretation-based shape
analysis により操作プログラムを合成する。
既存の PBE 手法との違いを下表に示す。# 項目 提案手法 既存手法1 省略の扱い 「…」のような省略箇所を
表現可能 (実は無限の場合を簡潔に表現 )
確定的な場合をいくつも書かなければならない。一般化不足の結果になりがち。
2 生成プログラム制約 スケルトンを書いて出力形態を制限可能
指定不可:探索空間が大きすぎて計算が大変。結果が奇妙になりやすい。
3 合成アルゴリズム 2技法のうまい組み合わせで認識 GAPを解消
技法毎の個別検討
4 ケーススタディ 実用的な凝ったケース OK 簡単な場合のみ答えが出る。
Copyright © 2012 日本電信電話株式会社
3. 記法その1 : シナリオ記述の基本 リンクリストの反転を題材として例示的に示す。
図で書くとこうなる。
一般
長さ2 長さ1 長さ 0
Rishabh Singh, Armando Solar-Lezama“Synthesizing Data-structure Manipulations from Storyboards" (ESEC/FSE’11) Figure 3 より引用(一部修正有り )
提案記法で書くとこうなる。
Environment
vars Node head, temp1, temp2, temp3
selectors (Node, Node) next
locations Node a, f, e, b, f’, e’
summary Node (mid, f, e), (mid’, f’, e’)
invariant next(f, mid)=1/2, next(f’, mid’)=1/2
Scenario 1
input
head(a) // vars
next(a, f), next(e, b), next(b, null) // sels
output
head(b) // vars
next(b, f’), next(e’, a), next(a, null) // sels
省略箇所
局所変数の使用数を予想 ?
Node の属性省略箇所
3-valued logic
左図の一般の場合に対応
Copyright © 2012 日本電信電話株式会社
4. 記法その2 : 省略箇所記述の補足 リンクリストの反転を題材として例示的に示す。
– 省略箇所にも構造があるので、 unfold と fold を指定する。
図で書くとこうなる。Rishabh Singh, Armando Solar-Lezama“Synthesizing Data-structure Manipulations from Storyboards" (ESEC/FSE’11) Figure 4 より引用(一部修正有り )
提案記法で書くとこうなる。
unfold(f, {(f, in, x’), (e, out, x’)}, [true]);unfold(f, {(f, in, x’), (e, out, e’)}, [x’.next=f’]);
fold(x, {(x, in, f’), (x, out, e’)}, [true]);fold(x, {(x, in, f’), (e, out, e’)}, [x.next=f]);
Copyright © 2012 日本電信電話株式会社
5. 記法その3 : 生成プログラム制約 リンクリストの反転を題材として例示的に示す。
– 生成されるプログラムのスケルトンを指定して制約をかける。
Rishabh Singh, Armando Solar-Lezama“Synthesizing Data-structure Manipulations from Storyboards" (ESEC/FSE’11) Figure 5 より引用(一部修正有り )
Node llReverse(Node head) {/* 1 */while ( /* 2 */ ) {
/* 3 */}/* 4 */return head;
}
この箇所には任意の処理があってよい。
/* 2 */ 以下も同様
この箇所には Boolean 型の式が来るべきといった構文上の制約条件は認識する模様
Copyright © 2012 日本電信電話株式会社
6. 生成されたプログラムの例 リンクリストの反転を題材として例示的に示す。
– 前頁までの記述 (+アルファ ) から生成されたプログラムが下記 :
Rishabh Singh, Armando Solar-Lezama“Synthesizing Data-structure Manipulations from Storyboards" (ESEC/FSE’11) Figure 7 より引用
スケルトンには書かれていた
Return 文が抜けている感触
コメントも自動生成したのかは謎
Copyright © 2012 日本電信電話株式会社
7. ケーススタディ 実用的な事例でも比較的短い時間で答えが出る。
– 実験には Pentium Core-i7 1.87GHz CPU & 4GB memory を使用– サイトで追加詳細情報を公開中
Rishabh Singh, Armando Solar-Lezama“Synthesizing Data-structure Manipulations from Storyboards" (ESEC/FSE’11) Table 1 より引用
シナリオ数
dll:二重リンクリスト
bst:二分探索木( 赤黒木 )
ll:リンクリスト
展開された制約式の数
必要最小限の例示に加えてヒント条件も追加指定したもの
aig:And InverterGraph