iOS Native Test Automation with XCUITest Bootcamp

Stress free trial - 100% refund of full payment after first class if you are not satisfied.

Reinvent Your Career in 4 weeks!

Starts June 16, 2019

  • We conduct our Bootcamp online via Zoom
  • All live sessions are recorded for you connivence and will be shared after each class
  • We are using Slack for communication during online session and offline homework 
  • Be prepared to spend 15-20 hours per week on the homework
  • Code we show during each session will be committed and be available on the GitHub

This training is for manual testers who want:

  • make a shift in their career and become Software Development Engineer in Test
  • increase compensation
  • feel more confident in current market

Why are we different?

  • 2 instructors per group with current iOS Development experience
  • We are not typical bootcamp. We teach through day-to-day work tasks using Agile approach. From day one you will start automating real use cases of a real startup-like iOS app. Thus you will gain real experience.
  • One-on-one online onboarding prior to the bootcamp via Zoom -- we will help you to:
    • install and configure Xcode for the class
    • clone GitHub project into your Mac
    • build Application under test
    • go through class checklist 
  • You will learn programming via hands-on task completion -- focusing you on programming topics that are necessary to complete your task
  • You will work in pairs just like at a real-world job. Pair programming is proven to be very effective and used heavily industry wide.
  • You will experience best software development practices during Bootcamp:
    • Each test case code will be committed to the common GitHub repository via PullRequest. We will teach everything about Git and GitHub from scratch at first week of the bootcamp
    • Upon successful code review by instructor and your teammates, your newly written test(s) code will be validated on Jenkins CI:
      • all tests would have to pass CI
      • SwiftLint must pass -- Swift style and conventions
    • Above practices would give you a real taste of day-to-day workflow of Software Engineer
  • We will start every other session with methodical approach on how to solve most asked Interview Programming problems thus will prepare you for coding interview screening

What framework/library will we use for test automation?

Since we are going to focus on iOS, we will use XCTest and XCUITest which is part of native XCode SDK

Course outline:

  • First week we help you to dive into Swift basics of Object Oriented programming, so later you may focus on tasks rather than programming basics
  • Intro to Git and GitHub. Creating Pull Request and solving merge conflicts
  • Every other online session will be started with Coding Algorithms
  • Setup test project from scratch in XCode
  • Integrate Accessibility Identifiers in app code for testability
  • Improve test stability by cleaning up application data via AppDelegate
  • As we progress, we will refactor tests with industry best practices to make tests more resilient using Page Objects pattern by using Protocols, Extensions, Delegates, ENums and Generics
  • Intro to RestApi
  • Make tests more stable with mock server using https://github.com/envoy/Ambassador (every company wants this skill nowadays)
  • Automating App Analytics ( number one desired test coverage by company’s executives)
  • Decorate tests with  advance features of XCUITest Library such as Async Wait, First Match API, Activities, Attachments and Screenshots
  • Running tests in parallel in XCode

Detailed Course Syllabus

Week 1

Intro to Swift and XCode

  • Variables
  • Datatypes
  • Operators
  • Control blocks
  • Collections
  • Functions
  • Optionals
  • Classes and Objects
  • Initializers

GitHub and GitFlow

  • Go over basic Git commands in Terminal
  • Intro to GitHub branching strategy
  • Pull Requests and Code Review
  • Resolving merge conflicts

Intro to XCUITest library 

  • Create UiTesting target
  • Automate first user scenario
  • Refactor first test
  • Meaningful assertions

Resolving GitHub Merge conflicts in-action and refactoring exiting tests

  • Why does my Pull Request have two checks? UiTests and SwiftLint
  •  Handling Location System Permission 
  • Overview on how to resolve Pull Request conflicts (in-class examples on student PRs)
  • How to work together on a single Git branch  (demo )
  • Classes and Objects in Action  — refactoring existing tests

Week 2

Intro to scalable Architecture with Page Objects

  • refactor first test with PageObjects
  • access control and encapsulation
  • polymorphism in action
  • initializers in actions
  • intro to XCode debugging
  • Optionals in action

Scale tests with Date Object, Protocols and Protocols extensions 

  • harden tests with future dates -- how to manipulate Date object
  • improve app navigation with Protocols
  • type alias and tuples

Week 3

Facebook auth with WebViews and clean up/injecting tests data

  • automate Facebook auth by using WebViews
  • clean tests data in appdelegate
  • logout before every test
  • using Activity in context for more readable test logs

Intro to backend Rest API and Mocking HTTP Traffic 

  • testing RestAPI via Charles Proxy
  • intro to Postman - Api development and testing environment
  • intro to Ambassador -- a lightweight HTTP mock server
  • refactor existing tests by pointing them to network mocks

Week 4

Completion Handlers  and Analytics automation 

  • intro to completion handlers
  • automating client analytics with Ambassador HTTP mock server

Decorate Tests with cool features of XCUITest Library  

  • Activities, Attachments and Screenshots
  • Parallel Testing -- need for speed
  • Localization testing with snapshot test -- most wanted feature of every global company
  • Running tests on RealDevice -- iPhone

 

Resume skills upon completion:

  • Intermediate Swift knowledge
  • Automate iOS App  regression with XCTest and XCUITest Libraries
  • Scalable test architecture -- PageObjects on steroids
  • Make test CI stable with mocking networking responses
  • Rest API testing — HTTP, JSON

What test automation framework and programming language are we going to use?

  • XCUITest – testing framework which is part of XCode
  • Swift – widely used Object Oriented programming language from Apple (open source)
  • CocoaPods – manages third party Libraries for iOS
  • Ambassador - Swift framework designed for UI automated testing API mocking
Prerequisites:
Must Have
  • Must have Mac with minimum hardware requirements :  CPU: 2Ghz+, Intel i5+, RAM: 16Gb+
  • Must have minimum of 6 months experience as manual tester. Mobile or Web

Please register ASAP since seating is limited to 20 students only!

* Registration refund policy:
Stress free trial - 100% refund of full payment after first class if you are not satisfied. We do not refund tuition after 2nd class

Please register ASAP since seating is limited to 20 seats!

For bootcamp pricing and details

DateTime
June 16Tuesday7:00 PM - 8:30 PM
June 20Saturday11:00 AM - 12:30 PM
June 23Tuesday7:00 PM - 8:30 PM
June 27Saturday11:00 AM - 12:30 PM
June 30Tuesday7:00 PM - 8:30 PM
July 7Tuesday7:00 PM - 8:30 PM
July 11Saturday11:00 AM - 12:30 PM
July 14Tuesday7:00 PM - 8:30 PM
July 18Saturday11:00 AM - 12:30 PM