Android Test Automation with Espresso

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

Reinvent Your Career in 7 weeks

Starting September 15, 2020

  • 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 Android 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 Android Studio 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 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.
  • If you get stuck, we will unblock you during 1:1 office hours
  • You will experience best software development practices:
    • Each test case code will be committed to the common GitHub repository via Pull Request. We will teach everything about Git and GitHub from scratch
    • Upon successful code review and merge, your test code will be executed on Jenkins — your work will be run along with existing tests thus will be checked if your newly automated test is not breaking existing tests. This practice is called pre-merged testing and in recent years has become industry standard

What framework/library will we use for test automation?

Since we are going to focus on Android Native App automation, we will use Espresso library which is part of Android SDK

Course outline:

  • First week we help you to dive into Kotlin ( Google's adapted programming language for Android development)  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
  • Setup test project from scratch in Android Studio
  • Intro to Gradle setup for Espresso and tasks
  • Learn basic to advance features of JUnit 4
  • As we progress, we will refactor tests with industry best practices to make tests more resilient using Robot Design Pattern -- more modern version of Page Objects
  • Intro to RecyclerView Ui Testing
  • Decorate tests with  advance Espresso features such as Intent stubbing, Custom Matchers, and Custom Actions
  • Make tests more stable with IdlingResource and  by stubbing network calls with MockWebServer - OKHTTP library(every company wants this skill nowadays)
  • Parallel testing with Fork

Detailed Course Syllabus

Week 1

Intro to Kotlin and Android Studio

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

Git and GitFlow

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

 Week 2

Intro to Android Test Automation with Espresso Library

  • Intro to “OrderMe” -- Android App under test
  • Go over "OrderMe" code and architecture
  • Setup Gradle with Espresso Library
  • Build types and product flavors
  • Intro to basics of Espresso Library: View Matchers, View Actions,  View Assertion
  • First Espresso tests for "OrderMe" with Test Recording and refactoring
  • Intro to Layout inspector 
  • Setup run configuration for Espresso
  • Intro to scalable Robot architecture
  • Refactor existing tests with Robot pattern architecture

Week 3

  • Finish Robot refactoring with BaseRobot
  • Recipe to work with RecyclerView 
  • Custom Matcher
  • Custom Action

Week 4

  • Intents -- show Map intent in class with longitude and latitude assertion 
  • Refactor code with BaseTest class
  • Intro to HTTP anatomy
  • Go over architecture of  OrderMe Network layer

Week 5

Week 6

  • Intro Multithreading
  • Async call
  • Show example of implementation for Idling Resource
  • Show RXIdler
  • refactor existing tests with Idling Resource

Week 7

  • Intro to Jenkins CI
  • How to setup post merge Espresso tests execution
  • Intro to Final Project 
  • What’s next ?


Resume skills upon completion:

  • Intermediate Kotlin skills
  • Espresso
  • Gradle
  • Android SDK configuration
  • Scalable architecture with Robot pattern -- Page Objects on steroieds 
  • Fundamental knowledge for Android development
  • Scaling test execution with Fork
  • Rest API — HTTP, JSON parsing
  • Stubbing with MockWebServer
  • Dependency Injection with Dagger 2
  • Git flow with GitHub

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

  • Espresso – testing framework which is part of Android SDK
  • Kotlin – officially adapted by Google Android team Object Oriented programming language
  • Gradle – manages third party Libraries for Android
Must Have
  • You must have MacBook Pro for this bootcamp with minimum 2.5GHz Processor and 16GB of RAM
  • Fundamental knowledge of basic Object Oriented concepts in any programming language or have at least 6 months of practical experience in manual testing

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

* Registration refund policy:
Stress free trial - 100% refund of full payment after first session if you are not satisfied We do not refund tuition after 3rd session attendance

Please register ASAP since seating is limited to 20 seats!

For bootcamp pricing and details

September 15Tuesday7:00 PM - 9:00 PM
September 19Saturday11:00 AM - 12:30 PM
September 22Tuesday7:00 PM - 9:00 PM
September 26Saturday11:00 AM - 12:30 PM
September 29Tuesday7:00 PM - 9:00 PM
October 3Saturday11:00 AM - 12:30 PM
October 6Tuesday7:00 PM - 9:00 PM
October 10Saturday11:00 AM - 12:30 PM
October 13Tuesday7:00 PM - 9:00 PM
October 17Saturday11:00 AM - 12:30 PM
October 20Tuesday7:00 PM - 9:00 PM
October 24Saturday11:00 AM - 12:30 PM
October 27Tuesday7:00 PM - 9:00 PM
October 31Saturday11:00 AM - 12:30 PM