Thumbtack Brian Terczynski Mar 16, 2021

Automating Integration Tests To Ensure Android App Quality

Article Summary

Brian Terczynski from Thumbtack reveals how his team eliminated weekly manual QA sessions that were draining engineering time. Their solution? A fully automated integration testing pipeline that catches bugs before production.

Thumbtack's Android team was stuck in a cycle of manual testing: dogfooding new features and weekly QA sessions for regression testing. This process was time-consuming, inconsistent, and only caught bugs right before release. They needed a better approach to ensure app quality without sacrificing developer productivity.

Key Takeaways

Critical Insight

Thumbtack built a complete test pyramid with automated integration tests running several times daily, replacing manual QA sessions and catching backend-breaking changes before production.

The biggest challenge wasn't writing the tests or setting up the infrastructure (it was something that still plagues them today).

About This Article

Problem

Thumbtack's integration tests were abandoned because the build machines couldn't run emulators. Without a way to execute tests automatically and repeatedly, engineers stopped paying attention to them.

Solution

In 2019, Brian Terczynski's team switched to BrowserStack's App Automate platform. It provided an API that Jenkins could call to run Espresso tests across multiple Android devices without needing local emulators.

Impact

The team now runs tests several times daily. Reports include screenshots, videos, and logcat output that get posted to Slack. This lets them catch backend-breaking changes and Android incompatibilities before the weekly release.