Stripe logo

Stripe QA Engineer System Design Questions

47 practice questions for Stripe QA Engineer interviews

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

system design Hard api design #1

1. [OA] Flaky Test Detector — Implement a system to identify flaky tests in Stripe's CI pipeline

To maintain the reliability of our software, identifying tests that intermittently fail is crucial. Stripe needs a system that can intelligently analyze test outcomes to flag flaky tests.
Problem statement: Design a system that collects test run results over time, analyzes patterns, and flags tests with inconsistent results.
- class FlakyTestDetector: The main class for detecting flaky tests.
- def __init__(self) -> None: Initializes the detector with a history of test results.
- def add_run(self, test_id: str, result: bool) -> None: Adds a test run result to the history.
- def find_flaky_tests(self) -> List[str]: Identifies and returns a list of flaky test IDs.
Example 1:
Input: detector = FlakyTestDetector()
Output: None
Explanation: Initializes a Flaky Test Detector.
Example 2:
Input: detector.add_run('test1', True)
Output: None
Explanation: Records the result of a test run.
Constraints:
- 1 <= number of runs <= 10^5
system design Hard api design #2

2. [OA] Test Result Aggregator — Design a system for collecting and reporting test results from Stripe's CI

As part of Stripe's commitment to quality, capturing and aggregating test results efficiently is vital to monitor the health of our deployments.
Problem statement: Design a system that collects test results from multiple sources, aggregates them, and provides an interface to access the aggregated data.
- class TestResultAggregator: The main class for managing test results.
- def __init__(self) -> None: Initializes the aggregator.
- def add_result(self, result: TestResult) -> None: Adds a new test result to the aggregator.
- def get_summary(self) -> Summary: Returns an overview of the results collected.
Example 1:
Input: aggregator = TestResultAggregator()
Output: None
Explanation: Initializes a new test result aggregator.
Example 2:
Input: aggregator.add_result(TestResult(1, True))
Output: None
Explanation: Adds the test result to the aggregator.
Constraints:
- 1 <= number of results <= 10^6

Related Stripe QA Engineer interview prep

Start practicing Stripe questions

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

Get Started Free