← Interview Questions
Free practice guide

Concepts to conquer your next interview

A friendly practice guide for QA automation and AI testing. Pick one topic, refresh the essentials, and build confidence one step at a time.

These are practice topics, not verified questions from any particular employer.

01

Automation Concepts

Open this topic when you’re ready

  1. Choosing what to automate
  2. Test pyramid and test layers
  3. Risk-based test selection
  4. Positive, negative and boundary testing
  5. Locators and element identification
  6. Synchronisation and wait strategies
  7. Assertions and meaningful checkpoints
  8. Independent tests and test isolation
  9. Test data creation and cleanup
  10. Setup and teardown
  11. Page Object Model
  12. Reusable components and helper methods
  13. Data-driven testing
  14. Configuration and environment management
  15. Authentication and session management
  16. Mocking and service dependencies
  17. Parallel execution and shared-state problems
  18. Failure investigation and flaky tests
  19. Reports, logs, screenshots and traces
  20. Git and CI/CD integration
02

Playwright Commands

Open this topic when you’re ready

  1. npx playwright --help — View available commands
  2. npx playwright --version — Check the version
  3. npx playwright install — Install browsers
  4. npx playwright install chromium — Install Chromium
  5. npx playwright install --with-deps — Install browsers and system dependencies
  6. npx playwright test — Run all tests
  7. npx playwright test tests/login.spec.ts — Run one file
  8. npx playwright test tests/login.spec.ts:10 — Run a test at a line
  9. npx playwright test --headed — Show the browser
  10. npx playwright test --ui — Open UI mode
  11. npx playwright test --debug — Debug tests
  12. npx playwright test --project=chromium — Run one project
  13. npx playwright test --grep "login" — Filter by title
  14. npx playwright test --workers=1 — Use one worker
  15. npx playwright test --retries=2 — Configure retries
  16. npx playwright test --repeat-each=3 — Repeat each test
  17. npx playwright test --last-failed — Rerun failed tests
  18. npx playwright test --trace on — Record traces
  19. npx playwright show-report — Open the HTML report
  20. npx playwright test --shard=1/3 — Run one shard
03

Playwright Coding Exercises

Open this topic when you’re ready

  1. Test successful login and verify the destination page.
  2. Test invalid login and verify the error message.
  3. Parameterise login tests using multiple datasets.
  4. Locate repeated buttons within a specific product card.
  5. Complete a form with dropdowns, checkboxes and radio buttons.
  6. Validate mandatory fields and boundary values.
  7. Automate a date picker across different months.
  8. Find and update a row in a dynamic table.
  9. Interact with a form inside an iframe.
  10. Handle a new tab and verify its contents.
  11. Accept and dismiss browser dialogs.
  12. Upload a file and verify the upload result.
  13. Download a report and validate its contents.
  14. Reuse authenticated state across tests.
  15. Build page objects for login, products and checkout.
  16. Create a custom fixture with setup and cleanup.
  17. Create test data through an API and verify it through the UI.
  18. Mock successful, empty and failed API responses.
  19. Verify loading behaviour using a delayed mocked response.
  20. Run isolated checkout tests in parallel.
04

Selenium WebDriver Commands

Open this topic when you’re ready

  1. driver.get(url) — Open a URL
  2. driver.navigate().to(url) — Navigate to a URL
  3. driver.navigate().back() — Go back
  4. driver.navigate().forward() — Go forward
  5. driver.navigate().refresh() — Refresh
  6. driver.getTitle() — Read the title
  7. driver.getCurrentUrl() — Read the URL
  8. driver.findElement(By.id("email")) — Find one element
  9. driver.findElements(By.cssSelector(".item")) — Find matching elements
  10. element.click() — Click
  11. element.sendKeys("text") — Enter text
  12. element.clear() — Clear an input
  13. element.getText() — Read visible text
  14. element.isDisplayed() — Check visibility
  15. element.isEnabled() — Check enabled state
  16. element.isSelected() — Check selection
  17. driver.switchTo().frame("payment") — Enter a frame
  18. driver.switchTo().defaultContent() — Return to the main document
  19. driver.close() — Close the current window
  20. driver.quit() — End the session
05

Selenium Coding Exercises

Open this topic when you’re ready

  1. Automate login with TestNG assertions.
  2. Run valid and invalid login datasets using DataProvider.
  3. Build reusable CSS and XPath locators.
  4. Wait for a dynamically loaded element using an explicit wait.
  5. Handle an element replaced after a page refresh.
  6. Select values from native and custom dropdowns.
  7. Select a date from a calendar.
  8. Read a table and act on the row matching an order ID.
  9. Search across a paginated table.
  10. Switch into nested frames and return to the main page.
  11. Switch between multiple windows using their handles.
  12. Handle alerts, confirmations and prompts.
  13. Perform hover and keyboard actions.
  14. Upload a file through a file input.
  15. Verify sorting and filtering of product results.
  16. Implement page objects for an end-to-end purchase.
  17. Capture screenshots when tests fail.
  18. Read configuration and test data from external files.
  19. Run tests in parallel with a separate driver per thread.
  20. Execute the same suite through RemoteWebDriver.
06

API Testing Requests

