Automation Test Engineer
Test automation frameworks questions
117 questions on Test automation frameworks for automation test engineers, easiest first.
Easy 35
- Page Object Modeleasy
- Where test code liveseasy
- toBe versus toEqualeasy
- What a pytest fixture doeseasy
- BeforeEach or BeforeAlleasy
- What makes a test flakyeasy
- Running only tagged testseasy
- Screenshots on failureeasy
- Naming a testeasy
- Matching runner to languageeasy
- Arrange, Act, Asserteasy
- An upside-down test pyramideasy
- Sharing fixtures in pytesteasy
- Asserting that an error is raisedeasy
- Running pytest in paralleleasy
- A keyword-driven frameworkeasy
- Layers in a test frameworkeasy
- Where test passwords belongeasy
- Failing the pipelineeasy
- A toThrow test that errorseasy
- Comparing decimal resultseasy
- Checking an email was sent onceeasy
- A double that returns fixed dataeasy
- An in-memory repositoryeasy
- Reading a Gherkin scenarioeasy
- A failure message that helpseasy
- Expecting an exception in JUnit 5easy
- What a smoke suite is foreasy
- What a browser context gives youeasy
- Grouping actions in the reporteasy
- Checking many fields at onceeasy
- What Selenium Grid is foreasy
- Languages Playwright supportseasy
- Checking that a tab is activeeasy
- Where Cypress test code runseasy
Medium 45
- Testing an error statemedium
- Failures only in parallelmedium
- Same test, many inputsmedium
- Click intercepted by an overlaymedium
- Duplicate email on sign-upmedium
- A custom Playwright fixturemedium
- Counting parametrized testsmedium
- Shared driver in parallel runsmedium
- A matrix buildmedium
- Splitting a suite across machinesmedium
- Using retries wiselymedium
- Tests that fail at midnightmedium
- Passes in the suite, fails alonemedium
- Showing results in CImedium
- Testing with a payment providermedium
- Page objects and navigationmedium
- Watching a real methodmedium
- Faking an async API callmedium
- Testing a debounced searchmedium
- Clean-up in a pytest fixturemedium
- An expected failure that starts passingmedium
- Full line coverage, half the branchesmedium
- Catching API breaks between teamsmedium
- Integration tests with a real databasemedium
- Making test objects readablemedium
- Random test data you can replaymedium
- Quarantining flaky testsmedium
- How fast can it getmedium
- Undoing database changes per testmedium
- A test that passes for the wrong reasonmedium
- Testing a private helpermedium
- Code that is hard to testmedium
- Stubbing a downstream HTTP servicemedium
- Checking the shape of an API responsemedium
- A mock leaking into other testsmedium
- Number formats differ on CImedium
- An if statement inside a testmedium
- Stop at the first failure or notmedium
- Seeing all field failures in JUnitmedium
- Tests that depend on each othermedium
- Picking boundary test valuesmedium
- Full text or part of itmedium
- Checking the number of resultsmedium
- A toast that vanishes quicklymedium
- Checking a sorted columnmedium
Hard 37
- Clean state for each testhard
- Choosing a tool for multi-tab flowshard
- How small flakiness adds uphard
- Missing the response you wait forhard
- Retries hiding a real bughard
- Green tests, broken productionhard
- Leftover test datahard
- Worker-scoped fixtureshard
- Feature flags and testshard
- High coverage, weak testshard
- Reusing one page for speedhard
- Testing an event consumerhard
- DRY or DAMP testshard
- Tests that break on every refactorhard
- Mocking a third-party SDKhard
- A jest.mock factory errorhard
- A patch that does nothinghard
- Testing with generated inputshard
- Shuffling test order on purposehard
- Running only the affected testshard
- Gherkin that reads like a scripthard
- Safety net for legacy codehard
- An 80% coverage gatehard
- A test that depends on set orderhard
- SQLite in tests, Postgres in productionhard
- A cache that remembers old testshard
- A test that can never failhard
- Work that outlives the testhard
- A fixture nobody asked forhard
- Testing code that uses randomnesshard
- A fake that drifted from realityhard
- Checking that a spinner is gonehard
- Retrying a group of stepshard
- A click that does nothinghard
- Clicking through JavaScripthard
- Uploads that fail on Gridhard
- Moving off a flaky Selenium suitehard