Selenium · Browser automation foundations
What does a stable, production-grade Selenium suite look like?
Short answer
A good suite tests a small set of high-value journeys, uses stable locators and explicit waits, isolates every test, runs in CI with artifacts, and treats flakiness and runtime as product quality metrics.
Stability is a design outcome, not a library setting. The suite should be small enough to trust, fast enough to run on every change, and structured so a failure points to a specific behaviour. Everything else is secondary.
public class CheckoutTest extends BaseTest {
@Test
public void customerCanPlaceAnOrder() {
User user = TestData.newUser();
Cart cart = ApiClient.createCart(user, "SKU-1", 2);
new CheckoutPage(driver())
.openFor(cart)
.payWith("4242424242424242")
.submit();
WebDriverWait wait = new WebDriverWait(driver(), Duration.ofSeconds(15));
wait.until(ExpectedConditions.urlContains("/confirmation"));
Assert.assertTrue(new ConfirmationPage(driver()).hasOrderNumber());
}
}- Test user journeys and integration boundaries, not every field validation
- Use stable test ids and intention-revealing page objects
- Wait for observable state with explicit waits and no fixed sleeps
- Isolate driver, data and files per test so order and parallelism do not matter
- Run a fast critical-path suite on every change and a broader matrix on a schedule
- Attach evidence on failure and publish reports from CI
- Track runtime, flake rate and failure ownership instead of only pass percentage
- Delete or quarantine tests that no longer provide a trustworthy signal
The hard trade-off is coverage versus trust. A suite of two hundred UI tests that fails randomly is worse than twenty reliable journeys plus strong API and unit coverage. Push checks down the pyramid, keep the browser for what only a browser can prove, and be explicit about which risks the remaining suite covers.
Follow-ups you should expect
Interviewers use these to check whether the first answer was understanding or memorisation.
- 1How do you decide what belongs in the Selenium suite?
- 2Which metrics would you track for suite health?
- 3How do you balance coverage against runtime?
- 4What would you change first in a large legacy suite?
Say it in the interview
I keep the browser suite focused on high-value journeys and push rule-level checks down to API and unit tests. Tests use stable locators, explicit waits, isolated data and per-test drivers, and they run in CI with failure evidence. I measure runtime and flake rate, not just pass percentage, and I remove tests that no longer give a trustworthy signal. The goal is a suite the team believes when it turns red.
Use this as a model, not a script. Saying it in your own words is what makes it survive follow-up pressure.
Related questions
Reading is step one
Now say it out loud.
Understanding an answer and delivering it under pressure are different skills. Rehearse this topic in a live Selenium mock interview and get scored feedback on depth, clarity and confidence.