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