XCUITest for QA: where it is used, what it pays, how to learn it
XCUITest is Apple's UI testing framework built on XCTest and included in Xcode. Tests are written in Swift or Objective-C and drive the app through accessibility. 21 of the 4,012 QA listings we track mention it, about 52% of them remote. There are too few posted pay ranges to publish a median.
See the role pay below instead.
What XCUITest is used for in QA
XCUITest is Apple's UI testing framework built on XCTest and included in Xcode. Tests are written in Swift or Objective-C and drive the app through accessibility.
- Automated UI tests for iOS, iPadOS and tvOS apps in CI.
- Launch-argument and accessibility-identifier based setup for deterministic screens.
- Performance measurement of launch time and scrolling with XCTest metrics.
- Running on simulators and, with a device cloud, on real devices.
Which roles use XCUITest
Pay is the US median for a mid-level hire. Other levels and countries are on each role's page.
| Role | What they do with it | Junior | Mid | Senior |
|---|---|---|---|---|
| Mobile QA Engineer | Tests native and cross-platform apps on real devices, with and without automation. | $78k | $106k | $138k |
US gross annual median, estimate from our salary model. All salary guides.
Listings that mention XCUITest
Mobile QA
PT | QA Functional Mobile
Senior Mobile QA
Senior Mobile SDET
Senior Automation Tester (Mobile)
QA Analyst, Mobile
Learn XCUITest in five steps
A practical order that gets you to a working project. Build something at each step; reading alone does not stick.
- 1
Add a UI test target
Create the target in Xcode and record a flow to see the generated queries.
- 2
Accessibility identifiers
Add identifiers in the app and query by them instead of labels.
- 3
Waiting and expectations
Use waitForExistence and XCTNSPredicateExpectation instead of sleeps.
- 4
Launch arguments and test state
Reset state and stub servers with launch arguments and environment.
- 5
CI with xcodebuild
Run with xcodebuild test on simulators, parallel testing and result bundles.
XCUITest vs Appium
| Aspect | XCUITest | Appium |
|---|---|---|
| Platforms | Apple platforms only | iOS and Android |
| Stability | High, maintained by Apple | Depends on drivers and versions |
| Language | Swift or Objective-C | Many |
| Real devices | Xcode or cloud providers | Cloud providers or local setup |
Choose XCUITest when
You test an iOS app, can add accessibility identifiers and want the most reliable runs.
Choose Appium when
You want one suite for both platforms or tests written outside the Apple toolchain.
Interview questions about XCUITest
Questions from our Interview Vault that test XCUITest knowledge. Answer aloud first, then reveal the model answer.
When would you pick Espresso or XCUITest over Appium?
Native frameworks run in the same toolchain as the app, synchronise with the UI thread so they are faster and more stable, and allow white-box access. The cost is two suites, one per platform. Appium gives one cross-platform black-box suite in a language you choose, with slower and less deterministic execution.
Mobile QA Engineer · Mid · Tool choice
How strong is your XCUITest experience on paper?
Run your CV through the checker for XCUITest keywords and results, or take the 10-minute level test.
XCUITest FAQ
Do I need a Mac for XCUITest?
Yes. Xcode runs only on macOS, so you need a Mac or a cloud Mac runner in CI.
Is XCUITest better than Appium on iOS?
It is usually faster and steadier, because Appium's iOS driver is built on XCUITest anyway. Appium wins when you need one suite across both platforms.
How much do jobs that ask for XCUITest pay?
There are not enough posted ranges to state a median: only 2 of the listings that mention XCUITest publish pay. Role pay is the better guide, see the roles below.
Which QA roles use XCUITest?
Roles that use it: Mobile QA Engineer (US median $106k mid-level).