Automation Testing

Top 9 iOS Mobile Testing Tools: Expert Guide for 2024

By Test Guild
  • Share:
Join the Guild for FREE

In today's fast-paced mobile development environment, ensuring the quality and performance of your iOS apps is more critical than ever. With the increasing complexity of iOS applications, selecting the right mobile testing tools can significantly impact your development cycle. This comprehensive guide explores the top 9 iOS automation tools you need to know for 2024, providing practical insights from industry experts to help you make an informed decision.

Over the years, I've spoken with over 500 testing experts on my automation testing podcast, and many mobile testing tools have been mentioned to help with mobile development.

But how do you choose the right mobile test automation from work that is right for you?

Choosing the right mobile testing tool can be a complex task. In this post, I aim to simplify this process by breaking down the key factors you need to consider, providing you with practical insights to help you make an informed decision for your mobile testing needs.

In this post, I've assembled some of the more popular free, open-source, and paid frameworks for iOS app testing based on the tools I most often mention on my podcast.

So you are getting advice from real experts (with attributions) who deal with iOS mobile testing every day.

Let's go! (FYI, this list is NOT a ranking)

Read on to discover the following:

The 7 automated testing tools for iOS
How to use each iOS Automation tool
Which iOS automation testing tool should you use

1. BrowserStack App Automate

First one up that many testers have mentioend to me have helped them with mobile testing is BrowserStack App Automate.

Regardless of which iOS frameworks you choose, teams can count on BrowserStack App Automate to automate their mobile app testing. Flawlessly test apps by using different languages like Java, Python, Ruby, PHP, NodeJS, and C# and frameworks like Appium, Espresso, XCUI Test, Flutter, Detox, etc

The app upload feature allows teams to avoid uploading the same build twice, making the process more efficient.  Experience media injection and authentication through OTP, Apple Pay, and more with access to device sensors, settings, and apps.

Debugging with video recordings, logs, test reporting features, and app profiling metrics such as FPS, ANR rate, app page loading times, device resource usage, network I/O, and more make this an industry-leading choice among developers.

BrowserStack App Automate Pros

  • BrowserStack App Automate is a versatile tool that supports many iOS testing scenarios. With its extensive device coverage and real-time debugging capabilities,
  • BrowserStack makes testing your iOS apps across different environments easy.

BrowserStack App Automate Use Case

A company developing a banking app wants to ensure compatibility across a wide range of iOS devices. They use BrowserStack App Automate to test their app on various iPhone and iPad models, covering different screen sizes and iOS versions.

BrowserStack App Automate Example

The QA team writes automated tests using Java and the Appium framework. They upload their app to BrowserStack and run the tests on iOS devices. The team can view video recordings, logs, and performance metrics to identify and resolve any issues.

Syntax Example

@Test
public void testTestGuildWebpage() throws MalformedURLException {
    DesiredCapabilities caps = new DesiredCapabilities();
    caps.setCapability("browserName", "Safari");
    caps.setCapability("device", "iPhone 12 Pro");
    caps.setCapability("os_version", "14");
    caps.setCapability("realMobile", "true");
    caps.setCapability("browserstack.local", "false");

    WebDriver driver = new RemoteWebDriver(new URL("https://<username>:<access-key>@hub-cloud.browserstack.com/wd/hub"), caps);
    driver.get("https://testguild.com");
    Assert.assertEquals("Test Guild", driver.getTitle());
    driver.quit();
}

Transform Your Testing in 5 Minutes a Day

2. Appium

Probably the most popular all around go to open source tool for mobile testing (not just iOS) is Appium.

Why?

Appium is a free, open-source, cross-platform mobile UI automation framework. It allows you to write UI tests for Android and iOS apps and other OSs. It also lets you write it using the Selenium JSON writer you know and love from web automation.

Appium is becoming an industry standard for mobile testing, much as Selenium WebDriver became the industry standard for browser-based automation a few years ago. Check out my Appium Tutorial for Beginners for more info on Appium.

 

