ScreenshotNeo

BlogGuides

Test Scenario vs. Test Case: What’s the Difference?

A test scenario describes the situation to explore; a test case specifies the preconditions, inputs, and expected results for a test objective.

By the ScreenshotNeo team4 October 20269 min read

A test scenario describes a situation or setting to explore and provides a basis for deriving tests. A test case specifies the preconditions, inputs, and expected results for a particular test objective. In short, the scenario gives context; the case makes a check concrete enough to execute and evaluate.

That distinction follows ISO/IEC/IEEE 29119-1:2022. In everyday QA conversation, “scenario” is also used loosely for a user journey, a sequence of steps, or even an executable script. Teams should define what their artifacts mean. Here, “test scenario” means the situation or setting that serves as a basis for generating cases.

1. The difference at a glance

Aspect Test scenario Test case
Abstraction Higher-level situation, setting, or interaction to explore Specific test specification for an objective
Purpose Identifies an area or flow that needs testing Defines what to set up, provide, and observe
Detail Usually concise; leaves test variations open Includes preconditions, inputs, and expected results
Execution readiness May need design work before execution Can guide an execution once its environment and data are available
Relationship Can be a basis for deriving one or more cases Can be linked to a scenario, requirement, or other test basis

There is no fixed one-to-one or one-to-many rule. One scenario can lead to several cases when different inputs, states, or outcomes need checking. The number and grouping are design choices.

2. Login example: from scenario to cases

Suppose the feature is account sign-in.

Scenario

A user attempts to sign in to an account.

This names the situation, but it does not yet say which account state or credentials to use, or exactly what result should count as success.

Cases derived from that scenario

Case Precondition Input and action Expected result
Valid credentials An active account exists and is signed out Submit that account’s correct username and password The account is authenticated and the specified signed-in destination appears
Wrong password An active account exists and is signed out Submit the correct username with an incorrect password Authentication is denied and the specified error is shown
Locked account The account is in a locked state Submit otherwise valid credentials Access is denied according to the product’s lockout behavior
Malformed input The sign-in form is available Submit a malformed username or a value outside a specified input constraint The specified validation behavior occurs; the application does not authenticate the request

These are illustrative cases, not cases mandated by the standards. Replace assumptions such as the error message, redirect, and lockout behavior with the product requirements. A result like “works correctly” is not specific enough to evaluate: state an observable outcome.

A practical case template

Test case: Sign in with valid credentials
Objective: Verify that an active user can authenticate
Preconditions:
  - The sign-in service is available
  - An active test account exists and is signed out
Inputs:
  - Username: a valid test account username
  - Password: the matching test account password
Action:
  - Submit the sign-in form
Expected result:
  - Authentication succeeds
  - The specified signed-in destination is displayed

The ISO definition centers on preconditions, inputs, and expected results. Teams often add an identifier, priority, requirement link, steps, actual result, execution status, owner, or notes. Those can make a template useful for a team, but they are optional additions rather than all being part of that definition. Keep secrets out of shared test records: use controlled test accounts and reference secure test data rather than writing real credentials into a case.

3. How scenario, case, and procedure fit together

A useful working chain is:

  1. Scenario: identify the situation or setting to explore.
  2. Test cases: derive checks with specific preconditions, inputs, and expected results.
  3. Test procedure: arrange selected cases in execution order, with the actions needed to establish preconditions and perform wrap-up.

A procedure answers “in what order will this run, and what setup or cleanup is needed?” It is not just another name for a case. ISO/IEC/IEEE 29119-1:2022 defines a test procedure as an ordered sequence of test cases with associated actions as needed. A procedure specification documents one or more procedures.

For the login example, a run might first ensure the test accounts have known states, execute the valid-credentials case, execute the wrong-password case, and then restore any changed account state. The order depends on setup, dependencies, and the purpose of the run.

4. How to turn a scenario into useful cases

  1. State the situation plainly. Name the feature, actor or system, and relevant context. Avoid hiding several distinct flows in one vague scenario.
  2. Identify the objective. What behavior or requirement should the tests provide evidence about?
  3. List meaningful variations. Consider input classes, boundaries, state, permissions, dependencies, and failure paths that matter to the objective.
  4. Define preconditions and data. Record the required state of the system, environment, and data. Make setup repeatable.
  5. Write observable expected results. Describe what should be visible or verifiable, including relevant state changes. Avoid subjective outcomes.
  6. Choose cases by risk and coverage needs. Prioritize cases based on the consequences and likelihood of failures, available time, and the evidence needed. Exhaustive testing is usually impractical.
  7. Make execution and cleanup clear. Specify actions where needed, then order cases in a procedure if setup, dependencies, or wrap-up require it.

The standard’s Part 4 describes test design techniques that can derive cases intended to produce evidence that requirements are met or defects are present. The series overview explains the roles of Parts 1–4: common concepts, processes, documentation, and test techniques respectively. See the ISO series overview and the IEEE page for Part 4.

  • Test scenario: in ISO/IEC/IEEE 29119-1:2022, a situation or setting used as a basis for generating cases.
  • Scenario testing: a specification-based test-case design technique based on exercising sequences of interactions between the test item and other systems. The standard counts users as other systems in this context. This is a technique, not another name for a test scenario.
  • Test condition: the ISTQB Standard Glossary, Version 3.3 (11 November 2019), describes it as a testable aspect identified as a basis for testing. This glossary predates the 2022 ISO edition. ISO/IEC/IEEE 29119-1:2022 notes that its series uses a test model for test design rather than the concept of test conditions.
  • Test procedure: an execution-ordered sequence of cases and any needed setup or wrap-up actions.
  • Test result: an indication of whether the actual result corresponds to the expected result or deviations were observed.

