12
Web Surfing 担担 担担 担担担 ICSE 2011 担担担

Web Surfing

Embed Size (px)

DESCRIPTION

ICSE 2011 勉強会. Web Surfing. 担当:名大・阿草研. ICSE 2011 勉強会. Automated Cross-Browser Comparibility Testing. 担当:渥美 紀寿. Contribution. cross-browser の互換性問題について定義し,可能な解決案について議論 cross-browser compatibility の自動テスト手法の提案 オープンソースと商用の Web アプリケーションに適用して手法の評価. Cross-Browser Compatibility Problem. - PowerPoint PPT Presentation

Citation preview

Page 1: Web Surfing

Web Surfing

担当:名大・阿草研

ICSE 2011 勉強会

Page 2: Web Surfing

Automated Cross-Browser Comparibility Testing

担当:渥美 紀寿

ICSE 2011 勉強会

Page 3: Web Surfing

Contribution cross-browser の互換性問題について定義し,可能

な解決案について議論 cross-browser compatibility の自動テスト手法の提

案 オープンソースと商用の Web アプリケーションに

適用して手法の評価

11/07/05ICSE2011 勉強会3

Page 4: Web Surfing

Cross-Browser Compatibility Problem

A. クライアントサイドの内部状態の違い

B. ブラウザを通して確認可能な違い

C. A∩BD. 提案手法で検出

11/07/05ICSE2011 勉強会4

Figure 2: Browser incompatibility landscape.

• B-A: CSS の表現の違いなど ( 本研究の対象外 )

• A-B: ユーザが観測できない DOM 表現の違い

( 互換性の問題ではない )• C: 検出したい問題

Page 5: Web Surfing

Approach1. 異なるブラウザ環境で Web アプリケーションをク

ロールし,キャプチャ,観測される振舞いを蓄積 (CRAWLJAX) finite state machine⇒

2. state graph の構築 状態: Web ブラウザの画面を表現 遷移:ユーザのアクション ( クリック,マウスオーバ )

( アクションによってラベル付け )

3. ブラウザ間の比較1. 状態を単に頂点とみなして比較2. DOM の (screen model) 比較 CSS などのブラウザ間の表現の違いを無視

(valign=“center” or “middle”)

11/07/05ICSE2011 勉強会5

Page 6: Web Surfing

Evaluation オープンソース,商用エンタープライズ Web

Application を対象に実験 false-negative (C-D) : なし false-positive (D-C) :

state graph のエッジのラベルの違い 順番が入れ替わっても問題のないタグの順番違い

検出された例 メニュアイコンが表示されるか否か

<LABEL class=“icon—538763880”></LABEL> Firefox のバグにより, load が完了しない ブラウザによって実行されない JavaScript 関数

11/07/05ICSE2011 勉強会6

Page 7: Web Surfing

A Framework for Automated Testing of JavaScript Web Applications

担当:渥美 紀寿

Page 8: Web Surfing

Contribution JavaScript Web アプリケーションに対する自動

feedback-directed テストのための柔軟なフレームワークの提案

異なる優先付け方法,入力生成方法を用いることによって,実用的なテスト生成アルゴリズムを得られた

シンプルなアルゴリズムでも 100 テストでカバレッジが 69% で,ベストなアルゴリズムで 72 %

11/07/05ICSE2011 勉強会8

Page 9: Web Surfing

Test Framework1. worklist ← (URL u0, State S0, Sequence s0)

2. worklist から優先度の高い順にテストケースを取り出す  (u, S, s1...sn)

3. ページをロード4. フォームフィールド,ブラウザパラメータのセット,イベントの

実行5. worklist 中の優先度の再計算6. シーケンスの最後のイベントの入力を変更したものを worklist

に加える  add(u, S, s1...sn-1.G.generateVariants(sn))

7. worklist にページ中のイベント pi を全て加える  add (u, S, s1...sn.G.generateNew(pi))

8. worklist にページ中の URL ui を全て加える  add(ui, S0, s0)

9. 2 に戻る (worklist が空になるまで )

(*) worklist への追加は優先度を付けて行う

11/07/05ICSE2011 勉強会9

Page 10: Web Surfing

Prioritization and Input Generation Prioritization

Input GenerationG0

button parameter = 0

empty string, unselected

ソースプログラム中でセットされた定数をランダムに選択

G1

イベントハンドラの実行で利用される定数をランダムに選択

11/07/05ICSE2011 勉強会10

カバレッジが低いほど高い

シーケンスが長いほど高い

generateNew

generateVariants

前に実行したイベントに関連するものほど高い

Page 11: Web Surfing

Evaluation シンプルなアルゴリズムでも高いカバ

レッジになった いくつかの HTML エラー,実行エラーを

検出できた このフレームワークを利用することに

よって,他の戦略を利用するなど今後の発展が期待できる

11/07/05ICSE2011 勉強会11

Table 1: Test generation Algorithms

Table 2: Benchmark characteristics and summary of experimental results

Page 12: Web Surfing

Coalescing Executions for Fast Uncertainty Analysis

ICSE 2011 勉強会