Expert View

Shannon Lee thinks that when choosing a mobile automation testing framework, Appium stands out for its ability to write a single script that runs on both Android and iOS platforms, helping to combat device fragmentation. However, Appium's cross-platform capabilities come with the drawbacks of slower execution speed and potential flakiness due to reliance on brittle XPaths for element locators.

Jonathan Lipps is one of the main contributors to the Appium project. It has been given high marks for being a popular open-source mobile automation framework that offers numerous advantages for testing teams seeking a stable, cross-platform solution. By providing a consistent WebDriver interface that abstracts underlying changes in vendor-provided tools, Appium allows test code to remain more maintainable over time. Its support for multiple programming languages and ability to leverage existing Selenium knowledge makes it accessible to QA teams. Moreover, Appium's cross-platform capabilities are invaluable for organizations developing iOS, Android, and desktop apps, enabling code reuse and architectural consistency. While Appium may be slower in some cases compared to using native frameworks directly, most performance issues can be resolved by optimizing how Appium is utilized.

Appium Pros

  • Cross-platform: One significant advantage (according to Jonathan Lipps) is its ability to support cross-platform testing, which means you can write your tests once and run them on both iOS and Android platforms, saving time and reducing effort in maintaining separate codebases for each platform
  • Stability and Continuity: Another key benefit is its stability and continuity. Appium has proven to be a robust solution that adapts well to changes in underlying mobile platform technologies. For instance, when Apple shifted from UI Automation to XCUI Test, Appium users experienced minimal disruption because the Appium API, based on the WebDriver protocol, remained stable
  • Flexibility:Appium's flexibility in language support is a major plus. It allows you to write your test scripts in a variety of programming languages, making it a versatile choice for teams that might already have expertise in a specific language due to previous projects or preferences

Appium Cons

  • Speed: One notable concern is its performance speed, according to my interview with Jaswanth Manigundan. Appium can be slower than native frameworks because it acts as a layer on top of them, which can introduce delays.
  • Setting Up: Additionally, Appium can be complex, especially for those new to mobile testing. This complexity can lead to longer setup times and a steeper learning curve, potentially making it difficult for teams to adapt or troubleshoot quickly.
  • Dependency: Another point to consider is the dependency on the native frameworks it automates. When updates occur in these native platforms, it can affect Appium's functionality, requiring updates to maintain compatibility.

Appium Use Case

A startup is building a cross-platform mobile app and wants to minimize the effort required for maintaining separate test codebases. They choose Appium for its ability to write tests once and run them on both iOS and Android.

Appium Example

The developers write test scripts in Python using the Appium library. They create a single test suite that covers core app functionality and runs it on both iOS and Android devices, saving time and ensuring consistency.

 

Syntax Example

from appium import webdriver

desired_caps = {
    "platformName": "iOS",
    "platformVersion": "14.0",
    "deviceName": "iPhone 12 Pro",
    "browserName": "Safari",
    "automationName": "XCUITest"
}

driver = webdriver.Remote("http://localhost:4723/wd/hub", desired_caps)
driver.get("https://testguild.com")
assert "Test Guild" in driver.title
driver.quit()

 3. XCUITest

XCUITest is Apple's native UI testing framework that integrates seamlessly with Xcode, enabling developers to write automated UI tests in Swift or Objective-C.

This framework is part of the XCTest library and is designed to interact with your app's interface to validate its behavior during tests. It's especially powerful for conducting tests that mimic fundamental user interactions, as it can simulate taps, swipes, and other gestures.

By leveraging XCUITest, teams can ensure their app  functions correctly under various conditions and meets the high standards of user experience that Apple users expect.

Many experts told me that XCUI Test's tight integration with Xcode and use of familiar languages like Swift and Objective-C make it an attractive option for developers. The framework's ability to automate user interactions and test the UI as a black box, combined with growing community support and improving documentation from Apple, have contributed to its increasing adoption. While XCUI Test may have some limitations, such as challenges with mocking network requests, its ease of use and native integration make it a strong contender for iOS developers seeking to streamline their testing processes and deliver high-quality applications.

