UI testing is so easy - said no developer ever

How hard can it be to chain together a few Espresso commands and produce an Android UI test? There's even a test recorder built into the IDE for this purpose! It is easy... Unless, of course, one actually wants to run the test continuously and have it block merges to master. Now, we need not just a test, but a test that provides a reliable signal; a test that is not flaky. At Slack, we started by solving the problem of writing reliable UI tests, by making them targeted and hermetic. And we made good progress. However, as our UI test suite grew to hundreds of tests, we discovered a problem - developers hated the process. It was cumbersome and time-consuming. It turns out, the difficult part of writing the test was not about testing at all - it was about setting up application state. In this talk, we will present our approach of simplifying our test setup to the extent that makes it easy and, dare we say it - enjoyable - to develop reliable UI tests.

Valera Zakharov, Slack

Valera is passionate about making the lives of Android developers simpler and more productive. He currently leads the Android Developer Experience team at Slack. Previously, he worked at Google, where he lead the development of Espresso and the Android Testing Support Library.

Kevin Lai, Slack

Kevin is a Staff Engineer at Slack who has over 10 years of Java experience and has specialized in Android development for the past six. Having developed apps since the Froyo days, Kevin is familiar with both the challenges and the intricacies of the platform. At Slack, he not only leads the development of core features for the Android app, but has also made it simpler for others to write tests by introducing better testing APIs.