I was wondering if there any automation tools out there that can help with the process of testing an iPhone application on the device itself and not on a simulator.

Ideally, it would have to simulate button clicks, selections, and general alphanumeric input (sort of like how selenium can be used with web browsers).


14 Answers 14


Apple supplies automated testing tools as part of their free developer tools, specifically as part of Instruments.

Apple testing intruments

Two other non-answers are Selenium which can be used for testing web applications, and Sikuli which does image comparison based automation.

Sikuli will let you automate the use of the emulator itself, based just on screen image captures, but you have explicitly stated that you don't want to test on the emulator.

There is now iCuke for testing with Cucumber for iPhone apps as well. It is open source with the code on github here.

Update: There is now a Selenium driver for testing native iOS apps as well ios-driver


I can suggest you Appium is the best tool for Android & iOS mobile testing. I'm working on appium from last 6 months in my organization.

The main advantages of using Appium is:

  1. cross-platform
  2. Backend is Selenium so you will get all selenium functionality
  3. Able to test iOS and Android
  4. Continuous integration support
  5. Doesn't require access to your source code or library. You are testing which you will actually ship.
  6. supports multiple frameworks.
  7. Supports automation of hybris, native and webapps.
  8. open source (free)
  9. Can run app through appium server without manipulating the app.
  10. No source code required(unlike robotium)
  11. CI compatible with jenkins, saucelabs(so far from my experience)
  12. Able to run on selenium grid.
  13. Doesn't require an APK for use, although automating certain apps

There is also few Disadvantages of Appium:

For Android, No Support for Android API level < 17. It means you want to use Android v-4.2 or greater version.

enter image description here


All tools I know for iOS apps testing are:

  • Apple Instruments (UIAutomation)

    JavaScript-based testing solution from Apple. Includes record-and-play. Better to use with tuneup-js library.

  • Appium; ios-driver

    These two use Selenium / WebDriver API and support many languages. Appium is multi-platform, faster developed and supported, has more users. Easy to learn and start if you've used Selenium.

  • calabash; Frank

    Both are based on Ruby and have build-in BDD support (Cucumber). Calabash has many Frank concepts in a basis, however it's more modern, supports more gestures and works on Android as well. At the moment it's actively used and supported. They're powerful: if Ruby is not a problem for you, try Calabash.

  • MonkeyTalk (formerly FoneMonkey)

    Multi-platform tool (supports Android as well), includes record-and-play. Tests can be written in own language, JavaScript, Java or their combination.

  • Zucchini

    Uses simple DSL language for scenarios and CoffeeScript (JavaScript) for their implementation. I haven't used it.

  • Keep It Functional

    Objective C driven test framework. No other languages are supported. I haven't used it so can't tell more.

  • iCuke


  • Sikuli; SeeTest; EggPlant; Ranorex

    These tools include image recognition and OCR techniques. So you can use graphical locator instead of textual ones — i.e. image of the button a test should tap on. Sikuli is free, others are commercial.

I've successfully used Appium and Calabash, and I can recommend them.

  • Woah! Thats an exhaustive list. I have been using mAutomate for my iPhone Apps Automation. I get a detailed summary of testcases after every run.
    – 100rabh
    Sep 25, 2015 at 12:30

I know WebDriver (Selenium 2.0) has iPhone Driver, though I have not used it myself.



We have successfully used iCuke for creating Cucumber automated acceptance tests. Everything is documented in this blog post.


PerfectoMobile.com and DeviceAnywhere.com provide services where you can run scripts against racked devices in their data center. They both provide access to a variety of devices; you get a remote view of the screen and can script various touch and hardware events. Scripting tools provide for bitmap and OCR recognition. We have experimented with both, but it's too early to say how they'll work long term.


SeeTest from Experitest is a cross-platform tool for iPhone, Android, WindowsMobile, Symbian and Blackberry. The Object identification is based on 4 methods:

  • image recognition
  • Native ID
  • Text recognition
  • and Web DOM.

I think you can give a try to this tool.


Have you considered Telerik Test Studio for iOS?


  • Could you share some experience about it?
    – dzieciou
    Nov 5, 2012 at 19:05
  • Whilst I have not used it for testing iDevice specifically, the Test Studio for web and WPF applications which I have used is very user friendly but also offers a good degree of control should you need it, offering a powerful set of testing tools.
    – chrisc
    Nov 6, 2012 at 23:19

I have succesfull expirience using FoneMonkey. Currently looking into iOSNativeDriver. Also was using UI Automation from Apple but faced with an issue during running test from the command line, that was required for CI Server.


There are many applications for mobile testing in this world every day, so I couldn't choose correct apps tester. I searched for mobile apps testing keywords in Google, Yahoo and Bing. Many are listed on the first search results page. One I would use is http://mobileappstesting.contussupport.com, because this sites gave to remove 5 bugs free to My apps.

Different Mobile Testing Tools:

  • eggPlant
  • eclipse
  • Fone Monkey
  • Fone Monkey Android

Hopefully, these will help.

  • I believe this might be valuable answer, but it is hard to understand it now. Could you correct English a bit? Also could you explain better the benefits and experience of using those different mobile testing tools?
    – dzieciou
    Nov 2, 2012 at 21:50

There is a new Native/Hybrid iOS app testing framework called Appium on GitHub which was announced at the Mobile Testing Summit last week. Obviously, due to its young age you may not be willing to take it up.

The Appium Git page has this to say about it:

Appium is a test automation tool for use with native and hybrid iOS applications. It uses the webdriver JSON wire protocol to drive Apple's UIAutomation. Appium is based on Dan Cuellar's work on iOS Auto.

Appium uses the Bottle micro web-framework, and has the goal of working with all off the shelf Selenium client libraries.

There are two big benefits to testing with Appium:

1: Appium uses Apple's UIAutomation library under the hood to perform the automation, which means you do not have to recompile your app or modify in any way to be able to test automate it.

2: With Appium, you are able to write your test in your choice of programming language, using the Selenium WebDriver API and language-specific client libraries. If you only used UIAutomation, you would be required to write tests in JavaScript, and only run the tests through the Instruments application. With Appium, you can test your native iOS app with any language, and with your preferred dev tools.


Yesterday I was looking for a tool to test iOS app (frontend of the app), I found MonkeyTalk (you can see more here http://www.gorillalogic.com/book/about-monkeytalk-platform) and I can ensure that this is the tool that you are looking for.

I spent two hours to set it up. The tool provide to create the TC based on what you did ( tap/scroll/and so on..) with the app.


I have used Test Studio for testing iOS app and found its helpful. Following are the things I would like to mention about Test Studio:

  1. Its simple to use
  2. You test directly on the devices so you are working on real environment.
  3. Script for test is generated in front of you as per your steps so you can modify it like you can modify parameters you are passing, timeout etc.
  4. There is also 'Task' sort of verification process in which you can verify the size of text field, Font used for placeholders in text field and so on.
  5. If any crash occurred while testing then the Crash reports are sent to the email id you have provided. So no need to connect device every time and collect crash reports.
  6. You can share test cases with other devices you are using through a web portal Telerik have provided (Note: Portal is paid one )
  7. But it has some drawbacks as looping is not supported which is mentioned on their site also.

My take on iPhone testing is mAutomate. Here are some interesting features I liked:

  • Quick event record & play
  • Assertion & Regression on text elements
  • Support for Hybrid apps
  • Stress testing via random events generation
  • Visual presentation of a testcase

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.