Igor Dorovskikh says that For companies looking to optimize their iOS app testing efforts, XCUITest emerges as a powerful native solution. Shipping directly with Xcode, XCUITest offers a seamless setup process and unparalleled speed compared to cross-platform alternatives like Appium. By leveraging XCUITest, QA teams gain complete control over the application under test, enabling advanced techniques such as white-box testing and mocking. With proper architecture and best practices, XCUITest can achieve 98% stability in test automation. Moreover, XCUITest fosters collaboration between QA and iOS development teams, as tests are written in the same language and reside within the same codebase, streamlining the development process and ensuring high-quality iOS apps.

Expert View

 

https://vimeo.com/954982391/6383e4aa82?share=copy

XCUITest Pros

  • Xcode: the main benefit of XCUITest is it's seamless integration with Xcode. This integration allows developers to write tests in Swift or Objective-C, languages they are already familiar with, which can streamline the testing process significantly.
  • Efficient: XCUITest is highly efficient for testing iOS apps because it runs directly within the iOS environment, leading to faster execution times and more reliable test result.

XCUITest Cons

  • Just for iOS: One significant limitation is its exclusive compatibility with iOS. This means if you're working on applications that need to run on multiple platforms, XCUITest won't be sufficient on its own.
  • Less Flexible: XCUITest is powerful, it can be less flexible than other frameworks that support more languages or broader testing scenarios outside of the iOS ecosystem.

XCUITest Use Case

An iOS development team wants to integrate UI testing seamlessly into their existing workflow. They decide to use XCUITest, as it allows them to write tests in Swift and integrates directly with Xcode.

XCUITest Example

The developers create a new XCUITest target in their Xcode project. They write UI tests in Swift that simulate user interactions, such as tapping buttons and filling out forms. The tests are run as part of the continuous integration pipeline, ensuring that any UI regressions are caught early.

Syntax Example

func testTestGuildWebpage() {
    let app = XCUIApplication()
    app.launch()
    
    let safari = app.buttons["Safari"]
    safari.tap()
    
    let urlField = app.textFields["URL"]
    urlField.tap()
    urlField.typeText("https://testguild.com\n")
    
    let webView = app.webViews.element
    XCTAssertTrue(webView.waitForExistence(timeout: 5))
    
    let titleLabel = webView.staticTexts["Test Guild"]
    XCTAssertTrue(titleLabel.exists)
}

4. OCmock

OCmock is a popular framework used in iOS development to create mock objects in unit tests. It's beneficial for simulating the behavior of objects your code interacts with, allowing you to test in isolation without relying on external dependencies. This makes it an excellent choice for testing code that interacts with web services or relies on complex UI elements that are difficult to instantiate in a test environment.

By using OCmock; developers can focus on testing the functionality of their code, ensuring that each component behaves as expected under controlled conditions.

I'm aware that many teams love and heavily use OCmock. It's like your typical mock object framework, and it's really good for stubbing out and making mock objects of stuff, like code that leverages in a remote API, like a web service.

You can also use it for code that relies on an available UI, like UI objects that you can't easily instantiate yourself through unit tests.

OCmock Pros

  • A major pro is its ability to create detailed mock objects, which are crucial for testing components in isolation, especially when dealing with external dependencies like web services. This capability allows developers to simulate and test interactions without needing actual network calls, enhancing test speed and reliability.
  • Another advantage is its integration with Objective-C, which provides a seamless experience for iOS developers accustomed to this environment.

OCmock Cons

  • OCMock is its specificity to Objective-C if your project involves other programming languages or needs to support multiple platforms beyond iOS, more than OCMock might be required.
  • Additionally, while OCMock is powerful for unit testing, it might only cover some scenarios, especially for UI or integration testing, where different tools might be more effective.

OCMock Use Case

A development team is working on an app heavily relying on web services. They use OCmock to create mock objects for these services, allowing them to test the app's behavior without relying on actual network calls.

