Airbnb logo

Airbnb QA Engineer Interview Questions

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.

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
coding Hard Verified Question #1

1. Best Service For Rental Properties


Category: Graph coding problem
You 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
coding Hard Verified 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
coding Medium Verified Question #3

3. Design A Queue


Category: Array coding problem
Design 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
coding Hard Verified Question #4

4. Menu Order Equaling Target Sum


Category: Algorithm coding problem
You 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
coding Hard Verified Question #5

5. Most Cost Effective Menu Order


Category: Dynamic programming coding problem
You 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
coding Medium Verified Question #6

6. Best Way To Split Stay


Category: Graph coding problem
You 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
coding Medium Verified Question #7

7. Maximize Task Points


Category: Algorithm coding problem
You 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
coding Hard Verified Question #8

8. Collatz Sequence


Category: Algorithm coding problem
The 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
coding Medium Verified 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
coding Hard Verified 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
coding Hard sliding 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.
coding Medium tree #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 design Senior testing #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.

Related Airbnb QA Engineer interview prep

Start practicing Airbnb questions

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

Get Started Free