Mitchell Agoma has sat on both sides of the SDET interview table — as a candidate being grilled on non-functional requirements at HMRC, the Ministry of Defence, Nationwide Building Society, and Accenture, and as the hiring manager evaluating candidates who froze when asked about response time percentiles. The pattern is universal: most SDETs prepare exhaustively for functional testing questions and treat non-functional testing as an afterthought. They can explain Playwright fixtures in their sleep but go blank when asked "What's the difference between P50 and P95 latency, and why does it matter for your tests?" They can write a Selenium Page Object Model from memory but have never heard of SAST versus DAST. This is not a knowledge gap — it's a preparation gap. And it's the gap that separates the SDET who gets the offer from the SDET who gets the "we'll be in touch."

Here is what most candidates don't understand: interviewers are not expecting you to be a performance engineer, a security specialist, and an accessibility expert. Unless you're applying for a dedicated performance testing role or a security-focussed SDET position, the non-functional testing questions are testing breadth, not depth. They are testing whether you think beyond the happy path — whether your testing mindset extends to how the system behaves, not just whether it functions. A candidate who can speak intelligently about response time percentiles, OWASP injection vectors, and keyboard navigation testing — even at a foundational level — signals that they are a complete engineer, not a script-writer. That distinction is worth thousands in salary negotiation.

This guide is not a deep-dive on each non-functional domain. We have dedicated posts for that: see our guides on security testing for QA interviews, k6 performance testing interview questions, and monitoring and observability for SDET interviews. Instead, this is the meta-guide — the guide to thinking about and answering non-functional testing questions in SDET interviews. It teaches you to recognise what the interviewer is actually evaluating, structure your answer to demonstrate breadth without overreaching, and turn a potential weakness into a strength. The SDET Interview Coach iOS app includes dedicated topic areas for non-functional testing, performance testing, and security testing — with AI-powered mock interviews that surface curveball NFR questions calibrated to your target seniority level.

What Interviewers Really Want When They Ask About Non-Functional Testing

Let's start with the most important meta-skill: understanding what the interviewer is actually evaluating. Most candidates hear "Tell me about your experience with non-functional testing" and panic — they think the interviewer expects deep expertise in load testing, penetration testing, accessibility auditing, and chaos engineering all at once. They don't. Here is what interviewers at each level are actually looking for:

🔑 The Interviewer's Actual Agenda — By Seniority Level

Junior SDET (0-2 years): Basic awareness. Can you name the main categories of non-functional testing? Do you understand that testing isn't just "does the button work" but also "how fast does the button work" and "is the button secure"? A Junior who can list performance, security, usability, reliability, and scalability as non-functional categories — and give a one-sentence definition of each — is already ahead of 70% of candidates at this level.

Mid-Level SDET (2-5 years): Practical experience with at least one non-functional domain. Have you ever run a performance test? Set up a security scan in CI? Written an accessibility test? You don't need all three — but you need at least one, with enough depth to discuss the tools, the metrics, and what you learned. The interviewer is checking whether your testing mindset extends beyond functional verification.

Senior SDET (5-8 years): Breadth across multiple domains plus the ability to advocate for NFR testing. At this level, you should be able to discuss trade-offs: "We prioritised performance testing over security scanning because our user base was complaining about page load times and we had a dedicated security team handling penetration testing. Here's the load testing framework we built, the thresholds we set, and how we integrated results into our definition of done." The interviewer is checking whether you think strategically about quality, not just tactically about tests.

Lead/Principal SDET (8+ years): NFR testing as organisational capability. At this level, the question isn't "have you done non-functional testing" but "how have you built non-functional testing into your team's DNA?" The interviewer wants to hear about NFR acceptance criteria in user stories, performance budgets enforced in CI, accessibility gates that block releases, chaos engineering programs you've championed, and how you've coached teams to think about the -ilities (reliability, scalability, maintainability, usability) from sprint zero, not as a pre-release checklist.

