Starting September 7, 2019 iOS Native Test Automation with XCode and XCUITest -- Immersive Program

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

Reinvent Your Career in 8 weeks!

This training is for manual testers who want:

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

Why we are different?

  • 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.
  • 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 pair just like at 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:
    1. Each test case code will be committed to common GitHub repository via PullRequest. We will teach everything about Git and GitHub from scratch at first week of the bootcamp
    2. Upon successful code review by instructor and your team mates, your newly written test(s) code will be validated on Jenkins CI:
      • all tests must pass, including your new ones
      • SwiftLint must pass -- Swift style and conventions
    3. Above practices are harsh but would give you a real taste of day-to-day SDET live
  • 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 we will 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 Test Pyramid and RestApi testing
  • Make tests more stable with mock sever 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
  • Setup  iOS Continuous Integration with Jenkins using Xcodebuild and Fastlane
  • Running tests in parallel in XCode
  • Simulate coding interviews, prepare resume and LinkedIn
  • 1:1 individual session on a new career strategy -- how to setup personal goals and achieve them

Detailed Course Syllabus

Week 1

Intro to Swift and XCode

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

Intro to Interview Algorithms (Swift)

Week 2

Git and GitFlow

  • Intro to Git
  • Go over basic Git commands in Terminal
  • GitHub and Pull Request

Intro to XCUITest library 

  • solve interview algorithm - find number of unique character in string
  • create UiTesting target
  • automate first user scenario
  • refactor first test

Week 3

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

Week 4

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 5

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

Week 5 Weekend Lab

Build CI with Jenkins 

  • Install and configure Jenkins Server
  • using xcodebuild for building and running XCUITests for command line
  • using bash script to wrap up xcodebuild commands
  • configure Test Job in Jenkins that runs full regression upon Git commit

Week 6

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 light weight HTTP mock server
  • refactor existing tests by pointing them to network mocks

Week 7

Completion Hanglers  and Analytics automation 

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

Week 8

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
  • Jenkins CI: Build, Test, Deploy
  • Parallel test execution

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 automatic testing API mocking
  • Fastlane - is a tool for iOS developers to automate tedious tasks like generating screenshots, dealing with provisioning profiles, and releasing your application
  • Jenkins - Continuous integration server
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
  • You must have fundamental knowledge about any Object Oriented Programming

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

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

Please register ASAP since seating is limited to 20 seats!

For bootcamp pricing and details

DateTime
September 7Saturday1:00 PM - 5:00 PM
September 8Sunday1:00 PM - 5:00 PM
September 12Thursday7:30 PM - 9:00 PM
September 16Monday7:30 PM - 9:00 PM
September 19Thursday7:30 PM - 9:00 PM
September 23Monday7:30 PM - 9:00 PM
September 26Thursday7:30 PM - 9:00 PM
September 30Monday7:30 PM - 9:00 PM
October 3Thursday7:30 PM - 9:00 PM
October 5Saturday1:00 PM - 5:00 PM
October 6Sunday1:00 PM - 5:00 PM
October 10Thursday7:30 PM - 9:00 PM
October 14Monday7:30 PM - 9:00 PM
October 17Thursday7:30 PM - 9:00 PM
October 21Monday7:30 PM - 9:00 PM
October 24Thursday7:30 PM - 9:00 PM
October 28Monday7:30 PM - 9:00 PM
October 31Thursday7:30 PM - 9:00 PM
November 2Saturday1:00 PM - 5:00 PM
November 3Sunday1:00 PM - 5:00 PM