LinkedIn Jun 26, 2020

Faster testing on Android with Mobile Test Orchestrator

Article Summary

LinkedIn's Android test suite hit tens of thousands of tests, pushing execution times into the danger zone. Developer productivity was tanking.

LinkedIn engineers built Mobile Test Orchestrator (MTO) to solve a scaling crisis: keeping test runs under 10 minutes as their suite exploded in size. They chose a pull-based distribution model with dynamic emulator provisioning.

Key Takeaways

Critical Insight

MTO achieved an 8x speedup by distributing tests across 160 emulators, hitting the critical 10-minute target while staying easily scalable.

The article reveals why LinkedIn chose dynamic over persistent emulator clouds, and the CPU consumption difference between parallelism and concurrency is eye-opening.

About This Article

Problem

LinkedIn's Android test suite ballooned to tens of thousands of tests. Running them on a single machine took tens of minutes, which meant developers had to wait a long time for feedback on their changes.

Solution

Mobile Test Orchestrator uses Python with multiprocessing and asyncio to spread tests across multiple worker nodes. Each node runs Android emulators through the Android Debug Bridge.

Impact

Test execution dropped from 80 minutes on a single 16-emulator machine to 10 minutes across 10 hosts. The orchestration layer only uses 1-2% CPU, so the scaling is efficient without wasting resources.