The most common mistake candidates make is answering the question they think they heard instead of the question that was asked. When an interviewer asks "What's your experience with security testing?" they are almost never asking "Are you a certified ethical hacker?" They are asking: "Do you think about security when you test? Do you know enough to raise a flag when something looks wrong? Can you collaborate with a security team?" Framing your answer accordingly — honest about your level, confident about your awareness, specific about what you have done — is more impressive than bluffing expertise you don't have.

⚠️ The Trap: "That's Not My Job"

The single worst answer to any non-functional testing question is some variation of "That's not really part of my role — we had a separate performance team for that" or "Security testing was handled by the InfoSec team." Even if that's factually true, it signals that you have a narrow view of your responsibilities and that you're comfortable delegating quality to other teams. The correct framing is: "In my previous role, we had a dedicated performance engineering team that owned the large-scale load testing. However, I made sure our functional tests included performance assertions — response time checks on critical API endpoints, page load time thresholds in our Playwright tests, and monitoring for N+1 query patterns that would degrade under load. I also participated in the performance team's triage sessions so I understood how our functional testing could surface performance regressions earlier." You've done non-functional testing — you just might not have called it that.

Performance Testing Fundamentals Every SDET Should Know

Performance testing is the most commonly tested non-functional domain in SDET interviews — and the one where candidates most often confuse terminology. You don't need to be a performance engineer, but you do need to understand the core concepts and be able to discuss them intelligently.

⏱️

Response Time and Latency

Response time is the total time from request to response — including network latency, server processing time, and payload serialisation. Latency is specifically the time the request spends waiting before processing begins. In SDET interviews, be precise: "The P95 response time for our checkout API was 850ms under load" is a strong answer. "It was pretty fast" is not. Interviewers want to see that you think in numbers, not adjectives. Know the common thresholds: <100ms is excellent for API responses, <200ms is good, <1s is acceptable for most user-facing operations, and >3s is where users start abandoning.

📊

Percentile Latencies — The P95 vs Average Trap

This is the single most important performance concept for SDET interviews. Average (mean) response time is a lie — it hides outliers. If 95 out of 100 requests complete in 100ms and 5 take 10 seconds, the average is ~595ms, which looks fine. But those 5 users had a terrible experience. The P95 (95th percentile) tells the real story: 95% of requests completed in X ms or less. Strong candidates know P50 (median), P95, and P99 — and can explain when each matters. P50 tells you the typical experience, P95 tells you about your worst reasonable users, and P99 tells you about your outliers. Interviewers light up when candidates volunteer: "I don't look at averages — I look at P95. Averages hide the users who are suffering."

🔄

Throughput and Concurrency

Throughput is requests per second (RPS) or transactions per second (TPS) that your system can handle. Concurrency is the number of simultaneous users or connections. The relationship is not linear — doubling concurrency doesn't double throughput, and beyond a saturation point, throughput plateaus while response times skyrocket. In interviews, be ready to discuss: "We ran a soak test at 500 concurrent users for 2 hours and observed that throughput stabilised at 1,200 RPS while P95 response time degraded from 200ms to 450ms after the first 30 minutes — indicating a memory leak in the connection pool that we escalated to the backend team." This level of specificity — concurrency, throughput, saturation behaviour, root cause hypothesis — is what separates mid-level from senior answers.

📈

Resource Utilisation and Bottlenecks

