UI テストツール「NativeDriver」の iOS 版をリリースしました
2011年8月17日水曜日
[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 ページ(GettingStartedIOS、IOSMakeAnAppTestable)で公開しています。また、メーリングリストは Android 向けと共通で nativedriver-users と nativedriver-devs です。スマートフォンアプリケーション開発者のみなさんのフィードバックをお待ちしています。