# Speedrun: An Open-Source Mobile E2E Test Runner

Achieve significantly faster mobile UI testing by eliminating fixed sleeps and polling mechanisms.

- **Source:** [Developing Android Apps](https://brifing.si/source/aa76b6c1-28c1-49f8-967e-b6a0eeadfa86)
- **Published:** 2026-10-28
- **Topic:** [Software & Engineering](https://brifing.si/c/engineering)
- **Original article:** <https://www.reddit.com/r/androiddev/comments/1xhsjzz/speedrun_an_opensource_mobile_e2e_test_runner/>
- **On Brifing:** https://brifing.si/s/1e4877f2-4a37-4b36-a589-b1871c6bccd1

## Solving Mobile Testing Latency

Mobile UI testing often suffers from slow execution due to fixed sleeps, polling, and screenshot comparisons. Speedrun addresses this by using an on-device agent that monitors accessibility events on Android and idle states on iOS. This approach ensures test steps trigger immediately when the application is ready, rather than waiting for arbitrary timers.

## Performance Benchmarking Results

In a user journey test, Speedrun completed tasks in 20.4 seconds on Android and 27.2 seconds on iOS. This significantly outperforms Maestro, which took 126.5 seconds and 113.1 seconds respectively. The tool also demonstrated superior speed compared to Appium and XCUITest, particularly on Android emulators where it leverages efficient Linux-based runners.

## Mechanism for Rapid Execution

The runner avoids JVM overhead by using a single native binary. It reads the UI tree in approximately 10 milliseconds on Android using a compact binary protocol. By ignoring non-blocking elements like spinners or carousels, the agent accurately determines when a screen has settled, preventing unnecessary delays during complex test sequences.

## Compatibility and Integration

Speedrun is compatible with existing Maestro YAML flow formats, allowing developers to switch tools with minimal configuration changes. It supports integration with AI agents through an MCP server, enabling tools like Claude Code or Cursor to explore applications, perform actions, and save successful interaction steps directly as reusable YAML test flows.

## Enhanced Test Reliability

Beyond speed, the tool reduces flakiness by intelligently handling UI states. It avoids interacting with elements that are still animating or obscured by loading overlays. Furthermore, it automatically scrolls elements out from under sticky footers or keyboards before execution, ensuring more robust interactions compared to traditional screenshot-based or polling-based testing methods.

## Current Technical Limitations

As a young project at version 0.1.10, Speedrun currently supports Android emulators and devices but is limited to iOS simulators, with no support for real iOS hardware yet. Additionally, the tool does not support Maestro's AI-specific commands like assertWithAI, and Linux builds are currently restricted to Android-only testing environments.

## Optimizing CI/CD Pipelines

The tool's efficiency on Android emulators makes it highly suitable for CI/CD environments where execution time directly impacts developer feedback loops. By reducing the duration of test suites—such as the 19-flow React-Native suite where it proved 6.1x faster on Android—teams can run more frequent validations without increasing their total infrastructure costs.

## Future Development Trajectory

Speedrun represents a shift toward performance-oriented mobile testing, applying game development principles to UI automation. By open-sourcing the project under Apache 2.0, the developer invites community feedback to refine the tool. Future iterations will likely address current platform limitations and expand support for more complex test scenarios across diverse mobile applications.

## Sources covering this story

- https://www.reddit.com/r/androiddev/comments/1xhsjzz/speedrun_an_opensource_mobile_e2e_test_runner/ — 

---

_Summary written by Brifing from the original reporting. Copyright in the original article belongs to its publisher; read the full piece at the link above._