OCMock Example

The developers understand the importance of using mock objects for testing. They create a mock object for a web service that retrieves user data, defining the expected behavior. This crucial step in their unit tests allows them to verify that their app correctly handles different scenarios, such as successful responses and error conditions, ensuring the app's functionality.

Syntax Example

- (void)testTestGuildWebpage {
    [tester tapViewWithAccessibilityLabel:@"Safari"];
    [tester waitForTimeInterval:1];
    [tester tapViewWithAccessibilityLabel:@"URL"];
    [tester enterTextIntoCurrentFirstResponder:@"https://testguild.com\n"];
    [tester waitForViewWithAccessibilityLabel:@"Test Guild"];
}

Free TestGuild Courses

5. KIF (Keep It Functional)

KIF, which stands for Keep It Functional, is a robust iOS integration testing framework designed for automated UI testing.

It's a third party solution, and it's open source.

It leverages the accessibility features of iOS to interact with and test app interfaces, simulating user input to ensure functionality. Written in Objective-C, KIF integrates seamlessly with Xcode, enabling tests to run directly within the development environment. It supports synchronous testing on the main thread, ensuring accurate simulation of user actions. KIF is suitable for apps targeting iOS 8 and newer, and Xcode 7 and beyond, offering a straightforward setup through CocoaPods or direct GitHub integration.

You write tests much like UI Automation, where you're simulating a user, tapping through the app.

Like UI Automation, it relies on accessibility labels; you define your application, which has the benefit of making your app accessible to people who may be visually impaired who are being prompted through audio queues and how to use your app.

Basically, UI Automation and KIF both rely on you defining accessibility labels on your UI elements in terms of how they navigate the app.

 

Expert View

Eugene Berezin, an iOS developer at Nordstrom told me that KIF sets itself apart from other testing frameworks like XCUI Test by providing direct access to the application's codebase. This enables developers to perform more granular testing and mocking of application behavior, such as faking network responses, which can be challenging with black box testing approaches. While not as widely used as XCUI Test, Kif remains a valuable tool in the iOS developer's testing arsenal, particularly for those seeking to ensure the functionality and reliability of individual UI components.

 

https://vimeo.com/954831499/62d7ac2ed7?share=copy

