Espresso for QA: where it is used, what it pays, how to learn it
Espresso is Google's Android UI testing framework in the AndroidX Test library. Tests are written in Kotlin or Java and run inside the app process. 38 of the 4,012 QA listings we track mention it, about 39% of them remote. Posted pay for those listings has a median of $74k a year.
Middle half $72k to $205k, from 8 listings with a published range.
What Espresso is used for in QA
Espresso is Google's Android UI testing framework in the AndroidX Test library. Tests are written in Kotlin or Java and run inside the app process.
- Fast, stable UI tests of Android screens as part of the app's CI.
- White-box testing with direct access to app code, IdlingResources and dependency injection.
- Testing intents and navigation with the Espresso-Intents extension.
- Running on a device farm through Gradle managed devices or a cloud.
Which roles use Espresso
Pay is the US median for a mid-level hire. Other levels and countries are on each role's page.
| Role | What they do with it | Junior | Mid | Senior |
|---|---|---|---|---|
| Mobile QA Engineer | Tests native and cross-platform apps on real devices, with and without automation. | $78k | $106k | $138k |
US gross annual median, estimate from our salary model. All salary guides.
Listings that mention Espresso
Mobile QA
Senior QA Engineer
QA Team Leader
Senior QA Engineer
Senior QA Engineer
Senior QA Engineer
Learn Espresso in five steps
A practical order that gets you to a working project. Build something at each step; reading alone does not stick.
- 1
Set up and write a first test
Add androidx.test dependencies and use onView, perform and check on a simple screen.
- 2
Matchers and RecyclerView
Learn ViewMatchers, assertions and RecyclerViewActions.
- 3
Synchronise with IdlingResource
Register idling resources for background work so tests never need sleeps.
- 4
Test doubles and dependency injection
Replace network and storage with fakes using Hilt or a manual injector.
- 5
CI and device farms
Run on emulators in CI and on a device cloud with sharding and result collection.
Espresso vs Appium
| Aspect | Espresso | Appium |
|---|---|---|
| Platforms | Android only | iOS and Android |
| Speed and stability | Fast, auto-synchronised | Slower, more flaky by default |
| Who writes tests | Android developers or SDETs in the repo | QA engineers outside the app code |
| Language | Kotlin or Java | Many |
Choose Espresso when
You own the Android codebase and want the fastest, most stable UI tests.
Choose Appium when
You need one cross-platform suite or tests independent of the app's source.
Interview questions about Espresso
Questions from our Interview Vault that test Espresso knowledge. Answer aloud first, then reveal the model answer.
When would you pick Espresso or XCUITest over Appium?
Native frameworks run in the same toolchain as the app, synchronise with the UI thread so they are faster and more stable, and allow white-box access. The cost is two suites, one per platform. Appium gives one cross-platform black-box suite in a language you choose, with slower and less deterministic execution.
Mobile QA Engineer · Mid · Tool choice
How strong is your Espresso experience on paper?
Run your CV through the checker for Espresso keywords and results, or take the 10-minute level test.
Espresso FAQ
Do I need to know Kotlin for Espresso?
Knowing Kotlin or Java is required. Most new Android apps use Kotlin, so Kotlin is the more useful choice.
Can Espresso test a release build?
Yes, with a test APK installed alongside the app on the same device. The app must be instrumented, so some obfuscation settings need adjusting.
How much do jobs that ask for Espresso pay?
Listings that mention Espresso and publish a pay range have a median of about $74k a year in USD terms (middle half $72k to $205k, from 8 posted ranges).
Which QA roles use Espresso?
Roles that use it: Mobile QA Engineer (US median $106k mid-level).