Apple iOS application can be automated by using the following framework and it should be integrated with the XCODE to cover the user-acceptance testing based on the client’s functional specification document.
Automation can be implemented by using the .APP and .IPA file

KIF (Keep It Functional) is an iOS testing framework used for user acceptance testing and it will integrate with the iOS inbuilt XCTest testing framework. KIF support both the Objective C and Swift programming language to write test scripts. KIF is used to automate the iOS mobile application by using Objective C or Swift programming language. It will use the private API’s to interact with the mobile elements available in the mobile pp. All the user actions associated with the mobile app can be automated by using KIF including the user input such as entering text and other tap events. We cannot directly submit the KIF enables tested mobile app to apple in which KIF’s undocumented private API’s need to remove it.
- KIF used iOS accessibility framework for all its gesture based action
- It will take care the tab bar including the scroll views
- It works with continuous integration setup
- It will directly interact with the source code to trigger certain action because of test script is written in the target tests associated with the XCODE
- Supports iOS 5.1 to iOS 8
- Minimal dependencies to run KIF in which there is no agent or node server concept here to trigger the user actions using the test script
- XCODE is the IDE used by KIF and source code(xcode project file) is must to start automating iOS app
Appium is an open-source tool for automating native, mobile web, and hybrid applications on iOS platform. Appium aims to automate any mobile app from any language, with full access to back-end APIs and database from test code. Write tests with your favorite dev tools using all the above programming languages, and probably more (with the Selenium WebDriver API and language-specific client libraries).
- You shouldn’t have to recompile your app or modify it in any way in order to automate it
- A mobile automation framework shouldn’t reinvent the wheel when it comes to automation APIs
- A mobile automation framework should be open source, in spirit and practice as well as in name
While using Appium in iOS automation, most of the element interaction will be taken care by using xpath. Inspector integrated with the Appium Server tool will give the information about the elements available in the mobile app.
Calabash is a behavior driven development and it is a open test framework used to automate the iOS mobile application. It’s working mechanism is nothing but the cucumber Gherkin has been integrated with the calabash gem to execute the test scripts written as a feature file. It’s a open source framework available in GitHub with the source information. You can run the test script in the multiple number of emulators/real devices connected in the single machine. Test steps written in the simple English language has been executed to trigger certain actions in the mobile application. It’s working under the instruments concept of iOS;
- iOS app can be automated to cover the functional testing
- Continuous integration with Jenkins to cover the regression testing
- Able to cover the Black-box testing
- Source code of mobile app is must
- Test script are easy to write and maintain
- XCODE will be used to create the test target and the calabash framework will be integrated here to run the test scripts or feature file
Xcode 7 introduces UI testing as a major new feature of the existing XCTest framework. UI testing is implemented as an extension to the existing APIs and concepts in XCTest.
UI recording – Create your first UI test method by recording an interaction with your application. As you interact with your application, Xcode emits source code into your test method to find elements in the UI of your application, to access their properties, and to send them events.
Correctness and performance – XCTest now offers a rich set of features for locating elements in the UI of your app, for accessing elements’ properties, and for synthesizing events. The UI testing support in XCTest integrates with existing features for asserting conditions that must be true, and in using baselines to monitor the performance of your application over time and across different devices.
Code coverage – Visualize the completeness of your test suite by enabling code coverage for your scheme. The code coverage tab in the test report shows which files, functions and lines of code were exercised and, more importantly, which were not exercised. The source code editor can also show code coverage information inline, allowing you to see at a glance which lines—and parts of a line—the tests exercised.
Xcode Server – Xcode’s testing features are designed to integrate completely with XCode Server, where you can run tests on multiple devices, repeatedly, in a hands-off environment that allows consistency and better evaluation of both correctness and performance. New Xcode Server report formatting shows trends and regressions over repeated tests of a project throughout your development process
Frank is more or like calabash, which support BDD related acceptance testing. and and it is a open test framework used to automate the iOS mobile application. Cucumber has been integrated with the Frank and JSON commands has been sent to the server running inside the iOS application, and UISpec will be used to execute the commands. Accessibility features has been utilized by Frank to trigger the user actions associated with the mobile app. Frank embeds a HTTP server into the test version of our app which will be run when the app gets started. Via this internal HTTP server the cucumber part of frank will send commands to the app to remote control it (taps, button taps, filling texts and so on)
- iOS app can be automated to cover the functional testing
- Continuous integration with Jenkins to cover the regression testing
- Able to cover the Black-box testing Source code of mobile app must
- Test script are easy to write and maintain