KIF Pros

  • A couple of specific benefits KIF has over UI Automation is that you actually are writing the test in Objective-C, which is now supporting Swift. There's no learning curve of swapping languages between Objective-C and JavaScript like you had to do with UI Automation.
  • Additionally, the way KIF tests are executed in the same type of target that your unit tests are executed in, which is not the case for UI Automation.
  • In order to execute UI Automation tests, you have to use the other tool by Apple called Instruments (it's also their profiler tool). It's actually a great tool, but kind of like UI Automation that is tacked onto it.

KIF Cons

  • Requires tests to be written in Objective-C, which might be a barrier for teams using Swift exclusively or preferring Swift for new projects.
    Manual Configuration:
  • Initial setup and configuration, especially for linking with the project and adding necessary frameworks, can be tedious and error-prone.

As always, your goal should always be to make your tests repeatable and quickly executable. By integrating with the same way that XCTest runs unit tests, KIF makes those kinds of GUI- based tests much faster to execute.

KIF Use Case

An accessibility-focused development team wants to ensure that their app is usable by people with visual impairments. They use KIF to write tests that interact with the app using accessibility labels.

KIF Example

The team defines accessibility labels for all critical UI elements in their app. They then write KIF tests in Objective-C that navigate the app using these labels, simulating a user's experience relying on audio cues. This helps them identify and fix any accessibility issues.

Syntax Example

- (void)testTestGuildWebpage {
    [tester tapViewWithAccessibilityLabel:@"Safari"];
    [tester waitForTimeInterval:1];
    [tester tapViewWithAccessibilityLabel:@"URL"];
    [tester enterTextIntoCurrentFirstResponder:@"https://testguild.com\n"];
    [tester waitForViewWithAccessibilityLabel:@"Test Guild"];
}

6. Detox

Detox is a testing framework Eran Kinsbruner told me about that is designed specifically for React Native apps. It provides end-to-end testing capabilities, enabling you to simulate user interactions and test the stability of your application as a whole.

Detox runs tests in a controlled environment, mimicking real user behavior on iOS and Android devices. This makes it an ideal choice for developers and testers looking to ensure their React Native applications perform well under various conditions. It integrates seamlessly within your React Native projects.

 

Expert View

Eran explained Detox to me like this:

Detox is a powerful automation framework explicitly designed for React Native applications, gaining traction in the open-source community. Unlike traditional tools like Appium, Detox significantly enhances testing efficiency by eliminating the delays associated with pulling object trees and executing commands. Initially, tests that took up to 40 minutes with Appium are now reduced to about a minute and a half with Detox. This speed improvement is crucial for developers and testers who need quick feedback and reliable test results. Although relatively new, Detox benefits from active community support, making it a robust choice for those seeking to streamline their React Native testing process. By leveraging Detox, developers can ensure faster, more reliable testing, improving app performance and user experience.e

Detox Pros

  • Ones significant advantage is its ability to simulate user interactions in a controlled environment, which is crucial for testing the stability and performance of applications across both iOS and Android platforms . This dual-platform capability ensures that you can maintain consistency in testing despite different operating systems.

Detox Cons

  • One of the limitations of Detox is its maturity compared to other established testing frameworks. It's relatively newer and might not have as extensive a community or as many resources for troubleshooting and advanced usage scenarios. This can be a challenge when you're looking to implement complex tests or integrate with other  tools.

Detox Use Case

A React Native development team wants to perform end-to-end testing on their app. They chose Detox because it can simulate user interactions and test the app's stability on iOS and Android.

Detox Example

The developers write test scenarios in JavaScript using the Detox API. They simulate user actions, such as navigating between screens, filling out forms, and interacting with UI elements. The tests run on iOS and Android devices, ensuring that the app performs consistently across platforms.

Syntax Example

describe('TestGuild Webpage', () => {
  beforeEach(async () => {
    await device.reloadReactNative();
  });

  it('should load TestGuild webpage', async () => {
    await element(by.id('url_input')).typeText('https://testguild.com\n');
    await expect(element(by.text('Test Guild'))).toBeVisible();
  });
});

7. iOSSnapshotTestCase (previously FBSnapshotTestCase)

iOSS SnapshotTestCase was originally created and is maintained by Facebook. Its basic function allows you to verify your UI code via visual diffs between saved screenshots.

You can do it at a more granular level than the full screenshot of the device. You can pick a little UI view in what you subclass when you see a little widget on the screen; anything from a piece of text to something more complicated. You can also isolate that snapshot test case to that UI view subclass.

iOSSnapshotTestCase Pros

  • Visual Regression Testing: Detects unintended visual changes in the UI, ensuring the app's appearance remains consistent across different versions.
  • Easy Setup and Integration: Supports multiple installation methods, including CocoaPods, Carthage, and Swift Package Manager, making it easy to integrate into existing projects.

iOSSnapshotTestCase Cons

  • Snapshot Management: Managing and updating reference images can become cumbersome, especially for large projects with many UI components.
  • Initial Setup Complexity: Setting up the initial snapshot tests and configuring reference image directories can be complex and time-consuming.
  • Handling Minor Visual Changes: Minor changes in UI elements (e.g., slight color adjustments and font rendering differences) can cause tests to fail, leading to potential false positives that need manual review.

iOSSnapshotTestCase Use Case

A design-focused team wants to ensure that their app's UI remains consistent across different versions and devices. They use iOSSnapshotTestCase to perform visual regression testing.

iOSSnapshotTestCase Example

The team writes snapshot tests for each UI component in their app. They run these tests whenever changes are made to the UI, comparing the new screenshots with the reference images. If any visual differences are detected, the tests fail, prompting the team to review and address the changes.

Syntax Example

import XCTest
import iOSSnapshotTestCase

class TestGuildSnapshotTests: FBSnapshotTestCase {
    
    override func setUp() {
        super.setUp()
        recordMode = false
    }
    
    func testTestGuildButton() {
        let button = UIButton(type: .system)
        button.setTitle("TestGuild", for: .normal)
        button.titleLabel?.font = UIFont.systemFont(ofSize: 20)
        button.frame = CGRect(x: 0, y: 0, width: 200, height: 50)
        
        FBSnapshotVerifyView(button, identifier: "TestGuildButton")
    }
    
    func testTestGuildLabel() {
        let label = UILabel(frame: CGRect(x: 0, y: 0, width: 200, height: 50))
        label.text = "Welcome to TestGuild!"
        label.textAlignment = .center
        label.font = UIFont.systemFont(ofSize: 18)
        
        FBSnapshotVerifyView(label, identifier: "TestGuildLabel")
    }
}

Check Out TestGuild Webinars!

8. EarlGray

EarlGrey is a native iOS UI automation test framework that Google developed. It integrates seamlessly with XCTest and is used for functional UI testing of iOS apps. EarlGrey works by mimicking user interactions and then checking the app's response.

Expert View

 

I was hosting an event when Moataz Nabil mentioned that his team used EarlGray. Moataz shared that his team at Delivery Hero migrated from Appium to EarlGrey for iOS UI testing, to take advantage of EarlGrey's better performance and native capabilities compared to XCUITest. This allowed them to have a more robust and faster testing framework for their iOS app.

 

https://vimeo.com/954826927/2cbbf6addf?share=copy

EarlGray Pros

  • A major pro of EarlGrey is its synchronization features, which ensure that the UI is in a stable state before actions are performed. This reduces flakiness in tests, making them more reliable.

EarlGray Cons

  • One con might be its learning curve, especially if you're not familiar with its setup and API.

EarlGray Use Case

A team wants to improve the reliability and performance of their UI tests. They migrate from Appium to EarlGrey to exploit its synchronization features and native capabilities.

EarlGray Example

The team rewrites their existing Appium tests using the EarlGrey framework. They utilize EarlGrey's synchronization APIs to ensure the UI is stable before performing actions, reducing test flakiness. The team also leverages EarlGrey's native integration to access app-specific functionality, improving test coverage.

Syntax Example

func testTestGuildWebpage() {
    let safari = EarlGrey.selectElement(elementWithAccessibilityID: "Safari")
    safari.perform(grey_tap())
    
    let urlField = EarlGrey.selectElement(elementWithAccessibilityID: "URL")
    urlField.perform(grey_tap())
    urlField.perform(grey_typeText("https://testguild.com\n"))
    
    let titleLabel = EarlGrey.selectElement(elementWithAccessibilityLabel: "Test Guild")
    GREYAssertTrue(titleLabel.exists, reason: "TestGuild title not found")
}

9. FRANK – BDD for iOS

If you want to do end-to-end testing in iOS and wish you could use behavior-driven development (BDD) and Cucumber, no worries –there's a tool called Frank that will allow you to create acceptance tests and requirements using Cucumber.

They describe themselves as “Selenium for native iOS apps”.

Frank allows you to run your BDD tests against your iOS application since it acts like an adaptor that connects your app to Cucumber.

The Cucumber recipes book has a nice step-by-step recipe(28) called Test iOS Using Frank that is helpful.

Frank Pros

  • Cucumber Integration: Frank uses Cucumber to write test scenarios in plain English, making it easy to write and understand test cases even for non-technical stakeholders.
  • Ease of Setup: Setting up Frank with an iOS app is straightforward and typically takes less than 10 minutes, reducing the initial barrier to entry.

Frank Cons

  • Dependency on Ruby and Cucumber: Requires knowledge of Ruby and Cucumber, which may require additional learning for teams unfamiliar with these tools.
  • Limited to UI Testing: Primarily focused on UI and acceptance testing, additional tools may be needed for comprehensive testing, including unit and integration tests.

FRANK Use Case

A team wants to involve non-technical stakeholders in the testing process and ensure that tests are written in a readable, business-focused language. They use Frank to write BDD-style tests using Cucumber.

FRANK Example

The team creates a set of Cucumber feature files that describe the desired behavior of their app in plain English. They then implement the corresponding step definitions using Frank's Ruby-based API. This allows product owners and other stakeholders to contribute to the testing process and understand the test coverage.

Syntax Example

Feature: TestGuild Webpage

  Scenario: Visit TestGuild webpage
    Given I launch Safari
    When I enter "https://testguild.com" in the URL field
    Then I should see "Test Guild" on the page

Given(/^I launch Safari$/) do
  wait_for_frank_to_come_up
  touch("Safari")
end

When(/^I enter "([^"]*)" in the URL field$/) do |url|
  wait_for_element_to_exist("URL")
  touch("URL")
  wait_for_keyboard
  keyboard_enter_text(url)
