47 practice questions for Airbnb QA Engineer interviews
Airbnb QA engineer interviews test automation frameworks, test strategy, CI integration, performance testing, and debugging complex multi-service systems.
Category: Graph coding problemYou are helping users find the most cost-effective way to get all the services they want for their rental property. You are given: - A list of...Input: Graph (nodes and edges) Output: Computed result
codingHardVerified Question#2
2. Best Ski Route
Category: Graph coding problem# Question You are skiing down from the top of a mountain and want to maximize your score when you reach the finish. There are multiple routes you...Input: Graph (nodes and edges) Output: Computed result
codingMediumVerified Question#3
3. Design A Queue
Category: Array coding problemDesign a queue data structure that mimics memory allocation patterns. The queue must store elements in fixed-size blocks (arrays), where each...Input: Array Output: Computed result
codingHardVerified Question#4
4. Menu Order Equaling Target Sum
Category: Algorithm coding problemYou are given a menu containing prices of individual items. Given a target amount of money, find all possible combinations of menu items that...Input: Integer(s) Output: Integer
codingHardVerified Question#5
5. Most Cost Effective Menu Order
Category: Dynamic programming coding problemYou are building an app that helps users determine the most cost-effective order they can place at a restaurant for the food items they want. You...Input: List Output: Computed result
codingMediumVerified Question#6
6. Best Way To Split Stay
Category: Graph coding problemYou are building a property recommendation system for vacation rentals. Given a list of available properties, you need to find the optimal...Input: Graph (nodes and edges) Output: Integer
codingMediumVerified Question#7
7. Maximize Task Points
Category: Algorithm coding problemYou are given a set of tasks, each with a deadline and a reward (profit) for completing it. Each task takes exactly one day to complete, and only...Input: Given input Output: Computed result
codingHardVerified Question#8
8. Collatz Sequence
Category: Algorithm coding problemThe Collatz conjecture is a famous unsolved problem in mathematics. For any positive integer n, the sequence is defined as follows: - If n is...Input: Integer(s) Output: Computed result
codingMediumVerified Question#9
9. Shortest Maze Path
Category: Grid/matrix coding problem# Question You are in a maze that is represented as a grid of cells, where each cell is either empty (O) or blocked (X). You can move up, down,...Input: 2D grid Output:** Integer
codingHardVerified Question#10
10. Implement Refunds
Category: Algorithm coding problem# Question AirBnB has a need to support refunds for our customers in case of booking changes or cancellations.Input: List Output: Array
codingHardsliding window#1
1. [OA] Sliding Window — Implement a URL status code logger for Airbnb's API health check
Airbnb needs a mechanism to report the most recent URLs that have generated certain status codes quickly.You are tasked with implementing a log manager based on a sliding window that can keep track of the last K status codes returned by the API endpoints.- def record_status(self, url: str, status_code: int) -> None: Records the status code for the corresponding URL. - def get_recent_status(self, url: str, K: int) -> List[int]: Retrieves the last K status codes for the provided URL.Example 1: Input: record_status('http://airbnb.com', 200) Input: get_recent_status('http://airbnb.com', 1) Output: [200] Explanation: The last status code for the URL is 200. Example 2: Input: record_status('http://airbnb.com', 500) Input: record_status('http://airbnb.com', 404) Input: get_recent_status('http://airbnb.com', 2) Output: [500, 404] Explanation: Returns the last two status codes recorded for this URL.Constraints: - 1 <= K <= 100 - 1 <= status_code <= 599 - The URL string is at most 100 characters long.
codingMediumtree#2
2. [OA] Tree Traversal — Implement a solution for Airbnb's user booking flow validation
Airbnb needs to ensure that a user's booking flow is correctly validated against the current state of available listings.Given a binary tree where each node represents a booking in a timeline of user actions, write a method that traverses the tree to validate the actions taken by the user.- def validate_booking_flow(self, root: Optional[TreeNode]) -> bool:: Returns True if the booking process is valid, False otherwise.Example 1: Input: root = [2,1,3] Output: True Explanation: The booking sequence is valid as it follows the ordering of node values. Example 2: Input: root = [5,1,4,null,null,3,6] Output: False Explanation: The booking sequence is invalid due to the left child being greater than the parent.Constraints: - 0 <= number of nodes <= 1000 - -10^5 <= node.val <= 10^5
system designSeniortesting#3
3. [OA] Design a Flaky Test Detector for Airbnb's CI system
Airbnb's continuous integration (CI) system must accurately report flaky tests that can lead to unreliable build statuses. You need to design a system to track test results over multiple runs to identify flaky behavior.- def report_result(self, test_name: str, result: bool) -> None: Records the result of a test run. - def is_flaky(self, test_name: str) -> bool: Returns True if the test has shown flaky results, False otherwise.Example 1: Input: report_result('login_test', True) Input: report_result('login_test', False) Input: is_flaky('login_test') Output: True Explanation: The test passed and failed, indicating flakiness. Example 2: Input: report_result('search_test', True) Input: is_flaky('search_test') Output: False Explanation: The test has only passed once and is not flaky.Constraints: - At most 1000 different test names. - The system maintains results for up to 50 runs per test.