TrustRadius: an HG Insights company

XCTest

Score8.3 out of 10

4 Reviews and Ratings

What is XCTest?

The XCTest framework is used to write unit tests for Xcode projects that integrate with Xcode's testing workflow. From Apple, the solution enables users to create and run unit tests, performance tests, and UI tests for Xcode project.

Most essential choice for basic unit-level testing of iOS apps and functionality

Use Cases and Deployment Scope

We do all our iOS apps/games testing with XCTest. Like Android Studio, Xcode provides tons of software testing capabilities for developers/UX designers that can help to enhance the stability and usability of the apps. Xcode provides XCTest and XCUITest which are extremely helpful for achieving and building better-quality software. Thoroughly tested apps, regardless of whether done at the unit level or UI level, improve the user experience and accelerate the adoption of those sorts of apps.

Pros

  • Basic unit level testing of iOS apps/games and functionalities
  • Xcode Test Recorder - mostly a feature for UI tests but as XCTest is related with XCUITest the UI recording is possible with Xcode environment.

Cons

  • No cross platform support
  • Limited Programming Language Support

Most Important Features

  • Xcode Test Recorder feature
  • Native iOS Language Support
  • Easy to Learn and implement

Return on Investment

  • Mostly positive and almost a must to have for all our app testing
  • Making our UI/UX seamless with test recording so we can launch a bug free apps

Other Software Used

blackfire.io, Android Studio

The change we needed to stop fighting unit tests and make them fun.

Use Cases and Deployment Scope

Im a Fullstack Mobile developer, I usually make Android apps, but I have experience with Swift, Objective-C, and iOS; XCTest has been really useful for Unit Testing for those platforms and languages. Before the use of XCTest, we had a lot of issues when we changed or made refactors on the code, and we needed to stop to fix all of those issues, but since we added XCTest, we don't need to worry about that, because XCTest will tell us what was broken.

Pros

  • Is easy to learn and implement.
  • Is faster than others competitors.
  • Cool integration with UI Tests.
  • Swift Native language.

Cons

  • Its only for iOS apps.
  • Only Swift and Objective-C language.
  • Some stability issues on real devices.

Most Important Features

  • Native iOS languages.
  • Continuos integration support.
  • Easy to understand and install if you have iOS experience.

Return on Investment

  • Faster way to know which issues appeared and fixed it.
  • Easy way to install and teach to the programmers.
  • More time invested on the project to implement.

Alternatives Considered

Appium

Other Software Used

Appium, Slack, Zoom

Test your UI using XCTest

Use Cases and Deployment Scope

We are using XCTest as one of our tools in order to test at some level the User Interface regarding our IOS apps. This tool has been integrated with our development environment and it is mandatory for us nowadays to make our development a bit more clear and with fewer bugs for the end users.

Pros

  • UI Tests
  • Easy Integration

Cons

  • Limited languages support

Most Important Features

  • Easy integration
  • Nice tests

Return on Investment

  • Since we have started using it, we could notice we have fewer UI bugs

XCTest is integrated right into Xcode and hard to beat

Use Cases and Deployment Scope

We use it to run unit tests on our app before we release to production.

Pros

  • Simple unit tests
  • Integrated into Xcode
  • Supported officially by the Apple Tech Stack

Cons

  • Occasionally confusing
  • Fails with automated builds without giving a good reason
  • Not super flexible

Most Important Features

  • Integration with existing tools
  • Works with automated build processes
  • Displays code coverage amount

Return on Investment

  • Prevents us from shipping bugs
  • It does take extra time to write and maintain unit tests
  • It can make it more challenging to onboard new developers

Alternatives Considered

Jenkins

Other Software Used

Xcode, GitHub, Jenkins