Upload
cocheta-green
View
41
Download
2
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
Web Surfing
担当:名大・阿草研
ICSE 2011 勉強会
Automated Cross-Browser Comparibility Testing
担当:渥美 紀寿
ICSE 2011 勉強会
Contribution cross-browser の互換性問題について定義し,可能
な解決案について議論 cross-browser compatibility の自動テスト手法の提
案 オープンソースと商用の Web アプリケーションに
適用して手法の評価
11/07/05ICSE2011 勉強会3
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: 検出したい問題
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
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
A Framework for Automated Testing of JavaScript Web Applications
担当:渥美 紀寿
Contribution JavaScript Web アプリケーションに対する自動
feedback-directed テストのための柔軟なフレームワークの提案
異なる優先付け方法,入力生成方法を用いることによって,実用的なテスト生成アルゴリズムを得られた
シンプルなアルゴリズムでも 100 テストでカバレッジが 69% で,ベストなアルゴリズムで 72 %
11/07/05ICSE2011 勉強会8
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
Prioritization and Input Generation Prioritization
Input GenerationG0
button parameter = 0
empty string, unselected
ソースプログラム中でセットされた定数をランダムに選択
G1
イベントハンドラの実行で利用される定数をランダムに選択
11/07/05ICSE2011 勉強会10
カバレッジが低いほど高い
シーケンスが長いほど高い
generateNew
generateVariants
前に実行したイベントに関連するものほど高い
Evaluation シンプルなアルゴリズムでも高いカバ
レッジになった いくつかの HTML エラー,実行エラーを
検出できた このフレームワークを利用することに
よって,他の戦略を利用するなど今後の発展が期待できる
11/07/05ICSE2011 勉強会11
Table 1: Test generation Algorithms
Table 2: Benchmark characteristics and summary of experimental results
Coalescing Executions for Fast Uncertainty Analysis
ICSE 2011 勉強会