Performance testing isn't just about response times — it's about understanding why response times degrade. Strong candidates discuss CPU utilisation (sustained >80% is a red flag), memory consumption (is it growing over time? that's a leak), database connection pool saturation (are connections waiting?), garbage collection pauses (in JVM or .NET applications), and I/O bottlenecks (disk, network). In your interview answer, connect metrics to hypotheses: "We noticed CPU utilisation spiking to 95% during the load test while database query times remained flat — this pointed to an application-level bottleneck, not a database issue. We profiled the code and found an N+1 query in the product listing endpoint that was serialising the entire product catalogue into memory before filtering."

🗣️ Performance Testing Tools to Mention

You don't need to be an expert in all of these, but knowing what they are and when to use them demonstrates breadth: k6 (modern, developer-friendly, scriptable in JavaScript — ideal for SDETs integrating performance tests into CI), JMeter (the industry veteran, GUI-based but powerful, widely used in enterprise), Gatling (Scala-based, excellent for complex scenarios, strong reporting), Locust (Python-based, good for distributed testing), and Artillery (lightweight, Node.js-native, great for API load testing in CI pipelines). Mentioning that you'd choose k6 for a modern JavaScript/TypeScript shop because it integrates naturally with existing test infrastructure — while acknowledging JMeter's maturity for enterprise environments — shows situational awareness that interviewers value.

Security Testing Basics for SDETs

Security testing questions make SDETs nervous because security feels like a separate discipline — something for CISSP-certified specialists, not test automation engineers. But interviewers aren't testing for CISSP knowledge. They're testing whether you understand enough to be dangerous in the right way: aware of common vulnerabilities, capable of writing tests that catch them, and able to collaborate with security teams effectively.

🛡️

OWASP Top 10 Awareness

The Open Web Application Security Project (OWASP) Top 10 is the industry-standard list of the most critical web application security risks. You don't need to memorise all ten, but you should know the big ones: Injection (SQL, NoSQL, OS command injection — untrusted data sent to an interpreter), Broken Authentication (session management flaws, credential stuffing, weak password policies), Sensitive Data Exposure (unencrypted data in transit or at rest, weak cryptography), XML External Entities (XXE) (vulnerable XML processors), Broken Access Control (users acting outside their intended permissions), Security Misconfiguration (default credentials, verbose error messages, unnecessary features enabled), Cross-Site Scripting (XSS) (injecting malicious scripts into trusted websites), Insecure Deserialisation (tampering with serialised objects), Using Components with Known Vulnerabilities (outdated libraries), and Insufficient Logging and Monitoring (no audit trail for attacks). In an interview, being able to name five or six and explain how you'd test for two or three is a strong answer.

🔍

SAST vs DAST — Knowing the Difference

SAST (Static Application Security Testing) analyses source code or compiled code without executing it — think SonarQube, Checkmarx, or ESLint security plugins. It catches issues like hard-coded secrets, SQL injection patterns in code, and insecure cryptographic algorithms during development. DAST (Dynamic Application Security Testing) tests the running application from the outside — think OWASP ZAP, Burp Suite, or Netsparker. It catches runtime issues like XSS, CSRF, and misconfigured headers that only manifest when the app is live. The strong interviewee knows the difference and can say: "We integrated SAST into our CI pipeline — SonarQube scans on every pull request and blocks merges for critical and high-severity findings. For DAST, we run OWASP ZAP against our staging environment weekly and include findings in our sprint retrospectives. As an SDET, I also write automated security tests using libraries like OWASP ZAP's API or custom scripts that verify security headers, CORS policies, and authentication flows."

🔐

Authentication and Authorisation Testing

These are the security tests SDETs are most likely to automate. Authentication testing verifies that the system correctly identifies users: Are invalid credentials rejected? Does the system enforce password complexity requirements? Does it lock accounts after repeated failed attempts? Are session tokens invalidated on logout? Are JWT tokens properly signed and verified with appropriate expiry? Authorisation testing verifies that authenticated users can only access what they're supposed to: Can a regular user access admin endpoints by changing a URL? Can User A see User B's data by modifying an ID parameter (IDOR — Insecure Direct Object Reference)? Can a user with read-only permissions perform write operations? These are testable, automatable checks that demonstrate security awareness without requiring specialist tools.

🔒

Secure Data Handling in Tests

SDETs handle test data constantly — and security-aware SDETs handle it carefully. Interviewers appreciate candidates who mention: (1) No production data in test environments — use synthetic data or properly anonymised data. (2) No secrets in test code — API keys, database credentials, and auth tokens should come from environment variables or a secrets manager, never hard-coded. (3) Test data cleanup — PII (personally identifiable information) used in tests must be purged, not left lingering in test databases. (4) Encryption in transit — test clients should verify TLS certificates, not disable verification with insecure flags. One concise statement covers all of this: "All test credentials are stored in a vault, injected at runtime via CI environment variables, and rotated monthly. We use synthetic test data generated by factories — never production data — and our test teardown scripts purge all PII within 24 hours."

💡 The Security Question Cheat Sheet

When asked about security testing and you're not a specialist, use this framework: (1) Acknowledge the domain's importance — "Security testing is critical, especially in industries like finance and government where I've worked." (2) State your level honestly — "I'm not a dedicated security engineer, but here's what I've done..." (3) Describe specific practices — automated security header checks, OWASP ZAP scans in CI, authentication flow tests, SQL injection test cases for input fields. (4) Show collaboration — "I worked closely with our InfoSec team to understand their findings and translate them into automated regression tests." (5) Express growth — "I'm actively learning more about security testing, and the SDET Interview Coach app has been helpful for practising security testing interview questions."

Usability and Accessibility Testing Awareness

Accessibility and usability are often the forgotten non-functional requirements — until a lawsuit, a regulatory audit, or an interviewer asks about them. In 2026, with the European Accessibility Act enforcing compliance and companies increasingly facing accessibility litigation, this topic is appearing more frequently in SDET interviews. You need to be able to talk about it.

♿

WCAG Compliance Levels

The Web Content Accessibility Guidelines (WCAG) define three levels of conformance: Level A (minimum — the web page must satisfy these, e.g., no keyboard traps, non-text content has text alternatives), Level AA (mid-range — the target for most organisations, e.g., colour contrast ratio of at least 4.5:1, resizable text up to 200%, consistent navigation), and Level AAA (highest — not always achievable for all content, e.g., contrast ratio of 7:1, sign language interpretation for audio). Most organisations target WCAG 2.1 or 2.2 Level AA. In an interview, stating "Our team targeted WCAG 2.1 AA compliance" demonstrates awareness of the standard. Better: "We targeted WCAG 2.1 AA and I automated accessibility checks in our Playwright tests using axe-core, which catches ~57% of WCAG issues automatically."

🖥️

Screen Reader Testing

Screen readers are how visually impaired users interact with web applications — and they're surprisingly easy to incorporate into SDET testing. Know the major players: VoiceOver (built into macOS and iOS), NVDA (free, open-source, Windows), JAWS (commercial, Windows, most widely used in enterprise), and TalkBack (Android). In Playwright, you can test for accessible names and roles: await expect(page.getByRole('button', { name: 'Submit' })).toBeVisible() verifies that screen readers can find the button. Even better: discuss how you've used ARIA (Accessible Rich Internet Applications) attributes — aria-label, aria-describedby, role — to ensure dynamic content is accessible, and how you've written tests that fail when ARIA attributes are missing.

🎨

Colour Contrast and Visual Testing

Colour contrast is one of the most common accessibility failures — and one of the easiest to test. WCAG 2.1 AA requires a contrast ratio of at least 4.5:1 for normal text and 3:1 for large text. Tools like axe-core (integrates with Playwright via @axe-core/playwright), pa11y, and Lighthouse can automate contrast checks. In an interview: "We integrated axe-core into our Playwright test suite — it runs after every page navigation and reports accessibility violations as test failures. We specifically track colour contrast violations, missing alt text, and form label issues. Our CI pipeline blocks merges if any new critical or serious accessibility violations are introduced." Bonus points for mentioning that you also test with the prefers-reduced-motion media query and dark mode/high contrast modes.

⌨️

Keyboard Navigation Testing

Many users with motor disabilities navigate entirely by keyboard — and keyboard accessibility is required at WCAG Level A. Every interactive element must be reachable and operable via keyboard alone. Key things to test: Focus order (does Tab navigate in a logical sequence?), Focus visibility (is there a visible focus indicator?), Skip links (is there a "Skip to main content" link as the first focusable element?), No keyboard traps (can focus always move away?), and Keyboard-operated custom widgets (can a dropdown, modal, or date picker be operated with Enter, Escape, and arrow keys?). In Playwright: await page.keyboard.press('Tab') followed by await expect(page.locator(':focus')).toHaveAttribute('aria-label', 'Search') verifies keyboard focus lands where expected. The strongest candidates discuss how they built a keyboard navigation test suite that validates the entire Tab sequence of critical user flows.

🌍 The Business Case for Accessibility

The strongest interview answers connect accessibility to business outcomes, not just compliance. "We implemented automated accessibility testing not just because WCAG compliance is a regulatory requirement in our sector, but because 15% of the global population has some form of disability — that's over a billion potential users. Accessible software is also more usable for everyone: keyboard shortcuts benefit power users, captions benefit people in noisy environments, and high-contrast modes benefit people using devices in bright sunlight. Our accessibility investment paid for itself in reduced legal risk, expanded market reach, and improved SEO — search engines reward accessible websites." This answer demonstrates strategic thinking, not just checkbox compliance.

Reliability and Resilience Testing

Reliability testing asks: "Does the system keep working when things go wrong?" Resilience testing asks: "How gracefully does it recover?" These are the non-functional requirements that separate systems that work on a developer's laptop from systems that work in production at 3 a.m. on a Saturday. They're also increasingly common in SDET interviews as organisations adopt microservices, cloud-native architectures, and distributed systems where partial failure is the norm, not the exception.

🐒

Chaos Engineering Principles

Chaos engineering is the practice of deliberately injecting failures into a system to test its resilience. Netflix's Simian Army — Chaos Monkey (randomly terminates instances), Latency Monkey (injects network delays), Chaos Gorilla (takes down an entire availability zone) — pioneered the discipline. For SDET interviews, you don't need to have run Chaos Monkey in production, but you should understand the principles: (1) Start with a steady state — define what "normal" looks like in metrics. (2) Hypothesise — "If we kill the payment service, the checkout flow should degrade gracefully, not crash." (3) Inject failure — terminate the service, throttle the network, fill the disk. (4) Observe — did the system behave as expected? (5) Learn and fix — if it didn't, why not, and what needs to change? Being able to articulate these five steps with a concrete example — "We ran a chaos experiment where we killed one of three Redis nodes and verified that our application switched to the replica within 2 seconds without data loss" — demonstrates resilience thinking.

⚡

Circuit Breakers, Retry Logic, and Timeouts

These are the three pillars of resilient service communication — and they're testable. Circuit breakers prevent cascading failures: when a downstream service fails repeatedly, the circuit breaker trips (opens) and subsequent calls fail fast instead of waiting for timeouts, giving the downstream service time to recover. After a cooling period, the circuit breaker transitions to half-open and allows a test request through. Retry logic handles transient failures: if a request fails with a 503 (Service Unavailable) or a network timeout, retry with exponential backoff — wait 1s, then 2s, then 4s, then 8s. Timeouts prevent indefinite waiting: set connection timeouts, read timeouts, and request timeouts appropriate to your SLA. In an interview: "I wrote integration tests that verify circuit breaker behaviour — when the mock payment service returns 500 errors 5 times consecutively, the circuit opens and subsequent requests to the checkout endpoint return a graceful 'service temporarily unavailable' message instead of a 500 stack trace."

🔄

Failover and Disaster Recovery Testing

Failover testing verifies that when a primary component fails, a backup takes over without data loss or excessive downtime. Active-passive failover: the backup is idle until needed. Active-active failover: both instances serve traffic; if one fails, the other handles the full load. Key test scenarios: database failover (primary to replica), message queue failover (broker failover in Kafka or RabbitMQ), region failover (if us-east-1 goes down, does traffic route to eu-west-1?), and DNS failover. For SDETs, the test automation angle is: "We automated failover smoke tests that run daily — they trigger a controlled database failover, verify that the application reconnects to the new primary within 10 seconds, confirm no in-flight transactions were lost, and validate that all critical APIs return 200 within 30 seconds of failover completion." Even if your team only tested this manually, discussing the automation strategy shows you think beyond one-off testing.

🛟

Graceful Degradation Patterns

Graceful degradation is the principle that when a non-critical dependency fails, the system should continue operating with reduced functionality rather than failing entirely. Examples: if the recommendation engine is down, show a static "Popular Items" list instead of an error page. If the image CDN is unreachable, show placeholder images with alt text. If the analytics service times out, log the event locally and retry later — don't block the user's purchase. In interviews, discuss how you've tested graceful degradation: "We built a test harness that simulates dependency failures — we kill the recommendation service container and verify the product page still loads with a fallback 'trending products' section and an appropriate warning message, not a 500 error or an infinite spinner." This demonstrates that you test for resilience, not just correctness.

How to Answer "Describe a Time You Tested for Non-Functional Requirements" When You've Mostly Done Functional

This is the question that makes most candidates sweat. If you've spent your career writing Selenium tests for CRUD applications, you might feel like you've never done non-functional testing. You almost certainly have — you just haven't framed it that way. Here's how to find the non-functional testing in your functional testing experience:

  1. Performance: Have you ever added a wait for an element to load? That's implicitly testing response time. Have you ever noticed a page was slow and flagged it? That's performance awareness. Have you ever set a test timeout? That's a performance threshold. Frame it: "I incorporated implicit performance checks into our functional tests — any page that took longer than 5 seconds to load triggered a warning in our test report, which helped us catch performance regressions early."
  2. Security: Have you ever tested login functionality? That's authentication testing. Have you ever tested that a non-admin user can't access the admin panel? That's authorisation testing. Have you ever tested input validation (special characters, empty fields, excessively long inputs)? That's injection testing. Frame it: "My functional tests included security-adjacent scenarios — I validated that SQL-like strings in search fields didn't break the application, that session tokens were invalidated on logout, and that direct URL access to admin routes redirected unauthenticated users to the login page."
  3. Accessibility: Have you ever checked that a button has visible text? That's accessibility testing. Have you ever verified keyboard navigation? That's accessibility testing. Have you ever tested with browser zoom? That's accessibility testing. Frame it: "I advocated for adding accessible labels to all interactive elements in our component library and wrote tests that verified every button, link, and form input had an accessible name — these tests caught 23 accessibility regressions before they reached production."
  4. Reliability: Have you ever tested what happens when a network request fails? That's resilience testing. Have you ever tested error handling? That's reliability testing. Have you ever run a test suite multiple times to check for flakiness? That's a basic form of reliability testing. Frame it: "I wrote service-virtualisation tests that simulated downstream API failures — timeouts, 500 errors, and malformed responses — and verified that our application handled each failure mode gracefully with user-friendly error messages rather than crashing."

The key to answering this question is reframing, not inventing. You're not lying about experience you don't have — you're recognising the non-functional dimension of the work you've already done and articulating it in the language interviewers expect.

Model Interview Answers: Four Non-Functional Testing Scenarios

These model answers use the STAR method (Situation, Task, Action, Result) adapted for non-functional testing scenarios. Practise them out loud — the SDET Interview Coach app's AI mock interviewer can ask these exact questions and score your responses.

Scenario 1

Performance: Catching a Database Bottleneck Before It Reached Production

Situation: "Our e-commerce platform was preparing for Black Friday — traffic was expected to increase 10x. The product team was focused on feature completeness; performance testing wasn't on the sprint board." Task: "As the SDET on the checkout team, I needed to ensure the checkout flow would handle the projected load without degrading." Action: "I wrote a k6 load test script that simulated the full checkout flow — add to cart, apply promo code, enter shipping, submit payment — with 500 virtual users ramping up over 5 minutes. I ran it against our staging environment during off-hours. The results showed P95 response time for the payment confirmation endpoint spiking to 4.2 seconds at 300 concurrent users. I profiled the endpoint and traced the bottleneck to an unindexed query on the orders table that was doing a full table scan. I documented the finding with the exact query, the query plan, the recommended index, and the projected performance improvement. I presented this to the backend lead with the revenue impact: 'At projected Black Friday traffic, this single query would add 3 seconds to every checkout — that's an estimated £45,000 in abandoned carts per hour.'" Result: "The backend team added the index within 24 hours. I re-ran the load test and P95 dropped to 380ms at 1,000 concurrent users. The checkout flow handled Black Friday without a single performance incident. The CTO cited this in the engineering all-hands as an example of proactive quality engineering. I was asked to lead performance testing across all customer-facing teams."

Scenario 2

Security: Automating Authentication and Authorisation Tests That Caught a Real Vulnerability

Situation: "I was working on a government digital service that handled citizen personal data. Security was non-negotiable — a data breach would have legal consequences under GDPR and damage public trust. We had a security team doing penetration testing quarterly, but no automated security regression tests between pen tests." Task: "I needed to build a suite of automated security tests that would run on every deployment and catch common vulnerabilities before they reached production — complementing, not replacing, the quarterly pen tests." Action: "I wrote Playwright tests that covered: (1) Authentication — invalid credentials rejection, session invalidation on logout, JWT token expiry handling, password complexity enforcement. (2) Authorisation — direct URL access to admin endpoints by regular users, IDOR attempts by modifying user IDs in API calls, role escalation by manipulating JWT claims. (3) Input validation — XSS payloads in form fields, SQL injection patterns in search inputs, excessively long strings to test buffer handling. (4) Security headers — Content-Security-Policy, X-Frame-Options, Strict-Transport-Security presence. I also integrated OWASP ZAP's API to run a passive scan during our end-to-end test suite and report any findings directly to our defect tracker." Result: "On the third week of running these tests, the authorisation tests caught a critical vulnerability — a newly added admin endpoint was missing the role-check middleware, meaning any authenticated user could access it. This would have gone undetected until the next quarterly pen test — three months of exposure. The fix was deployed within hours. The security team adopted my test suite as part of their CI pipeline and expanded it. I was invited to present the approach at the department's security community of practice."

Scenario 3

Resilience: Verifying Graceful Degradation When a Critical Dependency Failed

Situation: "Our application depended on a third-party payment gateway for processing transactions. The gateway had experienced two outages in the previous quarter — each time, our application crashed with an unhandled exception, returning a 500 error and a stack trace to users. The business was losing revenue every minute the gateway was down." Task: "I needed to verify that our application handled payment gateway failures gracefully — queueing transactions for retry instead of crashing, showing a user-friendly message instead of a stack trace, and alerting the on-call team automatically." Action: "I built a resilience test suite using WireMock to simulate the payment gateway. I created scenarios: (1) Gateway timeout after 30 seconds, (2) Gateway returning 503 Service Unavailable, (3) Gateway returning malformed JSON, (4) Gateway returning success with 30-second latency, (5) Gateway returning partial success — payment captured but confirmation failed. For each scenario, I verified: the application returned a 200 with a 'payment is being processed' message (not a 500), the transaction was queued for retry with exponential backoff, an alert was triggered in PagerDuty with the correct severity, and the user's cart state was preserved so they didn't lose their items. I also tested recovery — when the gateway came back online, queued transactions were processed successfully." Result: "Two months later, the payment gateway had another outage — this time lasting 45 minutes. Our application handled it exactly as designed: users saw 'Your payment is being processed — you'll receive a confirmation email within 15 minutes,' transactions were queued and retried, and zero revenue was lost. The product manager said it was the first payment gateway outage that didn't generate a single customer support ticket. The resilience test suite became a template adopted by three other teams."

Scenario 4

Accessibility: Building an Accessibility Gate Into CI/CD That Changed Engineering Culture

Situation: "I joined a fintech company that was preparing for a major accessibility audit as part of a partnership with a large bank. The bank required WCAG 2.1 AA compliance before signing. Our application had never been tested for accessibility — Lighthouse scores were in the 40s, colour contrast was failing on 60% of pages, and keyboard navigation was completely broken on modal dialogs and dropdown menus." Task: "I needed to establish an accessibility testing baseline, automate as much as possible, and create a process that prevented new accessibility regressions — all within 8 weeks before the audit." Action: "I integrated axe-core with our Playwright test suite using @axe-core/playwright. I configured it to run after every page navigation and report violations at critical and serious severity. I wrote dedicated keyboard navigation tests that validated the Tab sequence for our top 10 user flows — login, onboarding, dashboard, transaction history, fund transfer, settings, etc. I added visual regression tests that included colour contrast comparisons using a contrast ratio calculation library. I made accessibility violations block CI merges — if any new critical or serious violations were introduced, the build failed. I created an accessibility dashboard in Grafana showing violations over time, organised by page and severity. I also ran training sessions for the frontend team on ARIA attributes, semantic HTML, and keyboard navigation patterns." Result: "Within 6 weeks, we went from 1,200+ accessibility violations to under 50 — all non-critical. The external audit found zero WCAG 2.1 AA failures. The bank signed the partnership. More importantly, the frontend team internalised accessibility — six months later, new engineers were being onboarded with accessibility as a first-class concern, not an afterthought. The accessibility gate in CI was never removed and continued catching regressions. I presented this work at a local TestBash meetup."

How SDET Interview Coach Prepares You for Non-Functional Testing Questions

Non-functional testing questions are difficult to prepare for because they're broad — you can't just memorise a list of Playwright commands and expect to pass. The SDET Interview Coach iOS app is designed to help you build the structured thinking and broad awareness that NFR questions require:

  1. Dedicated non-functional testing topic area — Questions spanning performance, security, accessibility, reliability, and scalability testing, calibrated to your target seniority level. Junior candidates get foundational awareness questions; Lead candidates get strategic NFR-programme questions.
  2. AI-powered mock interviews — The AI interviewer throws curveball NFR questions and adapts its follow-ups based on your answers. It scores you on technical accuracy, breadth, communication clarity, and — crucially — whether you're overclaiming expertise you don't have (a common and costly mistake).
  3. Job Match with NFR extraction — Paste your target job description and Job Match extracts every non-functional testing signal — "performance testing," "security awareness," "scalability," "resilience" — and generates 50 bespoke questions tailored to that specific role.
  4. Model answers with depth gradation — Every question comes with model answers at three levels: foundational ("I understand the concept"), practitioner ("I've done this"), and expert ("I've led this"). You can see exactly what "good" looks like at your target level and what you need to stretch to reach the next one.
  5. Spaced repetition for NFR terminology — Terms like "P95 latency," "SAST vs DAST," "circuit breaker pattern," "WCAG conformance level," and "graceful degradation" are added to your spaced repetition queue so they're in your long-term memory when the interviewer asks about them.

Mitchell Agoma built SDET Interview Coach after experiencing the exact gap this guide addresses — he was a strong functional tester who froze when asked about non-functional requirements in a Lead SDET interview at a major financial institution. He got the job eventually — but only after learning, through trial and error, what non-functional testing interviewers actually care about. The app distils those lessons into structured, repeatable preparation so you don't have to learn the hard way. Download it from the iOS App Store, complete the 2-minute onboarding, and run your first non-functional testing mock interview today — you'll know exactly where you stand and what to practise before the real thing.

Ready to Transform Your Testing?

The AI Test Automation Playbook gives you everything you need: Playwright setup, Claude AI integration, MCP deep dive, 10+ ready-to-use prompts, CI/CD pipeline setup, and a 30-day implementation roadmap.

✅ Playwright + TypeScript✅ Claude AI Prompts✅ MCP Deep Dive✅ CI/CD with GitHub Actions✅ 30-Day Roadmap✅ Page Object Patterns
Get the AI Test Automation Playbook — $49.99

By Mitchell Agoma, Senior SDET & AI Testing Specialist with 8+ years of experience