What Are our Options?
Before we decide how to present our product to iPhone OS users, we need to understand the
range of options we have. Depending on the implementation details of our proposed product and
its intended audience, some types of software may be better suited to our needs than others.
This section divides software for iPhone OS–based devices into three broad categories, primarily
based on implementation method. Roughly speaking, we can create:
■ An iPhone application, which is an application you develop using the iPhone SDK to run
natively on iPhone OS–based devices.
■ Web-only content, including web applications, which are websites that behave like built-in
■ A hybrid application, which is an iPhone application that provides access to web content
primarily through a web-content viewing area, but includes some iPhone OS user interface
App testing on a real device Vs a simulator
There appears to be a few iPhone App simulators out there on the net claiming to offer solutions
for beta testing an iPhone App. Well, although technically(and I use this term loosely) correct, the
so called 'simulators' are nothing more than web browser screens made to be the same size an
iPhone screen. This really cannot offer a real beta test of an application, can they? So what are
the differences between testing on a simulator and a real device?
The CPU type
The screen (a real iphone has a touch-screen of course)
Installing the App
Network connectivity related issues
Remember, customers that buy the App from the App store won't be running it on a simulator!
1. Ensure the App will be tested on real devices (not simulators).
2. Check a range of devices is available, e.g. iPhone 3, iPhone 4, iPad and iPod Touch.
3. Make sure the testing will be carried out using the latest firmware available for that device.
4. Always ask an iPhone App Tester about Usability testing too.
5. Always ask for a test report.
High Level test scenarios for Iphone application
Handset application functionality : perform real iPhone based testing of the application, with
various scenarios. Test team will test the application based on defined specifications
Device Certification : certify applications on actual device. Test team should test the performance
of the application, resource usage, behavior and interactions
Performance and Scalability: Backend applications will need to manage the traffic of multiple
mobile devices at the same time. This test will identify all the load issues and will help make system
Usability & Compatibility : verify the effectiveness of Usability of application onto various devices
including interoperability with other applications running on the device. Certify the Application on
Various mobile devices for the correct behavior and interactions
UI Response Application : verify the response of each function and measure the performance of
Settings response : verify all settings available for the application and test the functionality of
Crash Points: identify all crash points, and will work with development team to resolve them
Low Connectivity: test the behavior of iPhone App in Low connectivity mode and verify proper
Response Memory Handling: measure the memory usage of the application and identify all
Sleep Mode : test the application response in the sleep mode
Accelerometer: test to ensure that iPhone application properly responds to rotations
Battery Usage : measure the battery usage and will provide feedback on increasing battery life
Retrials in Case of network disconnect : test application behavior in case of network disconnect
Build Acceptance Testing -The first test iPhone App Testers team performs after every code drop.
Verifying that the application build is stable to be tested.
High priority defect fixes – iPhone App Testers will verify after build acceptance suite execution is
General test case execution shall be priority based, where high priority test cases are executed
first, followed by medium and low priority test cases.
Regression Testing – iPhone App Testers will perform verification of application functionality to
verify that new code did not break the existing functions and the system is not adversely affected by
any code or configuration changes.
Ad-Hoc – iPhone App Testers will conduct Testing where random actions are executed in an
attempt to break the system. Such executions include (but are not limited to) inputting invalid
values, malicious input, and unnatural navigation.
iPhone Compatibility Testing- iPhone App Testers will test in the following OS/ Device
2.0 2.2 2.2.1 3.X
iPod Touch 1st gen X X
iPod Touch 2nd gen X
Edge X X
3G X X
• iPhone App Testers team will manually test functionality based on the requirements in the test
• iPhone App Testers team will analyze and record all test results
• iPhone App Testers will use it’s own lab to conduct compatibility test
• Defects found by iPhone App Testers during testing will be logged into the Bug Tracking
• All fixed defects will be verified by iPhone App Testers
FoneMonkey: Iphone application functional test automation tool
FoneMonkey is a functional testing tool for the iPhone providing for the interactive creation,
editing and playback of automation scripts that exercise an application’s user interface. Using
FoneMonkey, you can create suites of tests that automate performing user operation
sequences and verifying results. FoneMonkey is designed to support developer as well as QA
testing, and FoneMonkey tests can be easily incorporated into continuous integration
Features of FoneMonkeyTM
Free and open source automation tool for iphone mobile application.
This is World’s first iPhone functional testing tool
Ability to record, edit, and playback user interface tests and fully automate iPhone app
Designed to be used as a standalone, interactive recording and playback tool
Using FoneMonkey, you can create suites of tests that automate performing user operation
sequences and verifying results
It is designed to support developer as well as QA testing, and FoneMonkey tests can be
easily incorporated into continuous integration environments
It is designed to provide developers with a tool to decrease development time through
reduced regression risk and address management’s concerns about unforeseen costs
resulting from inefficient, manual testing.
Automated Software Testing for the User Interface
eggPlant is a low-overhead, non-invasive black-box test and process automation tool. Since it
does not reside on the system-under-test and is technology agnostic, it can test in many
situations that other tools cannot. By using image capture and advanced search techniques,
most ui changes are not a problem.
UIAutomation Instrument :http://developer.apple.com/technologies/iphone/whats-
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 : http://code.google.com/p/uispec/
Google Toolbox for Mac : http://code.google.com/p/google-toolbox-for-mac/
Cucumber for iphone :http://www.slideshare.net/undees/iphone-meets-cucumber