1. UI Automation framework from google
1.1. About 5 years old
1.2. https://google.github.io/android-testing-support-library/docs/espresso/
1.3. Java/Kotlin only
1.4. Integrated within Android studio
1.4.1. Tests can be written, debugged and run
1.4.2. Record and playback tool available
1.4.3. Tools for inspection
1.4.4. Can run tests directly on Firebase test lab
2. Comparision with appium
2.1. https://medium.com/@satyajit/comparisons-of-appium-vs-espresso-vs-xcuitests-f6f5e5af1c7f#.aohoyzo37
2.2. Newer versions of appium are going to be based on espresso
2.2.1. not UIAutomator
3. Benefits
3.1. 2. Fast
3.1.1. Grey box testing
3.1.1.1. Invoke activities/intents directly
3.2. 3. Reuse dev code
3.2.1. From util helpers
3.2.2. From unit test helpers
3.3. 4. Shift left
3.3.1. Build gates for PR
3.3.2. http://www.slideshare.net/JosiahRenaudin/shift-left-mobile-application-testing
3.4. 5. Parallel by design
3.5. 6. Deep integration into code for adding waiters/idling resources
3.6. 7. Colloboration
3.6.1. Made it easier for SDET to get familiarised with code and fix bugs
3.6.2. Make it easy for devs to maintain/write UI tests
4. Writing tests with espresso
4.1. Locators/ViewMachers
4.1.1. onView()
4.1.1.1. withId
4.1.1.2. withText
4.1.1.3. withContentDescriptors
4.1.2. onData()
4.1.3. allOf
4.1.4. ViewMatchers | Android Developers
4.1.5. Hamcrest
4.2. Actions
4.2.1. Click
4.2.2. typeText
4.2.3. swipe etc..
4.2.4. ViewAction | Android Developers
4.3. Assertions
4.3.1. check
4.3.2. matches
4.3.3. isDisplayed?()
4.3.4. not
4.3.5. ViewAssertions | Android Developers
4.4. Advanced
4.4.1. Integration with instruments framework
4.4.2. Counting idling resources
4.4.3. Setup rules
4.4.4. Intents
5. Resources
5.1. Code samples
5.1.1. chiuki/espresso-samples
5.1.2. googlesamples/android-testing
5.2. Official docs
5.2.1. Espresso | Android Developers
5.3. Espresso cheat sheet | Android Developers
5.4. Advanced
5.4.1. droidcon NYC 2017 - How Espresso Works
5.4.2. Advanced Android Espresso
5.5. Support
5.5.1. Slack
5.6. Code labs
5.6.1. Advanced Android in Kotlin 05.1: Testing Basics