翻訳記事‎ > ‎

AndroidとiOSのサポート

2014/02/11 8:18 に Nozomi Ito が投稿   [ 2016/03/25 9:47 に更新しました ]
[翻訳] 伊藤

要約:
私たちは、SelendroidiosdriverAppiumを選択し、Selenium自体が持つAndroidDriverとiPhoneDriverはやめることにする。もしあなたがSeleniumのモバイル向けDriverを使っているのなら、3つのうちどのツールを代わりに使うか判断して欲しい。

長文版:
2007年、Steve JobsがiPhoneを発表し、珍しい存在だったモバイルにおけるWebを、メインストリームの人々が求め利用するものに変えた。現在のトレンドは、モバイルのWebの利用率が遠からずデスクトップからの利用率を上回ることを示している。それが遠回しに言っているのはつまり、モバイルのWebがあなたのサイトにおいて大きな比重を占めるようになり、それらのサイトをモバイルデバイス上でテストするのはとても賢明な考えだということだ。

Seleniumプロジェクトは、iOSとAndroid向けにWebDriverの実装を行うことで、モバイルWebの台頭に対応してきた。iPhoneDriverの最初のコード(iPad上でも動作する)は2009年の初めにプロジェクトに追加された。AndroidDriverは2010年の6月に追加され、主にGoogleのエンジニアによって開発されていた。現在でも、公式のAndroid SDKをダウンロードすると追加ダウンロードオプションの1つに「Google WebDriver」があることが分かる。

モバイルのDriverの最初の取り組みの後、おもしろいことが起こった。このDriverに対する実験的な拡張と修正が、Seleniumプロジェクトの外部で行われたのだ。最初に私が関わったのは、「nativedriver」だ。このツールは、慣れ親しんだWebDriverのAPIを使い、AndroidかiOSかによらず、奇抜なアプローチで、ユーザーがモバイル端末のネイティブUIとやり取りすることを可能にした。最初にこれを見た時、正気の沙汰じゃないと私は思ったが、nativedriverのエンジニアは、これが合理性のあるやり方であることをすぐに私に納得させた。そしてどうなったか?彼らは正しかったのだ。

残念ながら、このアイデアがうまくいくものだと証明された後、NativeDriverプロジェクトは失速してしまったが、このアイデアをモバイルテストツールをうまく動かすための部品として採用した3つのプロジェクトを誕生させることとなった。それがSelendroid、iosdriverそしてAppiumだ。これらはネイティブUIだけでなく、ハイブリッドや純粋なWebのUIのテストも可能だ。最近になり、Windows Phone 8のモバイルWebアプリケーションをテストするWindows Phone WebDriverも加わった。

3つのプロジェクトには共通点がある: それは、メインのSeleniumプロジェクトの同じモバイルのコードに比べて、はるかに活発で、はるかにうまく動作し、はるかに多くのPushがあるという点だ。事実、AndroidDriverとiPhoneDriverの両方に貢献しているSeleniumチームの何人かは、他の3プロジェクトでも活動している。ユーザーが、後でテストを書き直す心配をせずに安心して適切なフレームワークを選べるようにするために、異なるDriver間の相互運用性を維持するための作業も行われている

これはつまり、Seleniumプロジェクト自体のAndroidとiPhoneのDriverをメンテナンスし続けてもユーザーの役に立たないということだ。もっと優れた代わりがあるし、「公式」のDriverがプロジェクト内にあることは混乱を招く。さらにまずいことに、Selenium開発者がこれらのDriverを修正するスピードは遅く、関わる人々はひどく不満を抱いている。このような理由から、SeleniumプロジェクトではこれらのDriverのコードをレポジトリから削除した。そしてユーザーには、他の代わりとなるツールの評価を行うことを勧める。

もちろん、削除されたコードはレポジトリの履歴には残っているので、自分でビルドをしたいのなら、それは今でも可能だ。iPhoneDriverの最後のバージョンはef9d578、Androidのソースの最後のバージョンは00a3c7dだ。ビルドの手間を省くために、このリビジョンからビルドしたAndroidDriverをダウンロードページにアップしてある。

これらの変更は、プロジェクトとしてモバイルをサポートしないという意味ではない。これが意味するところは、私たちはモバイルのWebDriverのベストな実装をサポートし、それらはSeleniumプロジェクトの一部として書かれたコードではない、ただそれだけだ。


Comments