end

Then(/^I should see "([^"]*)" on the page$/) do |text|
  wait_for_element_to_exist(text)
end

What iOS Mobile Testing Framework Should You Use?

In summary, for iOS testing, the main recommendation is to use the XCUI Test, especially for developers, as it is well integrated into Xcode. EarlGrey is another strong iOS-specific option. Appium remains popular for cross-platform testing.

Choosing the right iOS mobile testing tool ensures the quality and performance of your app. Whether you need cross-platform support, native integration, or advanced debugging features, a tool on this list meets your needs.

Recommendation:

  • For cross-platform testing: Appium
  • For native iOS integration: XCUITest
  • For visual regression testing: iOSSnapshotTestCase

But keep in mind that best framework depends on your specific needs and existing tooling. Building in testability through accessibility identifiers, working closely with developers, and using device cloud services for broad coverage were other essential tips all mobile testing experts shared.

Your experiences with these tools are invaluable. We highly encourage you to share your feedback in the comments below. Your insights and suggestions play a crucial role in the growth and improvement of our community.

Partner with the Guild

  1. I heared that UI Automation will be deprecated in favor to XCTest.
    Interesting – they mean? Does it mean that UI Automation will be useless at all or what?.. If yes – then Appium could lose the ability of UI automation for iOS.
    What do You think about it?

  2. Good list. I’ve recently used Testmunk to test an app, and I was surprised by how good they were, since you never see stuff about them. They’re worth checking out.

  3. Spoke with the creator of Appium Dan Cuellar on my TestTalks Podcast and he mentioned that Appium 1.5 includes an iOS implementation which does not use UI automation Javascript but rather uses the new Swift XC UI tests library. So we are future proof going forward, so we will continue to work with versions of Xcode that do continue to support UI automation Javascript.

  4. Joe,

    What will be the best open source image based automation tool for iPad applications, application is hybrid . We have to automate a lot of scenarios in very less time, if you can suggest a good framework too that will be awesome. Currently we are using HP insight for same.

  5. Hey, eggPlant is pretty neat. I use the same test scripts across devices and browsers! I can reuse test scripts for iOS and Android, and then work against a network and load capability that is pretty robust. Check it out if you have not heard of it!

  6. Out of 7 tools which one would you suggest interms of portability, fast, maintenance, compatibility, community support. In order of most preferred on top and so on …

Comments are closed.

{"email":"Email address invalid","url":"Website address invalid","required":"Required field missing"}

Symbolic AI vs. Gen AI: The Dynamic Duo in Test Automation

Posted on 09/23/2024

You've probably been having conversations lately about whether to use AI for testing. ...

8 Special Ops Principles for Automation Testing

Posted on 08/01/2024

I recently had a conversation, with Alex “ZAP” Chernyak about his journey to ...

Top 8 Open Source DevOps Tools for Quality 2024

Posted on 07/30/2024

Having a robust Continuous Integration and Continuous Deployment (CI/CD) pipeline is crucial. Open ...