Open this topic when you’re ready

  1. GET /products to retrieve a collection.
  2. GET /products/{id} to retrieve one resource.
  3. GET /products?page=2&limit=10 to test pagination.
  4. GET /products?category=books to test filtering.
  5. GET /products?sort=price&order=asc to test sorting.
  6. POST /users to create a user.
  7. PUT /users/{id} to replace an editable representation.
  8. PATCH /users/{id} to update selected fields.
  9. DELETE /users/{id} to delete a resource.
  10. POST /auth/login with valid credentials.
  11. POST /auth/login with invalid credentials.
  12. GET /profile with a valid access token.
  13. GET /profile without an access token.
  14. GET /profile with an expired token.
  15. GET /admin/users using a non-admin account.
  16. POST /users with a missing mandatory field.
  17. POST /users with invalid types or boundary values.
  18. POST /files with a multipart file upload.
  19. Repeat POST /orders with the same supported idempotency key.
  20. Send requests at the documented rate limit and inspect throttling.
07

API Automation Coding Exercises

Open this topic when you’re ready

  1. Send a GET request and assert status, headers and body.
  2. Create a resource and verify it with a subsequent GET.
  3. Update a resource and verify persisted changes.
  4. Delete a resource and verify the documented deletion behaviour.
  5. Extract an ID and chain dependent requests.
  6. Obtain a token and call a protected endpoint.
  7. Test missing, invalid and expired credentials.
  8. Verify role-based access across different users.
  9. Parameterise requests with multiple datasets.
  10. Build request payloads using Java objects.
  11. Deserialise responses into Java objects.
  12. Validate nested JSON objects and arrays.
  13. Validate responses against a JSON Schema.
  14. Check pagination for missing and duplicate records.
  15. Verify filtering and sorting against expected results.
  16. Upload a file and validate the returned metadata.
  17. Test mandatory fields, invalid types and boundaries.
  18. Verify idempotency where the API supports it.
  19. Poll an asynchronous operation until completion or timeout.
  20. Build a reusable suite with isolated data, cleanup and failure logging.
08

Tosca Modules

Open this topic when you’re ready

  1. Login page
  2. Registration form
  3. Product search and results
  4. Shopping cart
  5. Checkout and order confirmation
  6. API request and response
  7. TBox Set Buffer
  8. TBox Name To Buffer
  9. TBox Partial Buffer
  10. TBox Delete Buffer
  11. TBox Iterate Array
  12. TBox Array Operation
  13. TBox File Existence
  14. TBox Read/Create File
  15. TBox File Compare
  16. TBox Copy File
  17. TBox Move/Rename File
  18. TBox Delete File
  19. TBox Start Program
  20. TBox Close Program
09

Tosca Automation Scenarios

Open this topic when you’re ready

  1. Scan a login page and create a reusable login TestCase.
  2. Verify successful and unsuccessful login.
  3. Enter form data with Input and check results with Verify.
  4. Capture a generated order ID using Buffer.
  5. Reuse the buffered order ID in another TestStep.
  6. Extract part of a reference number using TBox Partial Buffer.
  7. Wait for an application status using WaitOn.
  8. Identify a table row using Constraint and verify its values.
  9. Build a reusable login TestStepBlock.
  10. Parameterise a reusable flow for different users.
  11. Generate test instances from a TestCase template.
  12. Design boundary-value combinations in TestCase Design.
  13. Execute different branches using conditional statements.
  14. Repeat a business flow using a loop.
  15. Iterate buffered table values and verify each record.
  16. Create an order through an API and verify it in the UI.
  17. Verify a downloaded report exists and contains expected text.
  18. Configure recovery for an unexpected application dialog.
  19. Rescan a changed screen and verify affected TestCases.
  20. Execute a regression suite through an ExecutionList and investigate failures.
10

AI-Assisted Testing Techniques

Open this topic when you’re ready

  1. Give the model a clear testing objective.
  2. Supply requirements and acceptance criteria.
  3. Include relevant business rules and constraints.
  4. Ask it to identify unclear or conflicting requirements.
  5. Provide examples of the output you expect.
  6. Request a structured test-case format.
  7. Generate positive and negative scenarios separately.
  8. Generate boundary-value test ideas.
  9. Ask for state-transition and decision-table coverage.
  10. Compare generated tests against acceptance criteria.
  11. Identify duplicate and low-value test cases.
  12. Generate synthetic test data.
  13. Draft automation code using your framework conventions.
  14. Review generated locators, waits and assertions.
  15. Check suggested APIs and methods against documentation.
  16. Use sanitised logs to generate failure hypotheses.
  17. Ask for explanations before accepting code changes.
  18. Review refactored tests for changed behaviour.
  19. Keep reusable prompts under version control.
  20. Evaluate prompt changes against a fixed set of testing tasks.
11

Concepts for Testing AI Applications

Open this topic when you’re ready

  1. Model behaviour versus application behaviour
  2. Probabilistic outputs and non-determinism
  3. Clear acceptance criteria for generated answers
  4. Test oracles: deciding whether an answer is acceptable
  5. Representative evaluation datasets
  6. Human-reviewed reference answers
  7. Factual accuracy and hallucinations
  8. Answer relevance and completeness
  9. Grounding answers in supplied evidence
  10. Retrieval quality in RAG applications
  11. Citation correctness and source support
  12. Prompt injection and instruction manipulation
  13. Sensitive-data exposure and access control
  14. Harmful outputs and refusal behaviour
  15. Bias across user groups and languages
  16. Consistency across paraphrased prompts
  17. Multi-turn context and conversation memory
  18. Tool-call correctness and action permissions
  19. Latency, usage cost and failure handling
  20. Regression evaluation after model, prompt or data changes

Keep building your interview readiness

Want structured answers and worked examples?

Explore the paid interview kits for deeper explanations, practical examples and focused revision across popular QA automation stacks.

Explore the interview kits →