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 5 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 Android app. Thus you will gain real experience.
  • You will learn programming via hands-on task completion -- focusing you on 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.
  • 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 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
  • We will start each 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 Android Native App automation, we will use Espresso 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
  • Second week we will build simple Android app, so you would be familiar with Android development process and terminology
  • 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 Android Studio
  • Intro to Gradle setup for Espersso 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 Page Objects pattern
  • Intro to Test Pyramid and RestApi testing. Automating backend tests in Kotlin
  • Make tests more stable with stubs using MockWebServer - OKHTTP library(every company wants this skill nowadays)
  • Decorate tests with  advance features such as Intent stubbing and Idling resources
  • 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 Development

  • All about Layout
  • Activities Lifecycle:  
  • Activity
  • Activity Lifecyle
  • Intro to Serialization and Intents
  • Event listeners
  • Build first Android app


  • Intro to “OrderMe” -- Android App under test
  • Go over "OrderMe" code and architecture
  • Gradle and Android Testing 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
  • Setup run configuration for Espresso
  • Into to  Page Objects architecture
  • Refactor existing test with Page Objects

Week 3

  • Make Page Object more resilient
  • Custom Matchers
  • Intro Data Race and Atomic Reference
  • Custom Action
  • Failure Handlers
  • Solve interview Algorithm

Recycle Views:

  • Refresh overview of Recycle View
  • interaction with elements outside the screen


  • External Intents
  • Internal Intents

Week 4

Prerequisites for Idling Resources:

  • Intro to HTTP anatomy
  • Go over architecture of  OrderMe Network layer
  • Intro to RXJava
  • Multithreading
  • Async calls
  • Implementation for Idling Resource
  • Example of Custom JUnit runner
  • RXIdler in-action

Week 5

  • Lab: Work with instructors  to refactor existing tests with Idling Resource
  • Intro to Dependency Injection  with Dagger 2
  • Intro to Mock HTTP Web Server
  • LAB: refactor existing tests with stubbing network layer
  • Interview Algorithms in depth
  • Resume and Interview Preparation

Resume skills upon completion:

  • Intermediate Kotlin skills
  • Espresso
  • Gradle
  • Android SDK configuration
  • 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 or Ubuntu  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

March 14Saturday12:00 PM - 5:00 PM
March 15Sunday12:00 PM - 5:00 PM
March 17Tuesday7:30 PM - 9:30 PM
March 19Tuesday7:30 PM - 9:30 PM
March 23Monday7:30 PM - 9:30 PM
March 25Wednesday7:30 PM - 9:30 PM
March 28Saturday12:00 PM - 5:00 PM
March 29Sunday12:00 PM - 5:00 PM
March 31Tuesday7:30 PM - 9:30 PM
April 2Thursday7:30 PM - 9:30 PM
April 7Tuesday7:30 PM - 9:30 PM
April 9Thursday7:30 PM - 9:30 PM
April 13Monday7:30 PM - 9:30 PM
April 15Wednesday7:30 PM - 9:30 PM