Android:
The most well known one. It’s the Selenium‘s counterpart for Android. The ORBIT tool in my paper was built on this tool.
a testing DSL for Google Android, you can specify various kinds of UI attribute’s assertion or event assertion.
a unit test framework that de-fangs the Android SDK jar so you can test-drive the development of your Android app.
one of the established Java mocking frameworks now supports Android. See the post here.
Automating the test execution across multiple devices as well as aggregation of the results
A declarative, fluent API for verifying the state of Android objects..
The CTS is a set of unit tests designed to be integrated into the daily workflow (such as via a continuous build system) of the engineers building a device. Its intent is to reveal incompatibilities early on, and ensure that the software remains compatible throughout the development process. It’s provided by Google.
Calabash-Android lets you run Cucumber features on your Android device or emulator.
A introducing blog: http://blog.lesspainful.com/2012/03/07/Calabash-Android/
Tool for testing Android lifecycle events.
A related blog: http://bricolsoftconsulting.com/2011/12/23/how-to-test-onsaveinstancestate-and-onrestoreinstancestate-on-a-real-device/
A related question: http://stackoverflow.com/questions/4816749/android-activity-lifecycle-testing
A random testing tool. It’s still a research tool so it might not be easy to use. The good thing of such tool is that it can generate system event.
Testing the Android application with less restart. Using a learning-based algorithm.
IPhone:
Frank allows you to write structured text test/acceptance tests/requirements (using cucumber) and have them execute against your iOS application.
Source: https://github.com/moredip/Frank
UISpec is a Behavior Driven Development framework for the iPhone that provides a full automated testing solution that drives the actual iPhone UI. It is modeled after the very popular RSpec for Ruby.
OS Independent:
Nativedriver(Across platform)
an implementation of the WebDriver API which drives of the UI of a native application rather than a web application.
A thread discussing difference of nativedriver and robotium: https://groups.google.com/forum/#!msg/nativedriver-users/Zccvm54FfaU/NrVY-PUduEEJ
A blog comparing the two: http://kongqingyun123.blog.163.com/blog/static/637728352011614111010446/
Rellated:
Cucumber
Cucumber lets software development teams describe how software should behave in plain text.
http://cukes.info/
https://github.com/cucumber/cucumber
JBehave
http://jbehave.org/
AndroidWebDriver4Python(汪啸实现)https://github.com/truebit/AndroidWebDriver4Python
bitbar的产品:http://bitbar.com/products(Based on Robotium)
MonkeyRunner还是很有前景的,Google自己弄的。现在最新的dev版本已经有支持UI的id操作的EasyMonkey了。可以git clone git://http://android.kernel.org/platform/sdk.git看看
Reference:
1. Best practices for unit testing Android apps-StackOverflow
2. Android 手机自动化测试工具有哪几种 – 知乎
3. http://corner.squareup.com/2013/04/the-resurrection-of-testing-for-android.html