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
- CustomFailureHandler
- Hamcrest matchers under microscope
- How to Debug tests in Android Studio
- Gradle/Fork runner
- Intro to Network Stubbing with OKHTTP MockWebServer library https://github.com/square/okhttp/tree/master/mockwebserver
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
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
Schedule a CallDate | Time |
---|---|
September 15Tuesday | 7:00 PM - 9:00 PM |
September 19Saturday | 11:00 AM - 12:30 PM |
September 22Tuesday | 7:00 PM - 9:00 PM |
September 26Saturday | 11:00 AM - 12:30 PM |
September 29Tuesday | 7:00 PM - 9:00 PM |
October 3Saturday | 11:00 AM - 12:30 PM |
October 6Tuesday | 7:00 PM - 9:00 PM |
October 10Saturday | 11:00 AM - 12:30 PM |
October 13Tuesday | 7:00 PM - 9:00 PM |
October 17Saturday | 11:00 AM - 12:30 PM |
October 20Tuesday | 7:00 PM - 9:00 PM |
October 24Saturday | 11:00 AM - 12:30 PM |
October 27Tuesday | 7:00 PM - 9:00 PM |
October 31Saturday | 11:00 AM - 12:30 PM |