While Joe has been working on the Android CordovaWebView for testing, I
have been looking at the testing options on iOS. Joe is using the
Selenium WebDriver for Android and there is also one for iOS. However,
this is a WEB driver so we can only drive web UI elements. That means that
if you want to test the camera, notification or other api's that invoke the
device UI you still need a live person to interact with the device UI.
This is still easier than a completely manual test, but still not
completely automatic. There is a google code branch for a nativeDriver
that is based on the Selenium WebDriver api. This would allow testing
both web and native UIs. However, it looks like the progress on this code
is only part time by the developers.
Before I start down the path of incorporating WebDriver into Cordova for
iOS I'd like to explore the options:
1. We can create fully automated tests on iOS for almost all features
including device specific ones such as taking a picture,
selecting/displaying/editing a contact via iOS UI, notifications, etc.
Obviously some things such as orientation and audio are going to require
some intervention. However, this means developing and maintaining
separate tests for iOS.
2. We can use WebDriver for iOS, Android and Blackberry. We can only
test the Web UI and more human intervention will be necessary but the tests
should be fairly consistent between the platforms. We will still need
device specific tests for some features (such as the aformentioned iOS
contact UI).
3. We can investigate contributing to the native driver implementations (
http://code.google.com/p/nativedriver/) to get more complete coverage,
although there are currently no options for platforms other than Android
and iOS.
4. We can continue to use mobile-spec and enhance the manual testing
with more tests and specific instructions. Since Joe is putting the work
into the Android Cordova View I assume we don't want that option at least
for Android.
If we go the WebDriver route what language are we going to use to drive the
tests? Java, Ruby, Python, php, perl and C# are all supported.
-becky