Software Testing Glossary
A sequential, tutorial-style glossary of the 100 most important software-testing concepts — with production code, ASCII architecture, and interview-grade FAQs.
Smoke Testing — Definition, Architecture & CI Implementation
Smoke testing is the first quality gate every build must pass. A ten-minute pass/fail signal that decides whether the rest of the QA pyramid is worth running.
Read guide Topic 2 of 100Regression Testing — Definition, Selection & CI Strategy
Regression testing is the safety net that keeps yesterday's features working after today's merge. Its economics only survive when you select tests intelligently instead of running every test on every commit.
Read guide Topic 3 of 100Test Pyramid — Definition, Layers & Modern Variations
The test pyramid is the industry's most-cited and most-misunderstood diagram. It is a cost model, not a rule. Understanding what it optimises for — and where its assumptions break — is the difference between a fast suite and a slow one.
Read guide Topic 4 of 100BDD (Behavior-Driven Development) — Definition, Gherkin & Cucumber
Behavior-Driven Development bridges the gap between product intent and executable tests. Done well, it produces specifications that a business analyst can read and a CI server can run.
Read guide Topic 5 of 100TDD (Test-Driven Development) — Red / Green / Refactor Explained
Test-Driven Development is a design discipline disguised as a testing practice. Writing the test first forces you to specify what 'done' looks like before you have the freedom to over-engineer.
Read guide Topic 6 of 100Shift-Left Testing — Definition, Practices & Pipeline Design
Shift-left testing collapses the classic 'code, then QA, then release' handoff into a continuous quality loop. Defects caught in requirements cost roughly one-hundredth of what they cost in production.
Read guide Topic 7 of 100Flaky Test — Causes, Diagnosis & The 7-Step Fix
A flaky test lies. It sometimes passes and sometimes fails on identical code, which is worse than a test that always fails — teams learn to ignore its verdict and, eventually, ignore the rest of the suite with it.
Read guide Topic 8 of 100Contract Testing — Consumer-Driven Contracts with Pact
Contract testing catches inter-service breakage without spinning up a full environment. Every consumer declares its expectations; every producer verifies them before deploy.
Read guide Topic 9 of 100Mocking — Definition, Doubles Taxonomy & Best Practices
A mock is a programmable substitute for a real dependency that also verifies how it was called. Overused, mocks freeze bad designs; used well, they turn slow tests into fast, focused ones.
Read guide Topic 10 of 100Stubbing — Definition, Patterns & When to Prefer It Over Mocks
A stub is the quietest test double — it answers questions with prepared responses and asks nothing in return. That silence is exactly why it is safer than a mock for the majority of tests.
Read guide Topic 11 of 100API Mocking — Definition, Architecture & MSW Implementation
API mocking is the network-layer cousin of stubbing. Instead of replacing a function, you replace an entire HTTP endpoint with a programmable server that your app cannot tell apart from the real one.
Read guide Topic 12 of 100Page Object Model — Definition, Architecture & Playwright Implementation
The Page Object Model turns your UI into a typed API. Selectors move out of test files, actions become method calls, and the suite survives every redesign that would otherwise trigger a hundred find-and-replace edits.
Read guide Topic 13 of 100Data-Driven Testing — Definition, Architecture & Parametrised Code
Data-driven testing separates test logic from test data. One scenario, many rows, and every edge case gets a first-class name in the report.
Read guide Topic 14 of 100Keyword-Driven Testing — Definition, Architecture & Robot Framework Code
Keyword-driven testing gives your business analysts a real seat at the automation table. A shared vocabulary of steps lets them assemble new scenarios without writing code — while engineers keep control of what each keyword means.
Read guide Topic 15 of 100Exploratory Testing — Definition, Charters & Session-Based Practice
Exploratory testing is what finds the bugs scripted tests were never designed to catch. Done well, it is the most systematic form of QA in the toolbox; done poorly, it is expensive clicking.
Read guide Topic 16 of 100Mutation Testing — Definition, Architecture & Stryker Implementation
Coverage tells you which lines your tests execute. Mutation testing tells you whether those tests would notice if the code broke.
Read guide Topic 17 of 100Accessibility Testing — Definition, WCAG & Axe Automation
Accessibility testing is quality assurance for the widest possible audience. A site that fails an axe scan or a screen-reader walkthrough is not a niche defect — it is broken for tens of millions of users.
Read guide Topic 18 of 100Security Testing — Definition, OWASP & Automation
Security testing is the discipline that keeps a build from becoming next week's breach headline. It is a stack of techniques, not a checkbox — and every layer has a specific class of defect it exists to catch.
Read guide Topic 19 of 100Performance Testing — Definition, Types & k6 Implementation
Performance testing is how you find the point where a system stops behaving before your users do. Load, stress, soak, and spike are not synonyms — each answers a different question about the shape of failure.
Read guide Topic 20 of 100Load Testing — Definition, Modelling & Distributed k6 Execution
Load testing is the specific subtype of performance testing that answers one question: does the system meet its SLOs at expected peak traffic? Everything else — modelling, tooling, environment fidelity — exists to make the answer trustworthy.
Read guide GlossaryShift-Left Testing — Definition & Implementation Guide
Shift-left testing is the practice of running quality checks earlier in the software development lifecycle — at requirements, design, and unit-test stages — rather than only after a build is ready for QA.
Read guide GlossaryFlaky Test — What It Is & The 7-Step Fix
A flaky test is one that produces different results on the same code without intentional changes. Flaky tests destroy trust in your automation suite faster than missing coverage does.
Read guide GlossarySmoke vs Sanity Testing — The Clear Difference
Both are quick checks that run before deeper testing. Smoke tests verify the build is stable enough to test. Sanity tests verify a specific change works as expected.
Read guide