[Google 東京オフィスで開発している UI テストツール Native Driver に iOS 版が加わりました。ソフトウェアエンジニアの海津 智宏からのアップデートをお読みください。-山崎]

6 月に Android 版が公開された UI テストツール「NativeDriver」に、新しく iOS 版が追加されました。iOS NativeDriver は、Android 版と同様 Google Code サイト(http://nativedriver.googlecode.com/)からダウンロードできます。

NativeDriver の大きな目標のひとつが「マルチプラットフォーム」です。今回 iOS 版がリリースされたことで、Android 向けアプリケーションと iPhone 向けアプリケーションとを同じ API でテストできるようになりました。さらに、NativeDriver は WebDriver API を利用しているため、ウェブアプリケーションも同じ API でテストできます。このことは、1 つのアプリケーションをウェブ用、Android 用、iPhone 用とさまざまなプラットフォームで展開する場合に効果を発揮します。

以下のコードは iOS NativeDriver のテストケースの例です。このテストを実行するとボタンのタップやキー入力がエミュレートされます。このテストケースは Android NativeDriver や WebDriver のテストケースとほぼ同じ形となっています。



IosNativeDriver driver = new IosNativeDriver();


// 入力言語を選択

driver.findElement(By.text("English")).click();

driver.findElement(By.text("Detect language")).click();


// 出力言語を選択

driver.findElement(By.text("French")).click();

driver.findElement(By.text("English")).click();


// 入力ボックスをタップし、入力画面を開く

driver.findElement(By.className("UITextView")).click();


// キー入力

WebElement textView =

driver.findElement(By.className("UITextView"));

textView.clear();

textView.sendKeys("こんにちは");

textView.submit();




[iPhone 向けアプリケーション(Google 翻訳)のテストの様子。
なお、CCマークを押すと、字幕が表示されます。]

また、iOS NativeDriver では WebView のサポートが追加されており、WebView 内部の DOM ツリーを NativeDriver を通してテストできます。この機能は Android 版では未対応ですが、iPhone 向けアプリケーション内での WebView の利用頻度が高いため、iOS 版で先行して実装されました。WebView 内の要素を操作する場合もネイティブ要素と同様に findElement で要素を検索し、click や sendKeys でタップ、キー入力を行います。

iOS NativeDriver のチュートリアルは Google Code サイト内の Wiki ページ(GettingStartedIOSIOSMakeAnAppTestable)で公開しています。また、メーリングリストは Android 向けと共通で nativedriver-usersnativedriver-devs です。スマートフォンアプリケーション開発者のみなさんのフィードバックをお待ちしています。