はじめに
自社商品 UIテスト自動化ツール SKYATT で使用しているオープンソースフレームワークであるSelenium , Appium , Winiumについて、各フレームワークの特徴をご紹介いたします。
SKYATTを検討中/導入中の方も、Selenium系フレームワークを活用して自動化検討中の方もそれぞれの特徴を参考にしていただければ幸いです。
※なお、あくまでフレームワークの特徴の紹介となります(=すべてSKYATTで出来ることとは限りません)
各フレームワークの特徴(対象・用途・強み・弱みなど)
まず、対象・用途・強みと注意点を一目で比較できる一覧です。
対象に応じて使い分けるのはもちろん、強みや弱みを理解した活用が自動化成功のカギになります。
| 項目 | Selenium | Appium | Winium |
|---|---|---|---|
| 主な対象 | WebブラウザのUI | iOS/Androidのネイティブ/ハイブリット/モバイルWeb | Windowsデスクトップ (WPF/WinFormsなど) |
| 代表的な用途 | E2E/回帰テスト、ブラウザ互換性検証 Chrome,Edge,Firefox等の互換性テストに向いている |
実機・端末差を含む回帰テスト、重要フローの自動化 | 社内業務クライアントアプリの回帰テスト |
| 強み | ブラウザ横断、Grid/クラウド充実、レポーティングやスクリーンショット連携が豊富 | iOS/Android両対応、実機特有操作(タップ/スワイプ/通知/回転) | Windows UI自動化情報を使った要素特定、Seleniumに近い書き方 |
| 注意点/弱み | ・動的に書き換わるDOMにより、タイミング依存の不安定さが出やすい ・明示的な待機と堅牢なロケータ戦略が必須 ・OSダイアログ操作は不可 |
・セットアップが重い(特にiOS) ・XPath頼みは不安定化を生む(安定した識別子の付与が重要) ・アニメーションや遷移タイミングで問題が起きやすい |
・Winium自体の保守/更新が限定的 ・最新Windows/UWPへの対応に弱い可能性あり ・アプリ側に安定した識別子の付与が重要 |
| セットアップ難易度(目安) | 低~中 | 中~高 | 低 |
| 学習コスト(目安) | 低~中 | 中 | 中 |
| 苦手領域 | OSダイアログ、レンダリング差異 | 証明書関連/プロビジョニング | 複雑なカスタムコントロール |
ロケータ(要素特定)戦略
次に、安定性を左右する要素(ロケータ)戦略の違いをまとめます。
優先的に活用したいロケータを把握し、開発と協力(要素埋め込み等)を行うことでテスト自動化の安定性を向上させることができます。
| 観点 | Selenium | Appium | Winium |
|---|---|---|---|
| 優先すべきロケータ | id , deta-test属性 , 安定したCSS | Android: resource-id / content-desc , iOS: accesibility id | AutomationId , Name , ControlType |
| 避けるべき/注意すべき活用 | 深いXPathのそのまま利用 , テキスト頼み | 深いXPathのそのまま利用 , 座標クリックの多用 | Nameのみ , 階層パス依存 |
| 要素特定の補助ツール | ブラウザDevTools | Appium Inspector | Inspect.exe |
導入失敗事例とその対策
次に、導入時に起きやすい失敗と、その対策をまとめます。
これらはSelenium系フレームワークに限らずよく起こりうる失敗例になりますので、テスト自動化を導入される際の参考になれば幸いです。
| 失敗例 | 症状 | 対策例 |
|---|---|---|
| ロケータが脆弱 | UI変更・端末差で動かずに破綻 | 安定した識別子/アクセシビリティ属性の付与を開発に依頼 |
| 待機処理の考慮不足 | 画面遷移やアニメーションによるタイミング依存のフレーク(不安定さ) | 明示的Waitや要素待ちWaitを標準化して状態確認後に操作 |
| 長すぎるテストの一本化 | 失敗時の原因特定が困難 | シナリオを短く分割、共通処理化、前提条件/復元処理も自動化 |
| ログ・スクリーンショット未収集 | 失敗時に原因が追えない | 失敗時の自動キャプチャ、ブラウザ/端末・ネットワークログ保存等 |
| ブラウザ/ドライバ/OSの不整合 | 起動不能・互換性エラー・予期せぬ崩れ | WebDriverManagerの活用やバージョン固定、更新は段階ロールアウト計画で運用 |
さいごに
テスト自動化は、製品の特性や開発サイクル、運用体制、コストと効果のバランスの上に成り立つ取り組みです。
だからこそ、本記事のように自動化ツールの強みや弱み、注意点を正しく理解し、目的に合う選択をすることが成功への近道になります。
同時に、ツール選び以上に重要なのは「設計の基本」を外さないことです。
安定したロケータの整備、環境の標準化、ログやレポートによる可視化、そして開発チームとの連携がテストの再現性と保守性を大きく左右します。
最初から大きな成果を目指すのではなく、まずは小さく始めて段階的に範囲を広げていくことをおすすめします。

