NativeDriver
Matt DeVore, Google

In Google there is no well-established native UI testing solution. There is a heavy reliance on manual testing and the automated solutions in place are not mature yet and not similar between platforms. Outside of the native world, WebDriver is used extensively to automate web application UI. NativeDriver aims to be the native version of WebDriver and to bring its simplicity to native platforms. It is an implementation of an extended WebDriver API which drives the UI of native applications. This makes the testing experience between the web and all native platforms very similar.

iOS NativeDriver has been open-sourced, and the Android version is also being used by multiple teams in Google to run automation tests. One issue encountered in the design was API mapping - how do you interpret the API of WebDriver so it makes sense on a non-web platform? Limited platform support for UI automation is also a significant challenge.

The client/server architecture of NativeDriver, which is shared between most implementations of WebDriver, has given technical benefits while enforcing the black box nature of NativeDriver.

Matt DeVore is a Software Engineer in Test at Google Japan. Since he joined Google one year ago, he has been working mainly on the NativeDriver team. NativeDriver is an automated UI testing tool for multiple platforms. He set the direction of NativeDriver and leads development on the Android version, which was released on Google Code a few months ago. Before joining Google, Matt worked in Microsoft Japan and Redmond, US for a total of 4 years. In Redmond he worked in the Visual Basic .NET compiler team developing UI and non-UI automation tests. After moving to Japan, he lead internationalization testing of the .NET Framework.