Google logo

Google QA Engineer System Design Questions

48 practice questions for Google QA Engineer interviews

Google 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 Google.

system design Senior api design #1

1. [OA] OOP Design — Design a Load Test Orchestrator for Google Services

As Google scales, it's imperative to effectively manage load testing across services to ensure system reliability. A well-structured orchestrator will help distribute load tests systematically.
Problem Statement: Create a LoadTestOrchestrator class that enables users to schedule load tests on multiple services concurrently. You should define methods for adding services and managing the scheduling of tests.
- add_service(service_name: str) -> None: Add a new service for testing.
- schedule_load_test(test_id: str) -> None: Schedules a load test for all added services.
- get_services() -> List[str]: Retrieves the list of services slated for load testing.
Example 1:
Input: add_service('SearchService')
Input: add_service('AuthService')
Input: schedule_load_test('loadTest1')
Input: get_services()
Output: ['SearchService', 'AuthService']
Explanation: Both services are set for load testing.
Constraints:
- 1 <= number of services <= 100
- Service names are unique strings.
system design Senior api design #2

2. [OA] OOP Design — Design a Flaky Test Detector for Google

In the world of CI/CD, identifying flaky tests is crucial for maintaining the reliability of Google services. A systematic approach to detect and flag such tests will enhance productivity.
Problem Statement: Design a FlakyTestDetector class to analyze test runs and identify flaky tests based on certain run results. You must define specific methods for logging results and for flagging flaky tests.
- log_test_run(test_id: str, result: bool) -> None: Logs the result of a test run.
- get_flaky_tests() -> List[str]: Returns a list of tests identified as flaky.
Example 1:
Input: log_test_run('test1', True)
Input: log_test_run('test1', False)
Input: get_flaky_tests()
Output: ['test1']
Explanation: The test has inconsistent results, marking it as flaky.
Constraints:
- 1 <= number of test runs <= 10000
- Test identifiers are unique strings.

Related Google QA Engineer interview prep

Start practicing Google questions

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

Get Started Free