Browse the Knowledge Hub32 resources
Question Bank
30 SDET interview questions with model answers
The role itself, coding and data structures applied to test problems, framework and system design, CI/CD and containers, testability and quality strategy. Every question states what the interviewer is assessing, a model answer at the right depth, the likely follow-up, and the mistake that costs candidates the round.
All 30 questions, with model answers
Filter by level or topic, search the full text, and download the whole bank to revise offline.
Last updated
Experience level
Topic
Showing 30 of 30 questions
Q1FresherThe roleWhat is an SDET and how does the role differ from a QA engineer?
What is an SDET and how does the role differ from a QA engineer?
What they are assessing
Whether you understand the role you are applying for.
Model answer
An SDET is a software engineer whose product is quality: they write production-grade code, but the code builds test frameworks, tooling, harnesses and infrastructure rather than user-facing features. Compared with a QA engineer, the emphasis shifts from executing and designing tests toward building the systems that make testing possible at scale, and an SDET is typically expected to read and contribute to application code, review pull requests and own CI pipelines. The overlap is real, and the distinction varies by company, so I would ask what the role actually involves rather than assume the title means the same everywhere.
Likely follow-up
So is an SDET a developer or a tester?
Q2Mid-levelThe roleShould an SDET write production code?
Should an SDET write production code?
What they are assessing
Awareness of a genuine industry debate rather than a memorised position.
Model answer
Practice varies, and both models work. Where SDETs contribute to production code, usually testability improvements, instrumentation or small fixes, the benefit is deep product knowledge and credibility with the development team. Where they do not, the argument is independence and focus on tooling. My own view is that reading production code is non-negotiable for the role, because you cannot design good tests or diagnose failures without it, while writing it is a team-by-team decision. What I would avoid is the arrangement where an SDET is expected to own feature delivery and quality at the same time, since quality always loses under deadline pressure.
Q3FresherThe roleWhat does a typical week look like for an SDET?
What does a typical week look like for an SDET?
What they are assessing
Whether you have a realistic picture rather than an idealised one.
Model answer
A realistic split is roughly a third building and improving framework and tooling, a third writing and reviewing tests including reviewing developer-written tests, and a third on operational work: triaging pipeline failures, investigating flakiness, improving CI speed and unblocking others. Design discussions and testability input at refinement sit across all of it. The part candidates underestimate is failure triage, because a suite of any size generates a steady stream of failures that need diagnosing as product bug, test bug or infrastructure, and doing that well is much of the daily value.
Q4Mid-levelCodingWrite a function to check whether a string is a palindrome, and tell me how you would test it.
Write a function to check whether a string is a palindrome, and tell me how you would test it.
What they are assessing
Basic coding plus, more importantly, how you think about testing your own code.
Model answer
The implementation is straightforward: normalise the input by lowercasing and stripping non-alphanumeric characters, then compare against its reverse, or walk two pointers inward for an in-place check without allocating. The part interviewers actually care about is the test design: empty string, single character, even and odd length palindromes, non-palindromes, mixed case, punctuation and spaces, unicode and accented characters, and null or undefined input. Stating the ambiguity out loud, such as whether spaces and punctuation should be ignored, scores better than silently picking one behaviour.
Likely follow-up
How would you handle unicode characters where reversing bytes is not the same as reversing characters?
Trap to avoid
Producing correct code and stopping there. In an SDET round the test cases matter at least as much as the implementation.
Q5Mid-levelCodingHow would you find duplicate entries in a large list?
How would you find duplicate entries in a large list?
What they are assessing
Complexity awareness and a practical eye for scale.
Model answer
The straightforward approach uses a hash set: iterate once, adding each item and recording anything already present, which is O(n) time and O(n) space. Sorting first and scanning adjacent pairs is O(n log n) time with O(1) extra space if sorting in place, which matters when memory is the constraint. If the list is too large for memory, you partition by hash into buckets and process each separately, or use an approximate structure like a Bloom filter when a small false-positive rate is acceptable. I would ask about data volume and whether exact results are required before choosing.
Q6Mid-levelCodingWrite code to count word frequency in a text and return the top N.
Write code to count word frequency in a text and return the top N.
What they are assessing
Common coding task, and whether you consider edge cases in text processing.
Model answer
Normalise case, split on non-word characters rather than plain spaces so punctuation is handled, count into a hash map, then select the top N. Sorting the whole map is O(m log m); using a min-heap of size N is O(m log N), which matters when the vocabulary is large and N is small. Edge cases worth raising: empty input, ties at the boundary of the top N and how to break them deterministically, hyphenated and apostrophised words, stop words if they should be excluded, and non-Latin scripts where splitting on whitespace is not enough.
Q7SeniorCodingHow do you write a reliable polling or retry helper?
How do you write a reliable polling or retry helper?
What they are assessing
A genuinely SDET-flavoured coding problem, since this shows up in every framework.
Model answer
The helper takes a condition function, a timeout, a polling interval and optionally a set of exception types to swallow, then loops until the condition is true or the deadline passes, returning the result or throwing with a useful message that includes what was being waited for and for how long. Details that separate good from bad: use a monotonic clock rather than wall clock, apply backoff rather than a tight loop, cap the total wait, do not swallow unexpected exception types, and make the failure message diagnostic. For retries specifically, distinguish retryable failures such as network timeouts from deterministic ones such as an assertion failure, because retrying the latter just wastes time and hides a real result.
Likely follow-up
How would you make it work for both synchronous and asynchronous conditions?
Q8Mid-levelCodingHow would you programmatically generate realistic test data?
How would you programmatically generate realistic test data?
What they are assessing
A practical SDET responsibility.
Model answer
Use a faker-style library for names, addresses and emails, seeded so runs are reproducible when you need to debug a failure. Wrap it in builders that produce valid domain objects with sensible defaults and allow overriding just the field a test cares about, which keeps tests readable. Generate unique values for anything unique-constrained, usually with a run identifier so parallel workers never collide. For edge-case coverage, add deliberate generators for boundary values, unicode, very long strings and empty inputs, rather than relying on random data to eventually produce them.
Q9Mid-levelData structuresWhich data structures do you actually use in test framework code?
Which data structures do you actually use in test framework code?
What they are assessing
Whether your data structure knowledge is applied or purely academic.
Model answer
Hash maps constantly: configuration, test data keyed by scenario, caching resolved values, deduplication. Sets for uniqueness checks and comparing expected against actual collections. Lists for ordered results and parameterised data. Queues for producer and consumer patterns in parallel execution and for polling work. Occasionally a tree or nested map for hierarchical config and for comparing nested JSON structures. The heavy algorithmic structures rarely appear; what matters more is choosing the right one for lookup cost and knowing that comparing two large lists naively is quadratic when a set makes it linear.
Q10SeniorData structuresHow would you compare two large JSON responses and report meaningful differences?
How would you compare two large JSON responses and report meaningful differences?
What they are assessing
A real SDET problem that requires more thought than it first appears.
Model answer
Recursive comparison walking both structures, collecting a list of differences with the JSON path, expected value and actual value, rather than failing on the first mismatch, so one run tells you everything that changed. Practical requirements: order-insensitive comparison for arrays where order is not part of the contract, configurable ignore paths for volatile fields such as timestamps and generated identifiers, tolerance for floating point, and type-aware comparison so a numeric 1 and string "1" are reported as a type difference rather than silently equal. Output has to be readable, because a thousand-line diff nobody can parse is no better than a single boolean.
Likely follow-up
How would you decide whether array order should matter?
Q11Mid-levelData structuresWhat is the time complexity of your test suite lookup logic, and does it matter?
What is the time complexity of your test suite lookup logic, and does it matter?
What they are assessing
Whether you apply engineering judgement proportionally rather than optimising everything.
Model answer
Usually it does not matter, because test framework code operates on small collections where the constant factors dominate and readability is worth more than complexity. Where it does matter is at scale: comparing large result sets, deduplicating thousands of records, or anything inside a loop that runs per test across a large suite, where an accidental quadratic turns a fast helper into the bottleneck. The honest answer is that I optimise when profiling shows a problem, and otherwise favour clarity, but I avoid obviously quadratic patterns like nested list scans when a set is available.
Q12SeniorFramework designDesign a test automation framework from scratch. Walk me through it.
Design a test automation framework from scratch. Walk me through it.
What they are assessing
The core SDET design question.
Model answer
Layers with clear responsibilities. A driver or client layer creating and disposing browsers and HTTP clients, thread-safe and configured per environment. An object layer of page objects and service clients holding locators and low-level calls. A workflow layer composing those into reusable business journeys. A test layer holding only intent and assertions. Cross-cutting: externalised configuration, test data builders, a wait and retry utility, structured logging, and reporting with failure artefacts. Then CI integration with tiered suites. The design principle I hold to is that a test reads as behaviour, and that any change in the UI or API is absorbed in exactly one place.
Likely follow-up
How would you evolve that design if the company moved to microservices?
Q13SeniorFramework designHow do you design a framework that supports UI, API and mobile testing together?
How do you design a framework that supports UI, API and mobile testing together?
What they are assessing
Whether you can generalise without over-abstracting.
Model answer
Share what is genuinely common and keep the rest separate. Configuration, test data builders, reporting, logging, assertion helpers and CI integration are shared. The interaction layers stay distinct, because a page object and an API client have different shapes and forcing a common abstraction over them produces awkward indirection that helps nobody. Tests should be able to mix layers freely, for example setting up through the API then verifying in the UI, which is the main practical benefit of one framework rather than three. The failure mode to avoid is a universal base class everything inherits from, which becomes a bottleneck every change has to pass through.
Q14Mid-levelFramework designHow do you handle secrets and credentials in a test framework?
How do you handle secrets and credentials in a test framework?
What they are assessing
Security hygiene, which interviewers check because it is commonly done badly.
Model answer
Nothing sensitive in the repository, ever, including in example config files that get copied. Secrets come from the CI secret store or a vault, injected as environment variables at runtime. Local development uses an untracked env file with a committed template listing the required keys but no values. Test accounts should be dedicated to testing, non-production, and low privilege. And the framework must not log credentials or tokens, which means sanitising request logging, because verbose HTTP logging is the most common way tokens end up in a CI log that everyone can read.
Trap to avoid
Saying you store credentials in a config file in the repo because it is only a test environment. Interviewers treat that as a red flag regardless of environment.
Q15SeniorFramework designHow would you build a framework that other teams can adopt?
How would you build a framework that other teams can adopt?
What they are assessing
Thinking about your framework as a product with users.
Model answer
Treat it as an internal product. Package and version it so teams consume a released library rather than copying code, with semantic versioning and a changelog so upgrades are predictable. Provide sensible defaults so the common case needs almost no configuration, with escape hatches for the unusual. Write real documentation and a starter template that runs out of the box. Take feedback and issues like any product would. And keep the API small, because every public method is a commitment you will have to support across every consuming team, which is a lesson most people learn by breaking someone else pipeline.
Q16SeniorSystem designHow would you design a test infrastructure for a team running fifty deploys a day?
How would you design a test infrastructure for a team running fifty deploys a day?
What they are assessing
Infrastructure-level thinking at high release cadence.
Model answer
The constraint is feedback time, so the pipeline has to be tiered aggressively: unit tests in seconds on every commit, fast API and smoke tests as the merge gate in a few minutes, deeper suites running post-merge and on a schedule. Ephemeral environments per branch so runs do not contend, provisioned from infrastructure as code. Parallel execution and sharding to keep wall-clock time flat as the suite grows. Then production-side safety, because at that cadence you cannot pre-verify everything: feature flags, canary releases, monitoring with automated rollback, and synthetic checks on critical journeys. Testing in production stops being a dirty phrase at this cadence and becomes part of the strategy.
Likely follow-up
What would you monitor to know a deploy went wrong?
Q17SeniorSystem designHow do you test a microservices architecture?
How do you test a microservices architecture?
What they are assessing
Whether you can avoid the trap of end-to-end testing everything.
Model answer
Push verification to the lowest layer that can answer the question. Unit and component tests within each service. Contract tests between consumer and provider pairs, so a breaking change fails the provider pipeline rather than being discovered in a shared environment. Integration tests for a service against its real dependencies where feasible, using containers. Then a deliberately small set of end-to-end journeys covering the critical business flows only, because full end-to-end coverage across many services is slow, flaky and impossible to keep stable. Add observability and synthetic monitoring in production to cover what pre-release testing structurally cannot.
Trap to avoid
Proposing a large end-to-end suite covering every service interaction. It is the classic answer that does not survive contact with a real microservices estate.
Q18LeadSystem designHow would you design a test result and reporting system for a large organisation?
How would you design a test result and reporting system for a large organisation?
What they are assessing
Data and platform thinking beyond a single suite.
Model answer
Standardise on a common result format across teams, typically JUnit XML plus a richer structured payload, published to a central store rather than living in each pipeline. Store per-test history, not just per-run status, because flake detection and trend analysis need history. Surface the things people act on: flake rate per test, duration trends, failure clustering by root cause, and coverage of critical paths. Attach artefacts, traces, screenshots and logs, so triage happens from the report. And keep the ingestion path simple, because if publishing results is hard, teams will skip it and the system will be incomplete and therefore untrusted.
Q19Mid-levelCI/CD & DevOpsHow comfortable are you with Docker, and how does it apply to testing?
How comfortable are you with Docker, and how does it apply to testing?
What they are assessing
Infrastructure literacy, which is now a baseline expectation for SDETs.
Model answer
Containers solve the works-on-my-machine problem for test execution: the runner image pins the browser, driver, language runtime and system dependencies, so local and CI behave identically. They also let you stand up real dependencies for integration testing, a database or a message broker per run rather than sharing a fixed instance, with Testcontainers making that pattern easy from test code. Docker Compose is useful for bringing up a small set of services together. The practical benefits are reproducibility and isolation, which between them remove a large share of intermittent CI failures.
Q20SeniorCI/CD & DevOpsHow would you reduce a pipeline that takes ninety minutes?
How would you reduce a pipeline that takes ninety minutes?
What they are assessing
Practical optimisation with correct priorities.
Model answer
Measure first to find where the time actually goes, since teams usually guess wrong. Then in order: move coverage down the pyramid, because a UI test replaced by an API test is a large win; parallelise and shard; tier the pipeline so only fast, reliable tests gate commits and the rest run post-merge; cache dependencies and build artefacts; remove redundant tests that duplicate lower-layer coverage; and speed up environment provisioning, which is often a bigger share than the tests themselves. Adding hardware is the last resort, because paying to run an inefficient suite faster leaves the inefficiency in place.
Likely follow-up
Which of those usually gives the biggest single win?
Q21Mid-levelCI/CD & DevOpsWhat is the difference between continuous integration, delivery and deployment?
What is the difference between continuous integration, delivery and deployment?
What they are assessing
Vocabulary that SDETs are expected to have precisely.
Model answer
Continuous integration is merging to a shared main branch frequently with automated build and test on every change. Continuous delivery extends that so every passing build is releasable and deploying is a business decision requiring a button press. Continuous deployment goes further and releases every passing build to production automatically with no manual gate. The testing implication is the important part: continuous deployment demands very high confidence in the automated suite plus strong production safety nets, because there is no human checkpoint to catch what the tests missed.
Q22SeniorQuality strategyWhat is testability, and how do you improve it?
What is testability, and how do you improve it?
What they are assessing
Whether you influence design rather than only testing what you are given.
Model answer
Testability is how easily a system can be verified: how observable its state is, how controllable its inputs and dependencies are, and how isolatable its components are. Improving it is mostly a design conversation held early: stable test attributes in the UI, APIs that expose the state tests need to assert on, dependency injection so collaborators can be substituted, feature flags that can be set programmatically, seams for stubbing third parties, deterministic time and randomness, and logs and metrics that make failures diagnosable. An SDET who raises testability at design time prevents more pain than one who writes clever workarounds afterwards.
Likely follow-up
Give an example of a design change that made testing dramatically easier.
Q23SeniorQuality strategyHow do you decide the right mix of unit, integration and end-to-end tests?
How do you decide the right mix of unit, integration and end-to-end tests?
What they are assessing
Whether you reason from risk and cost rather than a fixed ratio.
Model answer
I start from risk and cost of feedback rather than a prescribed ratio, because the right shape differs by system. Logic-heavy services want most coverage at unit level. Integration-heavy systems, where the logic is largely orchestration, get more value from contract and integration tests, since unit tests of glue code mostly assert that mocks were called. Complex user journeys need a small number of end-to-end tests regardless. The check I apply is whether a failure at each layer tells you something the layer below could not, and whether the suite is fast enough that people actually run it.
Q24LeadQuality strategyHow do you measure quality in a way leadership finds meaningful?
How do you measure quality in a way leadership finds meaningful?
What they are assessing
Translating engineering signals into business terms.
Model answer
Leadership cares about outcomes, not test counts. The measures that translate are escaped defects reaching production and their severity, incident frequency and mean time to recovery, change failure rate, and lead time from commit to production, which map to the DORA metrics they may already track. Alongside those, customer-facing signals such as support tickets attributable to defects. What I avoid presenting as quality measures are test counts, percentage automated and raw code coverage, because they are inputs rather than outcomes and they are all easy to move without improving anything real.
Q25Mid-levelCollaborationHow do you review a developer test, and what do you look for?
How do you review a developer test, and what do you look for?
What they are assessing
Whether you can raise the bar across the team rather than only in your own code.
Model answer
I check that the test actually asserts something meaningful rather than only executing code, that it fails for the right reason if I mentally break the implementation, and that the assertion message would tell someone what went wrong. Then: is it at the right layer, is it independent of other tests and of execution order, does it use fixed sleeps or shared mutable data, and does the name describe the behaviour rather than the method under test. I try to give the reasoning rather than just the correction, because the goal is that the next test does not need the same comment.
Q26SeniorCollaborationA developer says your test is flaky and it is not their problem. How do you respond?
A developer says your test is flaky and it is not their problem. How do you respond?
What they are assessing
Handling friction with evidence rather than defensiveness.
Model answer
I would investigate before arguing, because they are often right and finding that out quickly costs less than a debate. If it is a test problem I fix it and say so plainly, which buys credibility for the times it is not. If the evidence shows an intermittent product defect, I bring the data rather than the opinion: reproduction rate, traces, logs and timing, framed around the user impact rather than who is at fault. The framing that works is that we both want a trustworthy signal, since a suite nobody believes hurts them as much as it hurts me.
Q27LeadCollaborationHow do you influence quality when you have no authority over the teams?
How do you influence quality when you have no authority over the teams?
What they are assessing
Influence without power, a core senior and lead skill.
Model answer
Make the right thing the easy thing. Give teams tooling that removes friction, templates and libraries so the good path is the fast path, and pipelines where quality gates are already wired up. Bring evidence rather than opinions: escaped defect data by team and area is far more persuasive than advocacy. Find allies, usually one tech lead willing to try something, and let a visible success spread rather than mandating a standard nobody asked for. And pick a small number of battles, because an SDET who objects to everything gets tuned out, while one who is right about the few things they escalate gets listened to.
Likely follow-up
Give an example of a time you changed a team practice without authority.
Q28Mid-levelCollaborationHow do you keep up with tooling changes in this space?
How do you keep up with tooling changes in this space?
What they are assessing
Investment in the craft, with specifics separating real answers from filler.
Model answer
Name actual sources and, more importantly, a concrete recent example: a tool you evaluated on a side project, a framework feature you adopted and what it changed, a talk or paper that shifted how you approach something. For me the useful habit is running a small spike whenever a tool claims to solve a problem we actually have, because reading about a tool tells you what it promises and using it tells you where it breaks. Vague answers about reading blogs land as filler, so it is worth having one specific story prepared.
Q29SeniorThe roleWhere do you see the SDET role going with AI-assisted tooling?
Where do you see the SDET role going with AI-assisted tooling?
What they are assessing
Forward thinking and realism, increasingly asked in 2026 interviews.
Model answer
AI tooling is genuinely good at generating first-draft tests, suggesting locators, summarising failures and reducing boilerplate, which removes a chunk of the mechanical work. What it does not do well is decide what is worth testing, judge risk, design a framework that fits a specific organisation, or determine whether a failure is a product bug or a test bug. So the role shifts toward the judgement end: more design, more risk reasoning, more reviewing generated output critically. The risk I would flag is teams generating large volumes of shallow tests because it is now cheap, which increases maintenance cost without increasing confidence.
Trap to avoid
Either dismissing AI tooling entirely or claiming it will replace the role. Both read as not having actually used it.
Q30FresherThe roleWhat questions would you ask us about the SDET role?
What questions would you ask us about the SDET role?
What they are assessing
Preparation, and whether you evaluate the employer.
Model answer
Ask what reveals how quality actually works there: what the ratio of SDETs to developers is, who owns the pipeline and who fixes it when it breaks, how much of the suite is trusted enough to gate a release, whether SDETs contribute to production code, what escaped to production last quarter and what changed as a result, and how flaky tests are handled. The answers tell you whether the role is genuine engineering ownership or a testing role with a better title, which is a distinction worth knowing before you accept.
What SDET interviews actually probe
SDET rounds test engineering ability and quality judgement together. Being strong at one and weak at the other is the usual reason candidates fail.
Code, then test your code
Solving the coding problem is half the answer. Interviewers are listening for how you would test what you just wrote, and most candidates forget to say.
Framework design under scrutiny
Expect to sketch layers on a whiteboard and defend where driver management, test data and configuration live.
Infrastructure is expected now
Docker, pipelines and ephemeral environments are baseline rather than bonus for SDET roles in 2026.
Testability and influence
Senior rounds move to shaping design for testability and improving quality across teams you do not manage.
Written by engineers who hire for this role
This bank was written and reviewed by QAble engineers who build test frameworks and tooling on client products and who interview SDET candidates. The answers reflect what we listen for: whether someone can write working code and immediately articulate how they would test it, reason about which layer a test belongs at, and talk about testability as a design concern rather than something they inherit.
It also covers the parts of the role candidates underestimate, particularly failure triage and influencing teams you have no authority over. If you think an answer here is wrong, we would genuinely like to hear it.
Tell us what we got wrongHiring SDETs?
QAble provides engineers who build test frameworks, tooling and CI pipelines, not just test executors, so you can add quality engineering capacity without a hiring cycle.
Hire QA engineersMore question banks
View allManual testing interview questions
Question bank65 questions across fundamentals, test design, defect management, agile, scenarios and lead-level strategy, with model answers and follow-ups.Selenium interview questions
Question bank50 questions across WebDriver architecture, locators, waits and flakiness, interactions, framework design, Grid and CI, with model answers and follow-ups.Playwright interview questions
Question bank34 questions across architecture, locators, auto-waiting, assertions, fixtures, network mocking, tracing and parallelism.API testing interview questions
Question bank42 questions across HTTP semantics, schema validation, authentication, API security, tooling, contract testing and performance.Automation testing interview questions
Question bank30 tool-agnostic questions on what to automate, framework design, flakiness, CI/CD, test data, metrics and ROI.Sources
- ISTQB Glossary standard definitions for the testing terms used here.
Hiring SDETs, or need the engineering done for you?
QAble builds test frameworks, tooling and pipelines with ISTQB-certified engineers. Start with a free QA audit of your product.