These distinctions matter because teams sometimes call a flow, a set of steps, or a script a “scenario.” That usage may be understandable locally, but it can make handoffs ambiguous. Define artifact names, minimum fields, and the relationship between scenario, case, and procedure in the team’s testing documentation.

6. Capturing visual evidence for a UI test

For a user interface case, a screenshot can supplement the recorded result when appearance is relevant—for example, when verifying that the sign-in error is visible or that the account page appears after authentication. A screenshot does not prove every aspect of authentication or replace assertions on application state; treat it as visual evidence tied to a specific case, environment, and run.

ScreenshotNeo is a website screenshot API and MCP server from Yorker Media. Its captures can provide an image artifact for a UI check. Keep the case’s expected result and pass/fail decision in your test process, and avoid capturing sensitive account data.

7. Or skip the browser setup

If a case needs a website screenshot as visual evidence, ScreenshotNeo can capture a URL with one GET request. See the ScreenshotNeo API documentation for configuration options.

curl -G "https://api.screenshotneo.com/v1/shot" -d access_key=YOUR_API_KEY --data-urlencode url=https://stripe.com -o shot.webp
import requests

r = requests.get(
    "https://api.screenshotneo.com/v1/shot",
    params={"access_key": "YOUR_API_KEY", "url": "https://stripe.com"},
    timeout=90,
)
open("shot.webp", "wb").write(r.content)
const q = new URLSearchParams({ access_key: 'YOUR_API_KEY', url: 'https://stripe.com' });
const res = await fetch(`https://api.screenshotneo.com/v1/shot?${q}`);
if (!res.ok) throw new Error(`Screenshot request failed: ${res.status}`);
await Bun.write('shot.webp', res);

Replace the example URL with a page you are authorized to capture. The API can return PNG, JPEG, WebP, or PDF; its broader options include full-page or CSS-selector capture, viewport and device presets, waiting for a selector, delay or network idle, custom CSS and JavaScript, cookies and headers, and more. Cookie banners, newsletter popups, and chat widgets are removed before capture, and each step can be disabled. Bot checks, blank pages, timeouts, failed loads, and cache hits are not billed; response headers say which page verdict applied and whether it was billed. An MCP server exposes take_screenshot, get_page_info, and capture_pdf to AI agents and MCP clients.

Free includes 1,000 screenshots per month with no card. Paid plans start at $5 for 3,000; every feature is on every plan. Sign up for ScreenshotNeo’s free 1,000 screenshots a month, with no card required.

8. Troubleshooting scenario and case design

Problem Likely cause Fix
A case is just “test login” The scenario has not been made executable Add the required starting state, concrete inputs, action, and an observable expected result.
Expected result says “works” or “correct” The result cannot be assessed consistently Specify the visible outcome or state change and the condition that makes it pass.
Case fails intermittently Preconditions, test data, timing, or dependencies are not controlled Make setup explicit, use isolated test data, and define synchronization based on the system’s expected behavior.
Several testers interpret a scenario differently The team uses “scenario” for different artifact types Document local terminology and examples; label procedures and scripts separately.
One case covers many unrelated outcomes Cases are grouped for convenience rather than a clear objective Split checks when they need distinct inputs, expected results, or failure diagnosis.
There are too many cases to run Selection is not tied to risk or objective Prioritize by risk, requirements, and needed evidence; retain broader cases for appropriate test levels or runs.
A screenshot looks different between runs Page state, viewport, timing, dynamic content, or browser environment changed Record relevant environment and state, wait for a meaningful page condition, and capture the same viewport and data where possible.

9. Performance, reliability, and cost considerations

Clear cases improve repeatability and failure diagnosis. Keep each case focused on an objective, minimize unnecessary setup dependencies, and make state restoration explicit. For UI checks, avoid relying only on fixed delays when a meaningful condition can be stated; unstable timing and external dependencies can create intermittent results.

Testing is a selection problem: exhaustive combinations are generally impractical, so choose and prioritize work based on risk and the evidence required. The ISO/IEC/IEEE series describes risk-based testing as a core approach. A screenshot adds capture time and storage or review work to a UI run, so reserve visual artifacts for checks where appearance or a record of the page state helps. Do not treat an image alone as a complete test oracle.

ScreenshotNeo offers a free allowance of 1,000 shots each month. Paid options are Starter ($5 for 3,000), Growth ($15 for 15,000), Pro ($39 for 60,000), Scale ($99 for 250,000), and Business ($249 for 1,000,000); yearly billing gives two months free. Only clean shots are billed, and each response includes page-verdict and billing headers. Use those headers when reconciling capture results with a test run.

10. Frequently asked questions

Can one test scenario have multiple test cases?

Yes. A scenario can lead to several cases when different inputs, states, or outcomes need evaluation. There is no fixed count; derive the cases needed for the objectives and risks.

Does every test case need a matching scenario?

No universal one-to-one mapping is required. A case can be traced to a requirement or other test basis, and teams can choose how they group related cases.

Is a scenario the same as an end-to-end test?

No. A scenario describes a situation or setting in the terminology used here. An end-to-end test is a kind of test scope or execution that crosses system components; teams may describe its user journey as a scenario, but the terms do not mean the same thing.

Do I have to follow ISO terminology?

No. Teams can use conventions that fit their process. Consistent definitions and enough detail for the intended reader to design, execute, and evaluate the test are what prevent misunderstandings.