45 practice questions for Microsoft QA Engineer interviews
Microsoft QA engineer interviews test automation frameworks, test strategy, CI integration, performance testing, and debugging complex multi-service systems.
Category: Sliding window coding problem# Design Rate Limiter Design a rate limiter system that controls the number of requests allowed within a specified time window. The rate limiter is...Input: String Output: Computed result
Category: Trie-based coding problemInput: String Output: Computed result
codingMediumVerified Question#3
3. Object Oriented Design - Notification Service
Category: Trie-based coding problem# Problem Statement Design a notification service that supports sending notifications through multiple channels (SMS, Email) and is architected to...Input: Number(s) Output: Computed result
codingMediumVerified Question#4
4. Shortest Substring with N Unique Characters
Category: String coding problem# Shortest Substring with N Unique Characters *This is a variation of the leetcode problem* Given a string s and an integer n, find the length of...Input: String Output: Computed result
codingHardVerified Question#5
5. Rate Limiter
Category: Sliding window coding problemDesign a rate limiter that tracks API requests per client and enforces limits using a sliding time window. Your system must support: - hit(key,...Input: Given input Output:** Computed result
codingHardVerified Question#6
6. Non-Adjacent Team Selection
Category: Tree coding problem# Question You are given n people labeled from 0 to n - 1. Some pairs of people know each other directly. These relationships are given as a...Input: List Output: Computed result
codingMediumVerified Question#7
7. Bounded Repeat Substring
Category: String coding problemA sensor data stream is represented as a string of characters. A contiguous segment of the stream is considered valid if it contains no three...Input: String Output: Computed result
codingMediumVerified Question#8
8. OA [CodeSignal] Prime Jumps
Category: Algorithm coding problem# OA [CodeSignal] Prime Jumps A game is played with the following rules: - A player starts at cell 0 with a score of 0. - There is a row of n cells...Input: Number(s) Output: Computed result
codingHardVerified Question#9
9. Combine N-ary Trees
Category: Tree coding problemYou are given the roots of two N-ary organization charts, each representing a hierarchical department structure. Every node has an integer...Input: List Output: Computed result
codingMediumVerified Question#10
10. Digit Replacement Maximizer
Category: String coding problemA numeric optimization system performs exactly k substitution operations on a number string s. In each operation, choose any digit in s that is...Input: String Output: Computed result
codingMediumVerified Question#11
11. Best Window For Target Count
Category: Trie-based coding problemA log analysis tool searches for the most frequent occurrence of a specific error code within a fixed-size window of log entries. Given an integer...Input: Array Output: Integer
codingMediumVerified Question#12
12. Evens Before Odds
Category: Array coding problemYou are given an integer array nums. Rearrange nums so that all even numbers appear before all odd numbers. The relative order of even or odd...Input: Array Output: Integer
system designHardVerified Question#13
13. Top 5 System Design Questions Jan 2026
Category: Interval-based system design problem# Top 5 Recently Asked System Design Questions - Microsoft These are the commonly asked system design questions from Microsoft interviews and some...Input: List Output: Computed result
codingHardbinary search#1
1. [OA] Binary Search — Search optimized test configuration in Azure DevOps
Microsoft Azure DevOps often requires efficient retrieval of test configurations from large databases. Your task is to implement a binary search to find a specific configuration given the testConfigs list sorted by name. Problem statement: You are provided with a list of test configurations containing name and settings. Return the settings of the configuration that matches the given name. If no configuration is found, return null. - Example class structure: - def findTestConfig(testConfigs: List[Tuple[str, Any]], name: str) -> Any: : Returns the settings associated with the specified test configuration name.Example 1: Input: findTestConfig([('configA', {'timeout': 30}), ('configB', {'timeout': 20})], 'configB') Output: {'timeout': 20} Explanation: The settings for 'configB' are returned.Constraints: - 1 <= testConfigs.length <= 10000` - Config names are unique. - Config names contain only lowercase letters.
codingHardsliding window#2
2. [OA] Sliding Window — Efficiently filter web app test results at Microsoft
To maintain the reliability of its web applications, Microsoft needs to process large sets of test results and identify patterns. Your task is to implement a sliding window solution that captures the latest test results within a given time frame and identifies any failures. Problem statement: You are given a list of test results in the format of timestamps and a timeFrame (in minutes). Your objective is to return a list of timestamps containing all test failures that occurred within each sliding window of the specified time frame. A failure is identified if the result is marked as 'fail'. - Example class structure: - def getFailures(testResults: List[Tuple[str, str]], timeFrame: int) -> List[str]: : Returns a list of failed test timestamps within the specified timeframe.Example 1: Input: getFailures([('2023-10-03T10:00:00', 'pass'), ('2023-10-03T10:05:00', 'fail'), ('2023-10-03T10:10:00', 'fail')], 10) Output: ['2023-10-03T10:05:00', '2023-10-03T10:10:00'] Explanation: The failures occurred within the last 10 minutes.Constraints: - 1 <= testResults.length <= 10000 - timeFrame > 0` - Timestamps are in ISO 8601 format.
system designSeniorapi design#3
3. [OA] Design a Load Test Orchestrator for Azure
In the cloud context of Microsoft Azure, orchestrating load tests is crucial for scaling applications effectively. Your task is to design a LoadTestOrchestrator that can distribute load across multiple services in a controlled manner. Problem statement: Create a class LoadTestOrchestrator that can manage multiple load test execution requests and dynamically distribute them to different services based on load balancing strategies. - Class structure: - def addTestRequest(serviceName: str, load: int) -> None: : Queues a load test request for execution with a specified load. - def executeTests() -> None: : Executes all queued load test requests and returns test results.Example 1: Input: orchestrator = LoadTestOrchestrator(); orchestrator.addTestRequest('serviceA', 50); orchestrator.addTestRequest('serviceB', 70); orchestrator.executeTests() Output: Example results showing load distribution across services. Explanation: The orchestrator should balance the load during execution.Constraints: - 1 <= serviceName.length <= 100 - 1 <= load <= 1000.
system designSeniorapi design#4
4. [OA] Design a Flaky Test Detector — Improve test reliability in Microsoft Teams
To maintain the reliability of Microsoft Teams, you need a system that can identify flaky tests that yield inconsistent results over time. Your task is to design a FlakyTestDetector that monitors test results and flags tests that exhibit flaky behavior. Problem statement: Design a class FlakyTestDetector containing methods to add test results and identify flaky tests based on a threshold of allowed failures. - Class structure: - def addTestResult(testName: str, result: str) -> None: : Adds a test result where result is either 'pass' or 'fail'. - def getFlakyTests(threshold: int) -> List[str]: : Returns a list of test names flagged as flaky if they exceed the given threshold of failures.Example 1: Input: detector = FlakyTestDetector(); detector.addTestResult('testA', 'fail'); detector.addTestResult('testA', 'pass'); detector.addTestResult('testA', 'fail'); detector.getFlakyTests(1) Output: ['testA'] Explanation: 'testA' failed twice out of the last three executions. It is considered flaky.Constraints: - 1 <= testName.length <= 100 - threshold > 0`.