Testing & QA English Lab

9 exercise sets covering the English vocabulary QA engineers need every day: writing test plans, describing defects, communicating in sprints, and using BDD/Gherkin.

📋
Intermediate 5 exercises

Test Plan Writing

Scope, exit criteria, risk vocabulary, and how to write objectives and approach sections in QA test plans.

🐛
Intermediate 5 exercises

Defect Report Language

Bug title precision, severity vs. priority, steps to reproduce, and how to escalate critical defects professionally.

Intermediate 5 exercises

Test Case Writing

Preconditions, test steps, expected results, and status vocabulary (Pass/Fail/Blocked/Not Run) for professional test cases.

🥒
Intermediate 5 exercises

BDD Gherkin Language

Given/When/Then structure, declarative vs. imperative style, Background sections, Scenario Outlines, and common Gherkin pitfalls.

🔄
Intermediate 5 exercises

Regression & Smoke Test Communication

Regression, smoke, and sanity test vocabulary; test coverage discussion; go/no-go decision language for releases.

📊
Intermediate 5 exercises

QA Status Reporting

Daily updates, sprint test summaries, QA sign-off language, escalating showstoppers, and communicating known gaps.

Upper-Intermediate 5 exercises

Performance Testing Vocabulary

Load, stress, spike, and soak tests; P95/P99 percentiles; throughput vs. latency; performance acceptance criteria writing.

🔒
Upper-Intermediate 5 exercises

Security Testing Language

OWASP findings, CVSS score vocabulary, SAST vs. DAST vs. IAST, penetration testing report structure, and scope writing.

🤖
Upper-Intermediate 5 exercises

Test Automation Framework Vocabulary

Mocks, stubs, spies, test runner hooks, assertion types, the test pyramid, and CI/CD pipeline testing language.

Frequently Asked Questions

What is the difference between unit, integration, and end-to-end tests?

Unit tests verify a single function or class in isolation, replacing dependencies with mocks or stubs. Integration tests check that two or more components work together correctly — for example, a service and its database layer. End-to-end (E2E) tests exercise the full application stack from the UI through to the backend, simulating real user journeys. The test pyramid model recommends many unit tests, fewer integration tests, and even fewer E2E tests because higher-level tests are slower and more brittle.

What should a well-written defect report include?

A professional defect report should contain: a concise, specific title summarising the problem; the severity (how badly it affects the product) and priority (how urgently it should be fixed); a numbered list of steps to reproduce the issue; the actual result observed; the expected result; and environment details (OS, browser, build version). Optional but valuable fields include screenshots or screen recordings, log excerpts, and a test data specification.

What is regression testing and when is it run?

Regression testing verifies that previously working functionality has not been broken by recent code changes. It is typically run after every code change, bug fix, or new feature merge — often as part of a CI/CD pipeline. A regression suite is a curated set of test cases covering critical paths. A smoke test is a minimal regression run that checks only core functionality to quickly determine whether a build is stable enough for fuller testing.

What does test coverage mean and what are its limitations?

Test coverage (most commonly line or branch coverage) measures what percentage of the codebase is executed by the test suite. High coverage indicates that most code paths are exercised, but it does not guarantee correctness — a test can execute a line without asserting the right outcome. Coverage is best used as a floor (e.g. "no PR below 80% coverage") rather than a quality ceiling. Mutation testing is a more rigorous technique that checks whether tests can detect deliberate code changes.

What is BDD and how does Gherkin syntax work?

Behaviour-Driven Development (BDD) is a practice where tests are written in plain language that both technical and non-technical stakeholders can read. Gherkin is the structured language used to write BDD scenarios using Given/When/Then syntax: Given describes the initial context, When describes the action taken, and Then describes the expected outcome. Scenarios live in .feature files and are executed by frameworks such as Cucumber or SpecFlow.

How do QA engineers communicate a "go/no-go" decision before a release?

A go/no-go decision is communicated after evaluating whether the product meets release criteria. A typical QA sign-off includes: the number of open defects by severity, test execution results (pass/fail/blocked counts), coverage of acceptance criteria, any known gaps or deferred issues, and a clear recommendation. Common phrasing includes: "All P1 defects are resolved. Two P2 defects are accepted as known issues. QA recommends go." A no-go typically cites unresolved blockers or insufficient test coverage.

What is the difference between severity and priority in defect management?

Severity describes the technical impact of a defect on the system — a crash is higher severity than a cosmetic issue. Priority describes the business urgency of fixing it — a minor bug on the checkout page may have low severity but high priority due to its business impact. A defect can be high severity but low priority (e.g. a crash in a rarely used admin feature) or low severity but high priority (e.g. a misspelling in a product launch banner). Distinguishing these terms is a common QA interview topic.

What are mocks, stubs, and spies in test automation?

These are all test doubles — objects that replace real dependencies in unit tests. A stub returns pre-configured responses to calls without recording anything. A mock is pre-programmed with expectations about which calls it should receive and will fail the test if those expectations are not met. A spy wraps a real object, allowing real behaviour while recording calls for later assertion. The distinction matters when writing precise test documentation and reviewing automation frameworks.

What is performance testing and what types exist?

Performance testing evaluates how a system behaves under load. Load testing applies expected production traffic to check normal performance. Stress testing pushes beyond expected limits to find the breaking point. Spike testing applies a sudden large increase in load. Soak (endurance) testing runs sustained moderate load over many hours to detect memory leaks. Key metrics include throughput (requests per second), latency percentiles (P95, P99), and error rate.

What vocabulary should a QA engineer know for security testing?

Core security testing vocabulary includes: OWASP Top 10 (the most critical web application vulnerabilities), CVSS score (a standardised severity rating from 0–10), SAST (Static Application Security Testing — analysing source code without running it), DAST (Dynamic Application Security Testing — probing a running application), and IAST (Interactive AST — instrumentation during test execution). Penetration testing reports typically document findings using a risk matrix and include reproduction steps and remediation recommendations.