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 6 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

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 Screen Objects pattern
  • 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 Test Automation with Espresso Library

  • 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
  • Intro to scalable architecture with Screen Object 

Week 3

  • Refactor existing tests with Screen Objects architecture
  • Custom Matchers
  • Intro Data Race and Atomic Reference
  • Custom Action
  • Failure Handlers

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

Week 6

  • Parallel testing with Fork
  • Intro to Jenkins CI
  • Run tests in Jenkins

 

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
Prerequisites:
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

DateTime
March 24Tuesday7:30 PM - 9:30 PM
March 26Thursday7:30 PM - 9:30 PM
March 28Saturday11:00 AM - 11:00 AM
March 31Tuesday7:30 PM - 9:30 PM
April 4Saturday11:00 AM - 1:00 PM
April 7Tuesday7:30 PM - 9:30 PM
April 11Saturday11:00 AM - 1:00 PM
April 14Tuesday7:30 PM - 9:30 PM
April 18Saturday11:00 AM - 1:00 PM
April 21Tuesday7:30 PM - 9:30 PM
April 25Saturday11:00 AM - 1:00 PM
April 28Tuesday7:30 PM - 9:30 PM
May 2Saturday11:00 AM - 1:00 PM
May 5Tuesday7:30 PM - 9:30 PM
May 9Saturday11:00 AM - 1:00 PM