Uber logo

Uber QA Engineer System Design Questions

64 practice questions for Uber QA Engineer interviews

Uber QA engineer interviews test automation frameworks, test strategy, CI integration, performance testing, and debugging complex multi-service systems.

All Roles Software Engineer Backend Engineer Frontend Engineer Full Stack Engineer Mobile Engineer Data Engineer Data Scientist ML Engineer DevOps Engineer DevOps Engineer Product Manager SRE Security Engineer Engineering Manager Data Analyst UX/UI Designer QA Engineer
1
System Design
system design Hard Verified Question #1

1. Top 6 Recently Asked Uber System Design Questions


Category: Graph system design problem
This collection covers the most frequently asked system design questions at Uber interviews.
Input: Graph (nodes and edges)
Output: Computed result
system design Senior test automation #1

1. [OA] Test Result Aggregator — design a scalable aggregator for test results

As Uber scales its testing infrastructure, it's essential to have a robust mechanism that can efficiently aggregate results from various automated tests, analyze performance, and report statistics.
Your challenge is to design a TestResultAggregator class that consolidates test results.
- Method 1: void addResult(TestResult result) — Accepts a test result and adds it to the internal storage.
- Method 2: Statistics getStatistics() — Returns aggregated statistics (e.g., pass rate, average execution time).
Example 1:
Input: addResult(testResult)
Output: void
Explanation: The result is stored in the aggregator.
Example 2:
Input: getStatistics()
Output: Statistics
Explanation: Returns the aggregated statistics from previously added results.
Constraints:
- The number of test results will not exceed 10000.
system design Senior caching #2

2. [OA] LRU Cache — design the caching layer for Uber’s API responses

As Uber's service scales globally, efficient caching mechanisms become essential for optimizing API performance and reducing latency. Your challenge is to implement an LRU Cache to handle frequently accessed API responses.
- Method 1: void put(String key, Value value) — Stores a value in the cache with the associated key.
- Method 2: Value get(String key) — Retrieves the value for the key and refreshes its access order.
Example 1:
Input: put('user_1', data)
Output: void
Explanation: The data for user_1 is stored in the cache.
Example 2:
Input: get('user_1')
Output: data
Explanation: The function returns the cached data for user_1.
Constraints:
- The capacity of the cache is defined as N, with a maximum value of 1000.

Related Uber QA Engineer interview prep

Start practicing Uber questions

Sign up for free to access walkthroughs, AI-generated questions, and more.

Get Started Free