Airbnb Eli Hart Apr 7, 2020

Better Android Testing at Airbnb (Part 6)

Article Summary

Airbnb's Android tests take 2 hours to run but finish in minutes. Here's the CI infrastructure that makes it possible.

In the final part of their testing series, Airbnb's Android team reveals how they orchestrate automated tests at scale. This covers test generation, Firebase integration, and the tooling that ties their entire testing framework together.

Key Takeaways

Critical Insight

Airbnb built a fully automated CI pipeline that generates tests, detects changes, handles Firebase outages, and surfaces results directly in PRs without manual intervention.

The team shares their open source plans and reveals which future test types they're building next on top of this infrastructure.

About This Article

Problem

Airbnb's integration tests ran one at a time on Firebase Test Lab, which meant long waits for results. When tests failed across multiple shards, developers couldn't easily tell which ones had actually broken.

Solution

Eli Hart's team wrote CI tooling that reads Flank's JUnit reports, stores the artifacts in Buildkite, and comments on pull requests with links straight to the failed Firebase test matrices. Developers see the failures right away.

Impact

Instead of digging through CI logs, developers can click a PR comment to see Firebase failures immediately. This cuts down on confusion and support requests while keeping tests running across multiple shards without any slowdown.