Take the 2-minute tour ×
Software Quality Assurance & Testing Stack Exchange is a question and answer site for software quality control experts, automation engineers, and software testers. It's 100% free, no registration required.

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 simulating button clicks, selections, and general alphanumeric input (sort of like how selenium can be used with web browsers).

share|improve this question
    
Here is a similar (but a bit older) post on Stack Overflow (stackoverflow.com/questions/402389/…) –  Rajneesh Jun 16 '11 at 16:27

12 Answers 12

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

http://code.google.com/p/selenium/wiki/IPhoneDriver

share|improve this answer

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

share|improve this answer

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

share|improve this answer

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.

share|improve this answer

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.

share|improve this answer
    
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 '12 at 21:50

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.

share|improve this answer

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.

share|improve this answer

Have you considered Telerik Test Studio for iOS?

http://www.telerik.com/automated-testing-tools/ios-testing.aspx

share|improve this answer
    
Could you share some experience about it? –  dzieciou Nov 5 '12 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 '12 at 23:19

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.

share|improve this answer

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.

share|improve this answer

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.
share|improve this answer

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

    Abandoned.

  • 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.

share|improve this answer

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

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