View all services
Talk to QA Advisor
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.

30questions/4experience levels/8topics/Freedownload, no sign-up

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 role

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 role

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 role

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-levelCoding

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-levelCoding

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-levelCoding

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.

Q7SeniorCoding

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-levelCoding

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 structures

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 structures

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 structures

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 design

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 design

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 design

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 design

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 design

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 design

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 design

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 & DevOps

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 & DevOps

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 & DevOps

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 strategy

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 strategy

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 strategy

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-levelCollaboration

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.

Q26SeniorCollaboration

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.

Q27LeadCollaboration

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-levelCollaboration

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 role

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

Where Interviews Are Won

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.

Who Wrote This

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 wrong

Hiring 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 engineers

Sources

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.

Talk to QA Advisor