20 - qwik.jp

ICSE 2011勉強会
Web Surfing
担当:名大・阿草研
ICSE 2011勉強会
Automated Cross-Browser
Comparibility Testing
担当:渥美 紀寿
Contribution
cross-browser の互換性問題について定義し,可能な解
決案について議論
cross-browser compatibility の自動テスト手法の提案
オープンソースと商用のWebアプリケーションに適用して
手法の評価



4
ICSE2011 勉強会
11/07/05
Cross-Browser Compatibility Problem
A.
クライアントサイドの内部
状態の違い
B.
C.
ブラウザを通して確認可
能な違い
A∩B
D.
提案手法で検出
Figure 2: Browser incompatibility landscape.
• B-A: CSSの表現の違いなど (本研究の対象外)
• A-B: ユーザが観測できない DOM 表現の違い
(互換性の問題ではない)
• C: 検出したい問題
5
ICSE2011 勉強会
11/07/05
Approach
異なるブラウザ環境でWebアプリケーションをクロール
し,キャプチャ,観測される振舞いを蓄積 (CRAWLJAX)
⇒ finite state machine
state graph の構築
1.
2.


3.
状態:Webブラウザの画面を表現
遷移:ユーザのアクション(クリック,マウスオーバ) (アクション
によってラベル付け)
ブラウザ間の比較
1.
2.

状態を単に頂点とみなして比較
DOM の(screen model)比較
CSS などのブラウザ間の表現の違いを無視
(valign=“center” or “middle”)
6
ICSE2011 勉強会
11/07/05
Evaluation
オープンソース,商用エンタープライズWeb Application
を対象に実験
false-negative (C-D) : なし
false-positive (D-C) :





state graph のエッジのラベルの違い
順番が入れ替わっても問題のないタグの順番違い
検出された例

メニュアイコンが表示されるか否か
<LABEL class=“icon—538763880”></LABEL>
 Firefox のバグにより,load が完了しない
 ブラウザによって実行されない JavaScript 関数

7
ICSE2011 勉強会
11/07/05
A Framework for Automated Testing of
JavaScript Web Applications
担当:渥美 紀寿
Contribution
JavaScript Web アプリケーションに対する自動
feedback-directed テストのための柔軟なフレームワーク
の提案
異なる優先付け方法,入力生成方法を用いることによっ
て,実用的なテスト生成アルゴリズムを得られた
シンプルなアルゴリズムでも100テストでカバレッジが69%
で,ベストなアルゴリズムで 72 %



9
ICSE2011 勉強会
11/07/05
Test Framework
worklist ← (URL u0, State S0, Sequence s0)
worklist から優先度の高い順にテストケースを取り出す
1.
2.
(u, S, s1...sn)
ページをロード
フォームフィールド,ブラウザパラメータのセット,イベントの実行
worklist 中の優先度の再計算
シーケンスの最後のイベントの入力を変更したものを worklist に加える
3.
4.
5.
6.
add(u, S, s1...sn-1.G.generateVariants(sn))
worklist にページ中のイベント pi を全て加える
7.
add (u, S, s1...sn.G.generateNew(pi))
worklist にページ中の URL ui を全て加える
8.
add(ui, S0, s0)
2 に戻る (worklist が空になるまで)
(*) worklistへの追加は優先度を付けて行う
9.
10
ICSE2011 勉強会
11/07/05
Prioritization and Input Generation

Prioritization
P0 (c) =1
カバレッジが低いほど高い
シーケンスが長いほど高い
P1 (c) =1- cov(e1 )´¼´ cov(en )
P2 (c) =

前に実行したイベントに関
連するものほど高い
| (written(e1 )È¼È written(en-1 ))Çread(en ) | +1
| read(en ) | +1
Input Generation
G0
button parameter = 0 generateNew
empty string, unselected
generateVariants
ソースプログラム中でセットされた定数をランダムに選択
G1
イベントハンドラの実行で利用される定数をランダムに選択
11
ICSE2011 勉強会
11/07/05
Evaluation
Table 1: Test generation Algorithms



シンプルなアルゴリズムでも高いカバレッ
ジになった
いくつかのHTMLエラー,実行エラーを検
出できた
このフレームワークを利用することによっ
て,他の戦略を利用するなど今後の発展
が期待できる
Table 2: Benchmark characteristics and summary of experimental results
12
ICSE2011 勉強会
11/07/05
ICSE 2011勉強会
Coalescing Executions for Fast
Uncertainty Analysis