Skip to main content
QUICK REVIEW

[論文レビュー] Automatic Web Testing using Curiosity-Driven Reinforcement Learning

Yan Zheng, Yi Liu|arXiv (Cornell University)|Mar 10, 2021
Software Testing and Debugging Techniques参考文献 52被引用数 4
ひとこと要約

本稿では、好奇心に基づく探索を用いて高カバレッジで行動に多様性を持つテストケースを生成する、エンドツーエンドの強化学習フレームワークであるWebExplorを提案する。動的に学習された決定的有限オートマトン(DFA)を高レベルなガイダンスとして統合することで、WebExplorは優れたコードカバレッジと障害検出性能を達成し、最先端の手法を上回り、商用SaaSアプリケーションで12件の未知のバグを発見した。

ABSTRACT

Web testing has long been recognized as a notoriously difficult task. Even nowadays, web testing still heavily relies on manual efforts while automated web testing is far from achieving human-level performance. Key challenges in web testing include dynamic content update and deep bugs hiding under complicated user interactions and specific input values, which can only be triggered by certain action sequences in the huge search space. In this paper, we propose WebExplor, an automatic end-to-end web testing framework, to achieve an adaptive exploration of web applications. WebExplor adopts curiosity-driven reinforcement learning to generate high-quality action sequences (test cases) satisfying temporal logical relations. Besides, WebExplor incrementally builds an automaton during the online testing process, which provides high-level guidance to further improve the testing efficiency. We have conducted comprehensive evaluations of WebExplor on six real-world projects, a commercial SaaS web application, and performed an in-the-wild study of the top 50 web applications in the world. The results demonstrate that in most cases WebExplor can achieve a significantly higher failure detection rate, code coverage, and efficiency than existing state-of-the-art web testing techniques. WebExplor also detected 12 previously unknown failures in the commercial web application, which have been confirmed and fixed by the developers. Furthermore, our in-the-wild study further uncovered 3,466 exceptions and errors.

研究の動機と目的

  • 膨大なアクションスペースと動的コンテンツによる、自動ウェブテストにおける非効率的で偏った探索の課題に対処すること。
  • 静的ナビゲーションモデルに依存し、手動でのドメイン知識を要するモデルベース手法の限界を克服すること。
  • 明示的なモデルや事前定義されたテスト目的を必要とせず、エンドツーエンドで適応的なテストケース生成を可能にすること。
  • 動的行動と深い論理的依存関係を有する複雑なウェブアプリケーションにおける探索効率とカバレッジを向上させること。

提案手法

  • 世界モデルにおける予測誤差を最大化することで、未訪問の状態の探索を促進する、好奇心に基づく強化学習(CDRL)を採用する。
  • DOM構造、UI要素のプロパティ、アクション履歴を統合したカスタム状態表現を設計し、ウェブアプリケーションの意味を捉える。
  • 新しい行動や潜在的にバグのある挙動を探索するように導くために、好奇心に基づく内因的報酬を統合する。
  • 実行されたアクションシーケンスから段階的に決定的有限オートマトン(DFA)を学習し、妥当な制御フローをモデル化して探索をガイドする。
  • DFAを高レベルな制約として用い、意味的に妥当で、複雑な論理をトリガーする可能性の高いパスを優先する。
  • 内因的報酬(例:好奇心)と外因的報酬(例:コードカバレッジ、クラッシュ検出)を組み合わせることで、新奇性と機能的正しさのバランスを取る。

実験結果

リサーチクエスチョン

  • RQ1好奇心に基づく強化学習は、大規模で動的なアクションスペースを持つ複雑なウェブアプリケーションを効果的に探索できるか?
  • RQ2学習されたDFAを統合することで、好奇心のみのRLと比較して探索効率とテストカバレッジがどのように向上するか?
  • RQ3WebExplorは、既存の最先端の自動ウェブテストツールと比較して、障害検出性能とコードカバレッジでどの程度優れているか?
  • RQ4WebExplorは、実世界の生産環境向けウェブアプリケーションにおいて、以前に未知のバグを発見できるか?

主な発見

  • WebExplorは、6つの実世界のウェブアプリケーションおよび商用SaaSプラットフォームにおいて、すべてのベースライン手法よりも顕著に高いコードカバレッジを達成した。
  • 商用SaaSウェブアプリケーションで12件の以前に未知の障害を検出しており、開発チームによってすべて確認され、修正された。
  • 世界トップ50のウェブアプリケーションを対象とした実環境での調査では、WebExplorが3,466件の例外やエラーを発見した。これは、広範な実世界での有効性を示している。
  • DFAガイダンス探索の統合により、好奇心のみのRLと比較して、テストケースの品質と探索効率に顕著な改善が見られた。
  • WebExplorは、障害検出率と実行効率の両面で、既存のモデルフリーおよびモデルベースのウェブテスト技術を上回った。
  • 動的コンテンツや複雑な相互作用パターン(例:複数ステップのフォーム送信)に対しても、強力な適応性を示した。

より良い研究を、今すぐ始めましょう

論文の読解から最終レビューまで、研究時間を劇的に削減しましょう。

クレジットカード登録不要

このレビューはAIが作成し、人間の編集者が確認しました。