Amazon logo

Amazon QA Engineer System Design Questions

40 practice questions for Amazon QA Engineer interviews

Amazon 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

No verified questions yet for Amazon.

system design Medium test automation #1

1. [OA] Flaky Test Detector — Create a system to identify and manage flaky tests in Amazon’s CI pipeline

Flaky tests can severely affect Amazon's release process. A mechanism to detect and provide insights into flaky tests will be essential for maintaining code quality.
Design a class FlakyTestDetector with the following methods:
- addTestExecution(testName: str, result: bool): None - Adds a result of a test execution to the detector.
- getFlakyTests(): List[str] - Returns a list of tests identified as flaky based on historical results.
Example 1:
Input: addTestExecution('LoginTest', true) followed by addTestExecution('LoginTest', false)
Output: ['LoginTest']
Explanation: The test failed inconsistently, marking it as flaky.
Constraints:
- Each test name is unique and of length 1 to 100.
- Results can only be true or false.
system design Senior distributed systems #2

2. [OA] Load Test Orchestrator — Build a system for orchestrating load tests at Amazon scale

As Amazon expands its cloud services, verifying performance under high load is critical. An orchestrator must manage multiple load test scenarios efficiently.
Create a class LoadTestOrchestrator with the following methods:
- scheduleLoadTest(testName: str, duration: int): None - Schedule a load test with a specified duration.
- executeTests(): List[Result] - Execute all scheduled load tests and return their results.
Example 1:
Input: scheduleLoadTest('API_Load_Test', 300) followed by executeTests()
Output: [Result]
Explanation: All scheduled tests are executed, returning results in a list.
Constraints:
- Duration is a positive integer less than or equal to 3600 seconds.
system design Medium api design #3

3. [OA] Test Result Aggregator — Build a system that compiles test results from multiple sources

As Amazon continues to expand its automated testing capabilities, it becomes critical to consolidate results from varied testing environments. This requires a robust class design.
Design a class TestResultAggregator with the following methods:
- addResult(testName: str, result: bool): None - Adds a test result for the specified test.
- getSummary(): Dict[str, int] - Returns a summary of passed and failed tests.
Example 1:
Input: addResult('LoginTest', true) followed by addResult('SignupTest', false)
Output: {'passed': 1, 'failed': 1}
Explanation: 1 test passed, and 1 test failed.
Constraints:
- Test names are unique strings of length 1 to 100.

Related Amazon QA Engineer interview prep

Start practicing Amazon questions

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

Get Started Free