Arrowhead โ R1 Interview Prep (Your Answers)¶
Round: R1 (Profile / Projects / Hands-on) ยท Time: 6:30 PM Format: Discussion โ profile accuracy, tool knowledge, project understanding, practical implementation.
How to use this: read each answer out loud 2โ3 times so it sounds like you, not a script. Keep answers to 45โ90 seconds. Lead with the headline, then one concrete detail, then the impact. Don't over-claim โ the honest "here's what I'd improve" lines below win trust.
0. 60-second self-introduction (say this first)¶
"I'm Rohan, a QA / SDET with about [X] years of experience, currently working as an SDET-2 at Questt. My background spans three areas. First, classic UI and API automation โ I've built a Java + Selenium + TestNG + REST Assured framework for a B2B e-commerce platform, and a Playwright + TypeScript suite for our AI-agent product, both using Page Object Model, data-driven tests, and CI pipelines. Second, security testing โ I run VAPT engagements with OWASP ZAP, Nikto, Nmap and Burp Suite, mapping findings to the OWASP Top 10 and verifying fixes on retest. And most recently, AI/LLM testing โ I built a Python framework that tests our LLM chatbot itself, because you can't
assertEqualsa non-deterministic answer, so I use an LLM-as-judge plus an agentic 'oracle' that re-runs the business logic against the live database to fact-check the bot's numbers. The common thread through all of it is the same QA mindset: define what 'correct' means, automate the check, gate the release, and track regressions over time."
Adjust [X] years to your real number before the call.
1. Previous roles & responsibilities¶
Answer:
"At Questt I work as an SDET-2. My day-to-day covers the full test lifecycle โ I own test strategy and test-case design for the features in my area, build and maintain the automation frameworks (UI, API, and our AI-eval framework), and I'm hands-on in triage: reproducing defects, doing root-cause analysis, and driving them to closure with the dev team. I also maintain our CI pipelines so the suites run on every build, and I do release sign-off. On top of functional work I take on security testing (VAPT) for our apps. So my role is a mix of individual-contributor automation, quality gatekeeping for releases, and cross-functional defect investigation."
Follow-up โ "manual or automation?"
"Both. I design manual/exploratory test scenarios first โ that's where I find the interesting edge cases and negative paths โ then I automate the stable, high-value regression paths. I don't automate blindly; I automate what's repeatable and high-risk."
Follow-up โ "Agile process?"
"Yes โ sprint-based. I get involved early in refinement so I can raise testability and edge-case questions before code is written (shift-left), I write test cases against acceptance criteria, and I keep the regression suite green as part of the definition of done."
2. Projects & your contributions¶
Keep a short list ready and let them pick which to go deep on. One line each:
- AI/LLM Evaluation Framework (Python) โ automated evaluation of our LLM analytics chatbots across telecom, FMCG, and retail domains. LLM-as-judge + an agentic "oracle" that verifies the bot's numbers against a live Postgres DB. Stack: Python, pytest, OpenAI/Anthropic, PostgreSQL, sqlglot, Langfuse.
- Questt REST Assured API framework (Java) โ REST Assured + TestNG + Maven; ~60 tests across API versions v1โv4, a helper/service layer with GET/POST/PATCH wrappers, and 19+ JSON-schema validators.
- Morrie / Playwright automation (TypeScript) โ E2E + API automation for our AI-agent product; Page Object Model, custom fixtures, Axios for API calls, Jenkins CI.
- Avysh B2B โ Selenium framework (Java) โ UI + API regression/smoke for a B2B e-commerce platform; Selenium 4
- TestNG + REST Assured + ExtentReports + Maven, POM with a helper/facade layer, data-driven.
- VAPT โ security testing of multiple web apps with ZAP/Nikto/Nmap/Burp, OWASP Top 10 mapping, remediation retests.
My contribution line (say this):
"In each of these I was the one who designed the framework structure and wrote the tests โ not just executing someone else's suite. For the AI-eval work I designed the scoring rubric and the oracle logic from scratch."
3. Tools / frameworks (be ready to go deep on any)¶
Have a crisp 2โ3 sentence answer for each. Table = quick recall; talk in full sentences.
| Tool | What you say |
|---|---|
| Selenium (Java) | "Selenium 4 + TestNG, Page Object Model with a helper/facade layer so tests read like business steps. I use explicit waits (WebDriverWait / ExpectedConditions), never Thread.sleep, and TestNG for grouping, priorities, data providers, and a retry analyzer for flaky cases." |
| Playwright (TypeScript) | "Playwright + TS for our AI-agent product. I lean on its auto-waiting, use role/text/test-id locators over brittle CSS/XPath, custom fixtures for setup, and storage-state to reuse login. Traces and screenshots on failure for debugging." |
| TestNG | "Test lifecycle annotations, groups (smoke/regression), priorities, parameterization via @DataProvider, parallel execution via the XML suite, and IRetryAnalyzer for known-flaky tests." |
| Pytest | "I use it for the AI-eval framework โ fixtures for setup/teardown, parametrize for data-driven cases, markers to slice suites, and conftest for shared config. Assertions read cleanly and the plugin ecosystem is strong." |
| REST Assured | "API automation in Java โ given/when/then style. I validate status codes, headers, and response bodies with JSONPath, and I do JSON-schema validation to catch contract changes. Built a service/helper layer so auth and base config aren't repeated." |
| SQL | "I write SQL to set up and verify test data and to validate what the app actually persisted โ the DB is my source of truth. In the AI-eval framework I even re-run the business logic as SQL against Postgres to fact-check the chatbot's answers." |
| Jenkins / CI-CD | "Jenkins runs my Playwright suite on each build/PR; the eval projects run on GitHub Actions. Pipelines do install โ lint/type-check โ test โ publish report, and fail the build on regressions so nothing broken merges." |
| Reporting | "ExtentReports for the Java suites (with failure screenshots), Playwright HTML report + traces, and Langfuse for the AI-eval scores/traces." |
If asked "Selenium vs Playwright?":
"Playwright has auto-waiting built in, no separate WebDriver, faster and more stable out of the box, and tracing/ video/screenshots are first-class โ so it's less flaky with less effort. Selenium is more mature, has the biggest ecosystem and language support, and is often what's already in place in enterprise stacks. I'm comfortable in both; I pick based on what the team already runs."
4. Automation scenarios you implemented¶
Pick 2 concrete ones and tell them like mini-stories. Below is a strong pair, including the role-based Dashboard scenarios from your screenshot (great because it shows functional + security thinking).
Scenario A โ Role-based Dashboard testing (super_admin vs Distributor)¶
"One feature I tested was a role-based Dashboard where different roles โ super_admin and Distributor โ see different content. I designed both positive and negative scenarios: - Content correctness per role: after a successful login I verified the Dashboard shows the right content for super_admin, and separately for a Distributor โ the two roles should not see the same data. - Static links / footer: clicked the Privacy Policy and Terms & Conditions links at the bottom of the page and verified each redirects to the correct page. - Notifications: verified the notification bell shows a red-dot only when there's a new notification. - Card layout consistency: each card renders with a unique logo but a consistent card size, and clicking a card routes to the correct detail page. - The important one โ authorization / broken access control: as a Distributor I tried to reach the Users section directly by editing the URL. A Distributor shouldn't have access, so the expected result is a redirect or 'access denied' โ not the page loading. That's a classic Broken Access Control check (OWASP Top 10), and it's exactly the kind of negative test that catches real security bugs, not just UI bugs."
Why this answer lands: it shows you test functional correctness, UI consistency, AND authorization โ and you naturally connect it to OWASP, which ties into your VAPT background.
How you'd automate it (if they ask):
"In Playwright I'd use storage-state to log in once per role, then run the same spec against each role via a fixture/parameter. For the URL-tamper test I'd navigate directly to
/usersas the Distributor session and assert the response/redirect, not the element. For the footer links I'd assert the resulting URL. For the red-dot I'd assert the badge is visible only when a notification exists โ driving that state through the API or a seeded fixture."
Scenario B โ API contract regression (REST Assured / Playwright API)¶
"For our APIs I built a data-driven suite that validates status codes, headers, and response bodies with JSONPath, plus JSON-schema validation so a contract change โ a renamed or dropped field โ fails the build immediately instead of silently breaking a consumer. I chained tests where needed: create a resource via POST, capture the ID, then GET/ PATCH/DELETE it and assert each step. That schema-validation layer caught real breaking changes before release."
5. RCA / defect investigation examples¶
Use STAR (Situation, Task, Action, Result). Two ready-made stories:
RCA Story 1 โ Flaky test that was actually a real bug¶
S: A UI test intermittently failed on a data table that sometimes showed stale values. T: Everyone assumed it was a flaky wait; I had to prove root cause before we suppressed it. A: I added tracing/logging, correlated the failures with the API response timing, and checked the DB directly with SQL. The UI was rendering before a background refresh completed โ a race condition in the app, not the test. R: I filed it with the trace + DB evidence, dev fixed the refresh sequencing, and I replaced the hard wait with a proper condition-based wait. The 'flaky' test became a reliable regression guard. Lesson: don't mute a flaky test until you've ruled out a real defect."
RCA Story 2 โ Wrong number from the LLM chatbot (AI-eval)¶
S: Our analytics chatbot occasionally returned a confident but wrong figure. T: I needed an automated way to know when the answer was factually wrong, not just badly worded. A: I built an 'oracle' โ I re-ran the canonical business logic as SQL against the live Postgres DB and compared it to the bot's number within a tolerance, alongside an LLM-as-judge for the qualitative parts. When they diverged, I traced the bot's tool calls in Langfuse to find where it picked the wrong table/filter. R: RCA showed the bot was joining on the wrong dimension for one KPI. We fixed the prompt/tool mapping, and the eval suite now catches that class of regression automatically before release."
One-liner on your RCA method (if they ask "how do you approach RCA?"):
"Reproduce reliably, isolate the layer โ UI, API, or DB โ with evidence at each layer (logs, traces, SQL), find the first point where actual diverges from expected, then confirm the fix with a regression test so it can't come back."
6. AI / LLM testing experience (your differentiator โ lead with it if they're interested)¶
Core answer:
"The hard part of testing an LLM is that the output is non-deterministic โ you can't assert one exact string. So I reframed 'correct' as a rubric plus a fact-check. I use two mechanisms: 1. LLM-as-judge โ a model with a strict rubric at temperature 0 scores the answer on dimensions like factual accuracy, relevance, and completeness, so the grading is consistent and repeatable. 2. An agentic oracle โ for the numbers, I don't trust another model; I re-run the actual business logic as SQL against the live database and compare the bot's figure to ground truth within a tolerance. I persist every run's scores to a store and compare across runs, so it behaves like a regression suite for AI โ if a prompt or model change drops accuracy, we see the trend. I use Langfuse to trace the bot's tool calls, which is how I do RCA when an answer is wrong. I applied this same framework across three domains โ telecom, FMCG, and retail."
Terms to be ready to define crisply: - LLM-as-judge: a model scoring another model's output against a rubric, temp 0 for consistency. - Oracle: the source of truth you compare against โ here, the business logic re-run against the DB. - Non-determinism handling: tolerances for numbers, semantic matching for text, multiple runs for consistency. - RAG / embeddings, Langfuse, sqlglot โ mention only if asked; don't over-reach.
Honest boundary (say this if pushed):
"I'm strong on the evaluation and testing side of LLMs โ I'm not the one training models. My value is treating an AI feature like any other system under test: define correctness, automate the check, catch regressions."
7. Likely quick-fire questions โ one-liners¶
- "How do you handle flaky tests?" โ "Prefer auto-waiting / explicit condition-based waits over sleeps, stable locators (role/test-id), isolate test data so tests don't collide, retry only known-transient cases, and always investigate whether the flake is actually a real bug first."
- "How do you decide what to automate?" โ "High-value, repeatable, stable regression paths first; leave rapidly- changing UI and one-off exploratory checks manual. ROI-driven, not automate-everything."
- "Page Object Model โ why?" โ "Locators + actions live in one class per page, so tests read like business steps and a UI change is a one-line fix in one place instead of across every test."
- "How do you test an API?" โ "Validate status, headers, and body with JSONPath; JSON-schema validation for contracts; positive + negative + boundary cases; chain CRUD flows; run it in CI."
- "How do you use SQL in testing?" โ "Seed and clean test data, and verify the app persisted what it should โ the DB is my source of truth, especially for backend/data validation."
- "CI/CD?" โ "Jenkins/GitHub Actions run install โ lint/type-check โ tests โ report on every build/PR, and fail the build on regressions so broken code doesn't merge."
- "Biggest strength?" โ "I define what 'correct' means before I automate โ I've done it for UI, APIs, security, and even non-deterministic AI. That framing is what makes my suites actually catch bugs."
8. Questions to ask THEM (always have 2โ3)¶
- "What does the current test stack look like โ Selenium, Playwright, or a mix โ and where do you want to take it?"
- "Is this role more feature-testing, framework-building, or a mix? How much manual vs automation?"
- "Are you starting to test any AI/LLM features, and would that eval experience be useful here?"
- "What does the CI/CD and release process look like today?"
9. Final checklist before the call¶
- [ ] Fill in your real years of experience in the intro.
- [ ] Have your resume open โ every tool you name, they can drill into; know each project on it.
- [ ] Pick your top 2 projects to go deep on (suggest: AI-eval + one of Selenium/Playwright).
- [ ] Rehearse the 60-sec intro and 2 STAR stories out loud.
- [ ] Accept the calendar invite.
- [ ] Test camera/mic, quiet room, water nearby, join 3โ4 min early.
- [ ] Be honest about boundaries โ "I'd approach it like this" beats pretending to know.
All the best, Rohan. You've got real depth here โ talk like the engineer who built these, not a candidate reciting features.