18
Copyright © 2012 日日日日日日日日日日 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 日日日日日日日日日日日 日日日 1

Leveraging Existing Instrumentation to Automatically Infer Invariant-Constrained Models

  • 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

Page 1: Leveraging Existing Instrumentation to Automatically Infer Invariant-Constrained Models

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

Page 2: Leveraging Existing Instrumentation to Automatically Infer Invariant-Constrained Models

Copyright © 2012 日本電信電話株式会社

目的と貢献

目的– システムのログを利用して、システムのデバックや

理解を簡単に行える仕組みを作る

主要な貢献– 従来のログを使ったデバッグ・システム理解より

も、開発者に要求する手順・入力を削減• 既存の動作ログ と 解析するための数行の正規表現

– 簡単・明確にシステムモデルを推測する。• モデルを見ることにより、ログの解析を容易にする。

– 研究成果をツール化(名称: Synoptic)• ツールは OSS として提供中: 

http://code.google.com/p/synoptic/2

Page 3: Leveraging Existing Instrumentation to Automatically Infer Invariant-Constrained Models

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

Page 4: Leveraging Existing Instrumentation to Automatically Infer Invariant-Constrained Models

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 より引用

Page 5: Leveraging Existing Instrumentation to Automatically Infer Invariant-Constrained Models

Copyright © 2012 日本電信電話株式会社

評価

二つのケーススタディを実施:– 実システム:

• reverse traceroute システムの開発者• 900,000 のイベントログを対象• モデルを見ながら、インタビューを実施 ⇒ モデル提示から数分でバグを発見

– 学生実験:• ワシントン大学、分散システムコースの学部生。 2-4 人からなる 18 のグループ• peer-to-peer のソーシャルネットワークの設計・実装で評価• 3グループで実装バグを発見

実験(インタビュー、レポートを含む)により、Synoptic が以下に貢献していることを確認– コード中のバグ発見 : これまで見つけづらかったバグの発見を容易に– 開発者の信頼性向上 : バグがないことをモデルとして示すことができる。– システム理解 : モデルを観察することにより、システム理解ができる。

5

Page 6: Leveraging Existing Instrumentation to Automatically Infer Invariant-Constrained Models

Copyright © 2012 日本電信電話株式会社

Path Exploration based on Symbolic Output

Dawei Qi, Hoang D.T. Nguyen, Abhik Roychoudhury

School of Computing, National University of Singapore

担当 : NTT サイバースペース研究所 大島剛志

Page 7: Leveraging Existing Instrumentation to Automatically Infer Invariant-Constrained Models

Copyright © 2012 日本電信電話株式会社

目的と貢献

本論文の目的– より効率的なプログラムの経路探索手法の構築

主要な貢献– 効率的なパス探索手法を提案した

• 記号実行を行った際の出力ベースの手法

– 従来の全経路探索を採用しているツールよりも効率的な経路の探索を可能にした

– テストスイート作成の際に当手法が有用であることを実験で確認した

7

Page 8: Leveraging Existing Instrumentation to Automatically Infer Invariant-Constrained Models

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通り

Page 9: Leveraging Existing Instrumentation to Automatically Infer Invariant-Constrained Models

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 より引用

Page 10: Leveraging Existing Instrumentation to Automatically Infer Invariant-Constrained Models

Copyright © 2012 日本電信電話株式会社

評価つづき 提案手法と DART( 全経路探索 ) で経路抽出の効率を

比較した

10

提案手法 ( 赤線 ) において,よりよい結果が得られたDawei Qi, Hoang D.T. Nguyen, Abhik Roychoudhury"Path Exploration based on Symbolic Outpit" (ESEC/FSE’11) Figure7 より引用

Page 11: Leveraging Existing Instrumentation to Automatically Infer Invariant-Constrained Models

Copyright © 2012 日本電信電話株式会社

Synthesizing Data-structure Manipulations from StoryboardsRishabh Singh1, Armando Solar-Lezama1

1 MIT CSAIL

担当 : NTT サイバースペース研究所 神谷慎吾

Page 12: Leveraging Existing Instrumentation to Automatically Infer Invariant-Constrained Models

Copyright © 2012 日本電信電話株式会社

1. 背景、目的 背景

– 複雑なデータ構造を操作するプログラムの作成は難しい。– プログラマは操作前後のデータ構造を白板等に図示して考察するが、実際のプ

ログラムは考察の図とはかなり違う。– 簡単な例として、二重リンクリストのノードを削除する場合 :

目的– 操作前後でデータ構造がどう変わるかの図 (Storyboard) を基に操作プログ

ラムを合成する。

白板に書くプログラマの発想実際に作らなければならないプログラム

認識GAP

Rishabh Singh, Armando Solar-Lezama“Synthesizing Data-structure Manipulations from Storyboards" (ESEC/FSE’11) Figure 1 より引用(一部修正有り )

Page 13: Leveraging Existing Instrumentation to Automatically Infer Invariant-Constrained Models

Copyright © 2012 日本電信電話株式会社

2. 提案手法、既存手法との違い 提案手法

– PBE: Programming by Example の一種– データ構造の変化を示す図に相当するテキスト記法でシナリオ例 (複数可 )

を書く。 ( 現時点では図的な入力にはなっていない。 )– Constraint-based synthesis + abstract-interpretation-based shape

analysis により操作プログラムを合成する。

既存の PBE 手法との違いを下表に示す。# 項目 提案手法 既存手法1 省略の扱い 「…」のような省略箇所を

表現可能 (実は無限の場合を簡潔に表現 )

確定的な場合をいくつも書かなければならない。一般化不足の結果になりがち。

2 生成プログラム制約 スケルトンを書いて出力形態を制限可能

指定不可:探索空間が大きすぎて計算が大変。結果が奇妙になりやすい。

3 合成アルゴリズム 2技法のうまい組み合わせで認識 GAPを解消

技法毎の個別検討

4 ケーススタディ 実用的な凝ったケース OK 簡単な場合のみ答えが出る。

Page 14: Leveraging Existing Instrumentation to Automatically Infer Invariant-Constrained Models

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

左図の一般の場合に対応

Page 15: Leveraging Existing Instrumentation to Automatically Infer Invariant-Constrained Models

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]);

Page 16: Leveraging Existing Instrumentation to Automatically Infer Invariant-Constrained Models

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 型の式が来るべきといった構文上の制約条件は認識する模様

Page 17: Leveraging Existing Instrumentation to Automatically Infer Invariant-Constrained Models

Copyright © 2012 日本電信電話株式会社

6. 生成されたプログラムの例 リンクリストの反転を題材として例示的に示す。

– 前頁までの記述 (+アルファ ) から生成されたプログラムが下記 :

Rishabh Singh, Armando Solar-Lezama“Synthesizing Data-structure Manipulations from Storyboards" (ESEC/FSE’11) Figure 7 より引用

スケルトンには書かれていた

Return 文が抜けている感触

コメントも自動生成したのかは謎

Page 18: Leveraging Existing Instrumentation to Automatically Infer Invariant-Constrained Models

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