Bitbar Training

XCTest & XCUITest Online Course

Target Audience: iOS developers, testers, QA folks

Course Description: XCTest has been part of Xcode for few years already, but it is finally catching up and more developers are getting on the bandwagon.

XCTest and XCUITest provide feature-rich capabilities for iOS developers and test automation folks to implement different levels of tests using Xcode features and supported programming languages, Objective-C and Swift.

XCTest is a great choice to be used but in addition there are other test automation frameworks that can be used in parallel or to replace Xcode testing capabilities. Learn all these tips and tricks and how to get started with XCTest/XCUITest, and get your tests running simultaneously on any number of iOS devices on cloud.

This course will focus on the basics of iOS app testing with Xcode features and capabilities, how to get started with different types of tests – unit, performance and user interface – with XCTest/XCUITest and what are the other alternatives for iOS test automation today.

In this course, we’ll cover:

  • Prerequisites for parallelism with iOS test execution
  • The state of the art of iOS platform and test automation
  • The basics of XCTest/XCUITest and how to get started
  • Deep dive on XCTest and XCUITest APIs (with examples)
  • The best practices, tips and tricks using Xcode features and APIs for efficient app testing and test automation



  • Prerequisites
    • Required and Installed Tools
      • Xcode 8.x
      • Real Devices
    • Configured Environment
      • Xcode settings
      • Build settings
    • The State of The Art with iOS Testing
  • Introduction to iOS Testing and Test Automation
    • Pros and Cons
    • Alternative Add-Ons (e.g. KIF)
  • Getting Started
    • The Basics of Xcode
      • Signing apps
    • Programming languages – Swift and Objective-C
    • Managing projects and creating the first test
    • Using Storyboard for app creation and testing
    • Other important features of Xcode
    • Example
  • Deep Dive on XCTest
    • Types of tests and how to create those
      • Unit, Performance, Acceptance
    • XCTest API
    • Example: 15min for creating first unit and performance test
  • Deep Dive on XCUITest
    • How to use Xcode UI recorder
    • XCUITest API
    • Alert Handling
    • Wait Handling
    • Accessibility identifiers
    • Example: 15min for creating UI test(s) for a skeleton app
  • Parallelism Execution for iOS App Testing
    • Preparing application and test for cloud execution (signing, provisioning…)
    • How to create IPA for ad hoc distribution
    • How to package tests
    • Running App+Test simultaneously on several iOS devices
  • Advanced Add-Ons
    • Using Jenkins with Xcode
    • Fastlane with Xcode
    • Xcode Server and Bots
    • Code coverage
    • XCFit
    • Extensions