Skip to Content
JavaによるSelenium WebDriverのハンズオン
book

JavaによるSelenium WebDriverのハンズオン

by Boni Garcia
March 2025
Intermediate to advanced
422 pages
6h 59m
Japanese
O'Reilly Media, Inc.
Content preview from JavaによるSelenium WebDriverのハンズオン

第7章. ページ・オブジェクト・モデル(POM)

この作品はAIを使って翻訳されている。ご意見、ご感想をお待ちしている:translation-feedback@oreilly.com

デザインパターンとは、ソフトウェアエンジニアリングで繰り返し発生する問題に対する、 再利用可能な解法のことである。この章では、Selenium WebDriver のテスト開発によく使われるデザインパターンであるPage Object Model (POM) を紹介する。POM の使用には、再利用性の向上やコードの重複の回避など、さまざまな利点がある。POM は、単一のリポジトリに SUT UI をモデル化するためのページクラスを作成することに基づいており、後にテストロジックから使用される。

モチベーション

Selenium WebDriver でエンドツーエンドテストを開発する際の最大の課題のいくつかは、保守性とフレーキー性である。前者に関して、問題は SUT の開発または進化の間に起こるかもしれない。UI に加えられた変更によって、既存のエンドツーエンドテストが破壊される可能性がある。これらのテストを修正するためのメンテナンスコストは、いくつかのテストケースでコードの重複が存在する大規模なテストスイートを持っている場合に関連する可能性がある(例えば、同じロケータが異なるテストで繰り返し使用される場合)。

フレーキー性(信頼性の欠如)に関しては、テストが一貫性のない振る舞いをするとき、つまり、同じ条件(テストロジック、入力データ、セットアップなど)のもとで、定期的に合格と不合格の両方を繰り返すとき、テストはフレーキーである。Selenium WebDriver のテストがフレーキーになる主な原因は 2 つある。まず、問題の根源は SUT にあるかもしれない。インスタンスンスンス、サーバ側のロジックのバグ(例えば、レースコンディション)は、エンドツーエンドテストで不規則な振る舞いを露呈する可能性がある。このような場合、開発者とテスト実施者は、問題を検出し解決するために協 力し、通常はサーバ側のバグを修正する。第二に、テスト自体に原因がある可能性がある。これは、テスターが避けるべき望ましくない状況である。Selenium WebDriver のテストでフレーキーテストを防ぐには、堅牢なロケータ戦略を実装する(レスポンスやビューポートの変化による脆弱なテストを避けるため)とか、待機戦略を使う(「待機戦略」で説明するように、ウェブアプリケーションの分散性や非同期性を扱うため)とか、さまざまな戦略がある。

POMのようなデザインパターンを活用することで、コードの重複を減らし、保守性の問題を改善することができる。さらに、POMを利用することで、再利用可能な堅牢性ロケーショ ン戦略や待機戦略を含めることができる。以下のセクションでは、POMデザインパターンの実行方法について説明する。

POM デザインパターン自体は、厳密にはテストのフレーキー性を解決するものではない。しかし、以下のセクションで説明するように、POM は再利用可能なコードのカプセル化を可能にし、テストの信頼性の低下を防ぐ。

POMデザインパターン

POM デザインパターンの原則は、 UI 要素を処理するロジックを、テストロジックとは別のクラス(ページクラスと呼ぶ)に分離することである。つまり、オブジェクト指向のパラダイムに従って、SUT の外観と振る舞いをページオブジェクトとしてモデル化する。そして、これらのページオブジェクトは、Selenium ...

Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.

Read now

Unlock full access

More than 5,000 organizations count on O’Reilly

AirBnbBlueOriginElectronic ArtsHomeDepotNasdaqRakutenTata Consultancy Services

QuotationMarkO’Reilly covers everything we've got, with content to help us build a world-class technology community, upgrade the capabilities and competencies of our teams, and improve overall team performance as well as their engagement.
Julian F.
Head of Cybersecurity
QuotationMarkI wanted to learn C and C++, but it didn't click for me until I picked up an O'Reilly book. When I went on the O’Reilly platform, I was astonished to find all the books there, plus live events and sandboxes so you could play around with the technology.
Addison B.
Field Engineer
QuotationMarkI’ve been on the O’Reilly platform for more than eight years. I use a couple of learning platforms, but I'm on O'Reilly more than anybody else. When you're there, you start learning. I'm never disappointed.
Amir M.
Data Platform Tech Lead
QuotationMarkI'm always learning. So when I got on to O'Reilly, I was like a kid in a candy store. There are playlists. There are answers. There's on-demand training. It's worth its weight in gold, in terms of what it allows me to do.
Mark W.
Embedded Software Engineer

You might also like

データサイエンスのための実践線形代数

データサイエンスのための実践線形代数

Mike X Cohen
サイトリライアビリティワークブック ―SREの実践方法

サイトリライアビリティワークブック ―SREの実践方法

Betsy Beyer, Niall Richard Murphy, David K. Rensin, Kent Kawahara, Stephen Thorne, 澤田 武男, 関根 達夫, 細川 一茂, 矢吹 大輔, 玉川 竜司
エンジニアが学ぶ会計システムの「知識」と「技術」

エンジニアが学ぶ会計システムの「知識」と「技術」

広川 敬祐, 五島 伸二, 小田 恭彦, 大塚 晃, 川勝 健司

Publisher Resources

ISBN: 9798341626287