Technology & Testing More detail C · Industry convention Platform: General

Test Double

A Test Double stands in for a real system part. Stubs, fakes, spies, and mocks give control or visibility.

See how it works
You might call it mockstubfakespy

See how it works

Original worked exampleTest Double

Another example

A shipping test uses a fake carrier with fixed rates. A spy checks that an accepted order schedules one pickup.

Main parts

  1. 01Code or behavior under test
  2. 02Observable evidence
  3. 03Coverage, failure, and recovery

Use it when

Choose the simplest double that stabilizes a boundary or reveals an important contract.

Do not use it when

Do not mock your own call graph, copy dependency bugs, or replace a valuable integration test.

Name used in code

stub / fake / spy / mock

Before you ship

Check the environment and prepared test data (fixture). Define a result you can observe, failure and edge cases, isolation, stable inputs, useful error details, and cleanup. Set a time budget, owner, and flaky-test rule.

Request you can copy

Outcome: Use Test Double to gather repeatable evidence about this behavior or quality risk. User context: A shipping test uses a fake carrier with fixed rates. A spy checks that an accepted order schedules one pickup. Validation approach: Test Double. Why it fits: Choose the simplest double that stabilizes a boundary or reveals an important contract. Do not use it when: Do not mock your own call graph, copy dependency bugs, or replace a valuable integration test. Test requirements: Name the system and test environment. Define prepared test data, other inputs, and the result you can observe. Include failure and edge cases, allowed error, isolation, and cleanup. Test operations: Make failures easy to diagnose. Control random or changing inputs. Name an owner. Keep the test fast and simple enough for its release gate. Acceptance criteria: The test fails for the known bug and passes after the fix. It repeats in the target environment, gives useful evidence, and does not expose or change unrelated data. Evidence and limits (evidence boundary): No single official standard controls the whole term. Its meaning may change across teams, platforms, or frameworks. Unknowns to confirm: Release gate, environment, prepared test data, allowed error, time budget, owner, and flaky-test rule.

Check this request

Review the current use of Test Double. Definition: A Test Double stands in for a real system part. Stubs, fakes, spies, and mocks give control or visibility. Release checks: Check the environment and prepared test data (fixture). Define a result you can observe, failure and edge cases, isolation, stable inputs, useful error details, and cleanup. Set a time budget, owner, and flaky-test rule. Before changing code, report the evidence you found, gaps, severity, and the smallest safe fix.

C
How official is this term?

Industry convention

People often use this term at work. The listed sources may support practice or limitations. They do not define every part of the term.

No single official standard controls the whole term. Its meaning may change across teams, platforms, or frameworks.

Scope
Software-testing convention
Document status
stable
Checked on
2026-07-30

Evidence sources & scope

Authority source · International Software Testing Qualifications Board · stable ISTQB Glossary Scope: Software testing vocabulary Role here: Helpful background, not a definition Source covers: canonical name, definition, usage guidance, avoidance guidance

Copy it yourself

The browser could not copy this. Select the request below and copy it yourself.