why a developer writes

GTAC: The Uber Challenge of Cross-Application Testing

| Comments

Inspired by Matt Cutts’ TED talk: Try something new for 30 days, I’m starting a “30 Days of GTAC” project. Google’s Test Automation Conference GTAC is an annual test automation conference which brings together engineers from industry and academia to discuss advances in test automation and related engineering tools. In my “30 Days of GTAC” project, I’ll review the topics presented on GTAC. My goal is having a better and deeper understanding in modern testing technologies, methodologies, strategies, and practices.

Get it started! Day#1 topic is:

The Uber Challenge of Cross-Application/Cross-Device Testing

  • Presenter: Apple Chow (Uber), Bian Jiang (Uber)
  • Video
  • Slides

My takeaways

  • The challenge: End-to-end tests require cross application communication (between rider app and driver app)
  • Uber’s solution: Octopus
    • Octopus coordinates communication across different apps running on different devices
    • This solution can be adopted for any tests that require coordination/communication across different apps or devices
  • What makes testing Uber’s mobile apps significantly different from testing Google Maps?
  • Why (built) Octopus? Unified (iOS and Android). Extensible (Integrate with different UI testing frameworks). Parallelized. Signaling (enabling cross-app and cross-device testing).
  • What does Octopus do? Prepare test targets. Run tests (handles signaling). Create test results reports. Pull test artifacts. Perform clean ups. All from simple command line.
  • Signaling between driver test and rider test: Conducted with Test Host to improve the consistency. API readSignal (blocking), writeSignal (nonblocking). Test hosts and test targets are connected via USB (reliable).
  • Apple Chow wrote about Octopus on Uber Engineering