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.
01Automation Concepts
Open this topic when you’re ready
Automation Concepts
Open this topic when you’re ready
- Choosing what to automate
- Test pyramid and test layers
- Risk-based test selection
- Positive, negative and boundary testing
- Locators and element identification
- Synchronisation and wait strategies
- Assertions and meaningful checkpoints
- Independent tests and test isolation
- Test data creation and cleanup
- Setup and teardown
- Page Object Model
- Reusable components and helper methods
- Data-driven testing
- Configuration and environment management
- Authentication and session management
- Mocking and service dependencies
- Parallel execution and shared-state problems
- Failure investigation and flaky tests
- Reports, logs, screenshots and traces
- Git and CI/CD integration
02Playwright Commands
Open this topic when you’re ready
Playwright Commands
Open this topic when you’re ready
npx playwright --help— View available commandsnpx playwright --version— Check the versionnpx playwright install— Install browsersnpx playwright install chromium— Install Chromiumnpx playwright install --with-deps— Install browsers and system dependenciesnpx playwright test— Run all testsnpx playwright test tests/login.spec.ts— Run one filenpx playwright test tests/login.spec.ts:10— Run a test at a linenpx playwright test --headed— Show the browsernpx playwright test --ui— Open UI modenpx playwright test --debug— Debug testsnpx playwright test --project=chromium— Run one projectnpx playwright test --grep "login"— Filter by titlenpx playwright test --workers=1— Use one workernpx playwright test --retries=2— Configure retriesnpx playwright test --repeat-each=3— Repeat each testnpx playwright test --last-failed— Rerun failed testsnpx playwright test --trace on— Record tracesnpx playwright show-report— Open the HTML reportnpx playwright test --shard=1/3— Run one shard
03Playwright Coding Exercises
Open this topic when you’re ready
Playwright Coding Exercises
Open this topic when you’re ready
- Test successful login and verify the destination page.
- Test invalid login and verify the error message.
- Parameterise login tests using multiple datasets.
- Locate repeated buttons within a specific product card.
- Complete a form with dropdowns, checkboxes and radio buttons.
- Validate mandatory fields and boundary values.
- Automate a date picker across different months.
- Find and update a row in a dynamic table.
- Interact with a form inside an iframe.
- Handle a new tab and verify its contents.
- Accept and dismiss browser dialogs.
- Upload a file and verify the upload result.
- Download a report and validate its contents.
- Reuse authenticated state across tests.
- Build page objects for login, products and checkout.
- Create a custom fixture with setup and cleanup.
- Create test data through an API and verify it through the UI.
- Mock successful, empty and failed API responses.
- Verify loading behaviour using a delayed mocked response.
- Run isolated checkout tests in parallel.
04Selenium WebDriver Commands
Open this topic when you’re ready
Selenium WebDriver Commands
Open this topic when you’re ready
driver.get(url)— Open a URLdriver.navigate().to(url)— Navigate to a URLdriver.navigate().back()— Go backdriver.navigate().forward()— Go forwarddriver.navigate().refresh()— Refreshdriver.getTitle()— Read the titledriver.getCurrentUrl()— Read the URLdriver.findElement(By.id("email"))— Find one elementdriver.findElements(By.cssSelector(".item"))— Find matching elementselement.click()— Clickelement.sendKeys("text")— Enter textelement.clear()— Clear an inputelement.getText()— Read visible textelement.isDisplayed()— Check visibilityelement.isEnabled()— Check enabled stateelement.isSelected()— Check selectiondriver.switchTo().frame("payment")— Enter a framedriver.switchTo().defaultContent()— Return to the main documentdriver.close()— Close the current windowdriver.quit()— End the session
05Selenium Coding Exercises
Open this topic when you’re ready
Selenium Coding Exercises
Open this topic when you’re ready
- Automate login with TestNG assertions.
- Run valid and invalid login datasets using DataProvider.
- Build reusable CSS and XPath locators.
- Wait for a dynamically loaded element using an explicit wait.
- Handle an element replaced after a page refresh.
- Select values from native and custom dropdowns.
- Select a date from a calendar.
- Read a table and act on the row matching an order ID.
- Search across a paginated table.
- Switch into nested frames and return to the main page.
- Switch between multiple windows using their handles.
- Handle alerts, confirmations and prompts.
- Perform hover and keyboard actions.
- Upload a file through a file input.
- Verify sorting and filtering of product results.
- Implement page objects for an end-to-end purchase.
- Capture screenshots when tests fail.
- Read configuration and test data from external files.
- Run tests in parallel with a separate driver per thread.
- Execute the same suite through RemoteWebDriver.
06API Testing Requests
Open this topic when you’re ready
API Testing Requests
Open this topic when you’re ready
GET /productsto retrieve a collection.GET /products/{id}to retrieve one resource.GET /products?page=2&limit=10to test pagination.GET /products?category=booksto test filtering.GET /products?sort=price&order=ascto test sorting.POST /usersto create a user.PUT /users/{id}to replace an editable representation.PATCH /users/{id}to update selected fields.DELETE /users/{id}to delete a resource.POST /auth/loginwith valid credentials.POST /auth/loginwith invalid credentials.GET /profilewith a valid access token.GET /profilewithout an access token.GET /profilewith an expired token.GET /admin/usersusing a non-admin account.POST /userswith a missing mandatory field.POST /userswith invalid types or boundary values.POST /fileswith a multipart file upload.- Repeat
POST /orderswith the same supported idempotency key. - Send requests at the documented rate limit and inspect throttling.
07API Automation Coding Exercises
Open this topic when you’re ready
API Automation Coding Exercises
Open this topic when you’re ready
- Send a GET request and assert status, headers and body.
- Create a resource and verify it with a subsequent GET.
- Update a resource and verify persisted changes.
- Delete a resource and verify the documented deletion behaviour.
- Extract an ID and chain dependent requests.
- Obtain a token and call a protected endpoint.
- Test missing, invalid and expired credentials.
- Verify role-based access across different users.
- Parameterise requests with multiple datasets.
- Build request payloads using Java objects.
- Deserialise responses into Java objects.
- Validate nested JSON objects and arrays.
- Validate responses against a JSON Schema.
- Check pagination for missing and duplicate records.
- Verify filtering and sorting against expected results.
- Upload a file and validate the returned metadata.
- Test mandatory fields, invalid types and boundaries.
- Verify idempotency where the API supports it.
- Poll an asynchronous operation until completion or timeout.
- Build a reusable suite with isolated data, cleanup and failure logging.
08Tosca Modules
Open this topic when you’re ready
Tosca Modules
Open this topic when you’re ready
- Login page
- Registration form
- Product search and results
- Shopping cart
- Checkout and order confirmation
- API request and response
- TBox Set Buffer
- TBox Name To Buffer
- TBox Partial Buffer
- TBox Delete Buffer
- TBox Iterate Array
- TBox Array Operation
- TBox File Existence
- TBox Read/Create File
- TBox File Compare
- TBox Copy File
- TBox Move/Rename File
- TBox Delete File
- TBox Start Program
- TBox Close Program
09Tosca Automation Scenarios
Open this topic when you’re ready
Tosca Automation Scenarios
Open this topic when you’re ready
- Scan a login page and create a reusable login TestCase.
- Verify successful and unsuccessful login.
- Enter form data with Input and check results with Verify.
- Capture a generated order ID using Buffer.
- Reuse the buffered order ID in another TestStep.
- Extract part of a reference number using TBox Partial Buffer.
- Wait for an application status using WaitOn.
- Identify a table row using Constraint and verify its values.
- Build a reusable login TestStepBlock.
- Parameterise a reusable flow for different users.
- Generate test instances from a TestCase template.
- Design boundary-value combinations in TestCase Design.
- Execute different branches using conditional statements.
- Repeat a business flow using a loop.
- Iterate buffered table values and verify each record.
- Create an order through an API and verify it in the UI.
- Verify a downloaded report exists and contains expected text.
- Configure recovery for an unexpected application dialog.
- Rescan a changed screen and verify affected TestCases.
- Execute a regression suite through an ExecutionList and investigate failures.
10AI-Assisted Testing Techniques
Open this topic when you’re ready
AI-Assisted Testing Techniques
Open this topic when you’re ready
- Give the model a clear testing objective.
- Supply requirements and acceptance criteria.
- Include relevant business rules and constraints.
- Ask it to identify unclear or conflicting requirements.
- Provide examples of the output you expect.
- Request a structured test-case format.
- Generate positive and negative scenarios separately.
- Generate boundary-value test ideas.
- Ask for state-transition and decision-table coverage.
- Compare generated tests against acceptance criteria.
- Identify duplicate and low-value test cases.
- Generate synthetic test data.
- Draft automation code using your framework conventions.
- Review generated locators, waits and assertions.
- Check suggested APIs and methods against documentation.
- Use sanitised logs to generate failure hypotheses.
- Ask for explanations before accepting code changes.
- Review refactored tests for changed behaviour.
- Keep reusable prompts under version control.
- Evaluate prompt changes against a fixed set of testing tasks.
11Concepts for Testing AI Applications
Open this topic when you’re ready
Concepts for Testing AI Applications
Open this topic when you’re ready
- Model behaviour versus application behaviour
- Probabilistic outputs and non-determinism
- Clear acceptance criteria for generated answers
- Test oracles: deciding whether an answer is acceptable
- Representative evaluation datasets
- Human-reviewed reference answers
- Factual accuracy and hallucinations
- Answer relevance and completeness
- Grounding answers in supplied evidence
- Retrieval quality in RAG applications
- Citation correctness and source support
- Prompt injection and instruction manipulation
- Sensitive-data exposure and access control
- Harmful outputs and refusal behaviour
- Bias across user groups and languages
- Consistency across paraphrased prompts
- Multi-turn context and conversation memory
- Tool-call correctness and action permissions
- Latency, usage cost and failure handling
- 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 →