~/talk

Rock-Solid UI and Instrumentation Testing

Talkat droidcon San Francisco 2022 · 2022-06-02..06-03· [android, testing]
slides:none on file

Concrete recipe for reliable Espresso UI tests: build a multi-module test setup so feature teams compile and run tests in isolation, use a robot DSL like Kakao/Kakao DSL to hide Espresso calls, register idling resources (Jake Wharton’s HTTP idling, RxIdler for RxJava) and mockwebserver or mocked Retrofit, inject controllable executors instead of letting libraries spawn thread pools, disable animations, avoid Thread.sleep, and shard runs with Flank + Firebase. Result: a 1,000+ test suite that runs in parallel and finishes under 20 minutes in CI; coroutines still lack a turnkey idling solution.

AI-written summary · about

  1. 0:00Introduction and setup
  2. 1:13UI testing at scale
  3. 2:42User interaction vs UI tests
  4. 5:53Challenges with Espresso
  5. 7:19Robot pattern for readability
  6. 10:57Device and sync issues
  7. 12:01Disabling animations
  8. 14:10Thread sleep pitfalls
  9. 16:40Idling resources explained
  10. 19:08Legacy app example
  11. 23:05Thread pool control
  12. 25:14Coroutines testing gap
  13. 26:16Architecture components
  14. 27:58Data binding delays
  15. 30:24List adapter issues
  16. 32:08Compose testing limits
  17. 33:12Device farm setup
  18. 35:01Test sharding benefits
  19. 36:49Multi-module testing
  20. 39:17Future of Android testing
  21. 41:00Q&A and closing
~/search
type to search 6,249 conferences, 138,987 speakers and 185,172 talks
~/help
cmdctrl k
search every conference, speaker and series
/
focus the filter search
h
home
c
conferences
s
speakers
e
series
t
light / dark — the status bar button does the same
?
this help
esc
close this, then clear every filter — or just the search, while you are typing in it

Ignored while you are typing. Pages without a filter rail have no search to focus.