Blog

What is a Test Case - Definition, Types, Formats, and Examples

Rishabh Kumar

Published on

Summarise this article with AI:

ChatGPT

Perplexity

Claude

Grok

Google AI

Summarise this article with AI:

ChatGPT

Perplexity

Claude

Grok

Google AI

Summarise this article with AI:

ChatGPT

Perplexity

Claude

Grok

Google AI

Table of contents

Lorem ipsum

Lorem ipsum

Lorem ipsum

Lorem ipsum

Lorem ipsum

A test case is a detailed set of conditions, actions, and expected results used to validate specific software functionality. It defines exactly what to test, how to test it, and what success looks like. Well-written test cases enable consistent, repeatable validation whether executed manually or automated. Traditional test case documentation requires extensive manual effort, becomes outdated quickly, and creates barriers between testers and stakeholders. AI-native testing platforms now enable teams to create executable test cases in natural language, eliminating documentation overhead while enabling business users to define validation scenarios without technical expertise, accelerating test creation by 80-90% while improving clarity and maintainability.

What is a Test Case?

A test case is a specific set of conditions under which a tester determines whether software functions correctly. It documents the inputs, execution steps, preconditions, and expected outcomes required to validate a particular aspect of application functionality.

Purpose of Test Cases

  • ‍Validate Requirements - Test cases verify that software implements specific requirements correctly. Each test case maps to requirements, user stories, or acceptance criteria ensuring complete coverage.‍
    ‍

  • Enable Repeatability - Well-documented test cases enable different testers to execute identical validation. Consistency across test executions ensures reliable results.‍
    ‍

  • Support Automation - Test cases provide blueprints for automated tests. Detailed test case documentation translates directly into automated test scripts.‍
    ‍

  • Provide Traceability - Test cases link requirements to validation activities. This traceability proves that all requirements received appropriate testing coverage.‍
    ‍

  • Facilitate Communication - Test cases communicate testing intentions to stakeholders. Developers understand what QA will validate. Product owners confirm testing addresses business needs.
    ‍

Test Case, Test Scenario, and Test Script: What is the Difference?

These three terms are frequently used interchangeably and mean different things. Confusing them leads to poorly scoped test planning and gaps in coverage.

Aspect

Test scenario

Test case

Test script

What it is

A high-level description of something to test

A detailed set of steps, data and expected results

Code or automation instructions that run the test

Level of detail

Low: one line or a short sentence

High: every step and expected outcome

Very high: exact, machine-executable actions

Example

"Check the checkout process"

"User completes purchase with a valid credit card", with steps, data and expected results

An automated test that fills in the card form, submits it and checks the confirmation

Main audience

Test leads, product owners, business analysts

Testers running or reviewing the test

Automation engineers and CI/CD pipelines

Typical use

Planning coverage and spotting gaps

Manual execution and as the basis for automation

Automated, repeatable execution

Relationship

One scenario contains several test cases

One test case can become one or more scripts

Implements a test case in automation

In short, a scenario says what to test, a test case says how to test it, and a script makes a machine do it.

To learn more, see our guide on how test cases and test scenarios differ.


10 Types of Test Cases

Software can fail in more ways than most teams plan for. A feature can work correctly but crash under load. An interface can function as designed but be unusable for someone relying on a screen reader. A database can accept inputs correctly but return inconsistent results under concurrent queries. Different types of test cases exist because different failure modes require different validation approaches. Knowing which types apply to your context is what separates intentional test coverage from accidental coverage.

Type

What it checks

Example

Functional

Features work as specified

Adding a product updates the cart total

Integration

Components work together

A payment updates the order status in the database

User interface

The visual layer renders and responds correctly

Validation messages appear next to the right field

Usability

Real users can achieve their goals easily

A new user completes setup without help

Accessibility

People using assistive technology can use the app

Every control works with a keyboard alone

Performance

Speed and stability under load

Key pages load quickly at peak traffic

Security

The app resists attacks and protects data

SQL injection attempts are blocked

Database

Data is stored and retrieved correctly

Duplicate email addresses are rejected

Regression

Existing features still work after changes

A checkout layout change hasn't broken payments

User acceptance

The software meets real business needs

A sales manager exports a monthly pipeline report

  1. Functional Test Cases

Functional test cases verify that specific features of an application work as designed. They are the most common type and the natural starting point for any test suite because they map directly to requirements, user stories, and acceptance criteria.

A functional test case for a login feature would verify that a registered user can enter valid credentials and reach the dashboard. It checks the output against the expected behaviour, nothing more.

Examples:

  • Verifying that a user can add a product to a shopping cart and see the updated cart total

  • Confirming that a form submission saves data to the correct database record

  • Checking that a discount code applies the correct percentage to an order total
    ‍

  1. Integration Test Cases

Integration test cases verify that separate components of a system work correctly together. Individual modules may pass functional tests in isolation and still break when they interact. Integration testing finds the failures that live in the connections, not the components.

These tests are especially important in architectures with microservices, third-party APIs, or multiple databases, where integration points multiply and each one is a potential failure.

Examples:

  • Verifying that a payment API processes a transaction and correctly updates order status in the database

  • Confirming that a user registration creates both an account record and triggers a welcome email

  • Testing that a third-party authentication service correctly grants access to the main application
    ‍

  1. User Interface Test Cases

User interface (UI) test cases verify that the visual layer of an application renders correctly and responds to user interaction as expected. A feature can work perfectly in the backend and still fail if the button does not render, the form field does not accept input, or an error message appears in the wrong location.

These tests are particularly critical after UI redesigns, framework migrations, or CSS updates, where visual behaviour can change without any functional code changing.

Examples:

  • Confirming that form validation messages appear adjacent to the relevant field, not at the top of the page

  • Verifying that a navigation dropdown opens on hover and closes on click-away

  • Checking that a data table renders correctly across all supported screen widths
    ‍

  1. Usability Test Cases

Usability test cases evaluate whether an application is intuitive to use. Unlike functional or UI tests that check whether things work, usability tests assess whether real users can accomplish their goals without friction, confusion, or the need for documentation.

These tests require testers to adopt a user perspective rather than a QA perspective. The question is not "does it work?" but "can someone unfamiliar with this application figure out how to use it?"

Examples:

  • Testing whether a new user can complete account setup without referring to help documentation

  • Verifying that error messages explain what went wrong and what the user should do next

  • Checking that the terminology used in the interface matches what target users would expect
    ‍

  1. Accessibility Test Cases

Accessibility test cases verify that an application can be used by people with disabilities, including those who rely on screen readers, keyboard navigation, voice controls, or other assistive technologies. They also validate compliance with standards such as WCAG (Web Content Accessibility Guidelines), the European Accessibility Act (EAA), and the Americans with Disabilities Act (ADA).

Accessibility failures are rarely visible in functional testing. An application can pass every functional test and still be completely unusable for a significant portion of the population.

Examples:

  • Testing that all interactive elements can be reached and activated using only a keyboard, with no mouse

  • Verifying that images and icons have descriptive alternative text for screen readers

  • Confirming that colour contrast ratios meet WCAG AA standards for text legibility
    ‍

  1. Performance Test Cases

Performance test cases measure how a system behaves under varying levels of load and stress. They validate speed, responsiveness, stability, and resource usage. An application may work correctly with five users and fail silently with five thousand.

Performance testing catches bottlenecks, memory leaks, and scalability limits before real users experience them in production.

Examples:

  • Testing that key pages load within acceptable thresholds under simulated peak traffic

  • Verifying that API endpoints handle expected request volumes without timeout errors

  • Confirming that the application remains stable after running continuously for 72 hours
    ‍

  1. Security Test Cases

Security test cases identify vulnerabilities that could be exploited by attackers. They simulate known attack vectors including SQL injection, cross-site scripting, authentication bypass, and unauthorised data access. A feature can pass all functional tests while containing a critical vulnerability that exposes customer data.

In regulated industries, security test cases are not optional. GDPR, HIPAA, PCI DSS, and similar frameworks require demonstrable security testing as part of compliance.

Examples:

  • Testing that SQL injection attempts in form fields are blocked and do not expose database content

  • Verifying that authentication systems lock accounts after a defined number of failed login attempts

  • Confirming that users cannot access records belonging to other accounts by manipulating URL parameters
    ‍

  1. Database Test Cases

Database test cases verify that data is stored, retrieved, updated, and deleted correctly. They ensure data integrity, consistency, and accuracy at the persistence layer. Application-level tests may pass while the underlying data is being written incorrectly, duplicated, or silently lost.

These tests are critical for financial systems, healthcare records, and any application where data accuracy has direct real-world consequences.

Examples:

  • Verifying that creating a new user record populates all required fields and generates a unique identifier

  • Confirming that the database enforces uniqueness constraints and rejects duplicate email addresses

  • Testing that concurrent transactions do not produce inconsistent account balances
    ‍

  1. Regression Test Cases

Regression test cases verify that existing functionality continues to work correctly after code changes. Every new feature, bug fix, or dependency update is a potential source of unintended side effects. Regression testing is the mechanism that catches those side effects before they reach users.

Regression suites grow with each release and are the primary candidates for automation, since they must be executed repeatedly and consistently.

Examples:

  • Confirming that a change to the checkout layout has not broken the payment processing flow

  • Verifying that a database schema migration has not affected how existing records are retrieved

  • Testing that a third-party library update has not changed the behaviour of dependent features
    ‍

  1. User Acceptance Test Cases (UAT)

User acceptance test cases verify that software meets actual business requirements from the perspective of the end user or business stakeholder. They are the final validation before release, confirming not just that the system works technically but that it delivers what was needed.

UAT is typically performed by business users, product owners, or QA team members adopting the user perspective. These tests reflect real-world workflows, including variations and edge cases that technical testing may not anticipate.

Examples:

  • Testing that a sales manager can generate a monthly pipeline report, filter by territory, and export to Excel

  • Confirming that a new hire can complete the full onboarding workflow without assistance

  • Verifying that a customer service representative can locate an order, process a refund, and send a confirmation email in a single workflow

    ‍

Positive, Negative, and Destructive Test Cases

The types above describe what you're testing. There's a second dimension that describes how you approach the test: confirming the expected behaviour, challenging the system with bad input, or pushing it past its limits.

Approach

What it does

Login example

Positive

Confirms the system works when used as intended

A valid email and password take the user to the dashboard

Negative

Checks the system handles invalid or unexpected input safely

A wrong password shows a clear error, without revealing which field was wrong, and grants no access

Destructive

Pushes the system beyond its limits to find where it breaks

1,000 rapid login attempts against one account trigger rate limiting or lockout, and the real user can still recover the account

Positive test cases confirm the system works when used correctly: valid inputs, expected sequences and normal conditions.

  • Negative test cases check that the system handles invalid, unexpected or out-of-range input gracefully. Errors should be caught, messages should be clear, and nothing should break when a user does something unexpected.

  • Destructive test cases deliberately push the system beyond its limits, simulating extreme volumes, unusual conditions or malicious behaviour, to see where and how it fails.

Any test type can be written all three ways. A balanced suite covers all three across every relevant type. Teams that only write positive tests learn that their system works in ideal conditions.

Teams that add negative and destructive tests learn how it behaves when conditions aren't ideal, which is exactly when production failures happen.


Test Case Components

Component

What it holds

Example

Test case ID

A unique reference

TC-CHECKOUT-CC-01

Title

A short summary of what's being checked

"User completes purchase with valid credit card"

Description

The purpose and scope

Registered users can pay by card, get a confirmation and see the order in their history

Preconditions

What must be true before starting

A user account exists, and the cart has at least one product

Test data

The exact values to use

test@example.com, TestPass123, test card 4111 1111 1111 1111

Test steps

The actions to perform, in order

Go to login, enter username, enter password, click Login

Expected results

What should happen at each step

The dashboard shows "Welcome, Test User"

Actual results

What actually happened during the run

Filled in during execution

Status

The outcome

Pass, Fail, Blocked or Skipped

Priority

How important the test is

High, Medium or Low (or P1, P2, P3)

Related requirements

What the test proves

US-123, AC-456

  1. Test Case ID

Unique identifier enabling reference and tracking. Use clear naming conventions like TC-001, TC-LOGIN-01, or USER-REG-001.

Example: TC-CHECKOUT-CC-01 (Test Case for Checkout using Credit Card, first scenario)

  1. Test Case Name/Title

Concise, descriptive summary of what the test validates. Use action-oriented language clearly stating the scenario.

  • ‍Good: "User completes purchase with valid credit card"‍

  • Poor: "Test checkout" (too vague)
    ‍

  1. Test Description

Brief explanation of test purpose and scope. Provides context beyond the title.

Example: "Verify that registered users can successfully complete purchases using valid credit card payment, receive order confirmation, and see order in purchase history."

  1. Preconditions

Conditions that must exist before test execution begins. Includes system state, user accounts, test data, and configuration requirements.

Examples:

  • User account exists with username "test@example.com"

  • Shopping cart contains at least one product

  • Payment gateway configured for test transactions

  • Test environment accessible and running
    ‍

  1. Test Data

Specific data values used during test execution. Eliminates ambiguity and ensures consistent test execution.

Examples:

  • Username: test@example.com

  • Password: TestPass123

  • Credit Card: 4111 1111 1111 1111 (test card number)

  • Expiry: 12/25

  • CVV: 123
    ‍

  1. Test Steps

Sequential actions the tester performs. Each step describes one specific action in clear, unambiguous language.

Format:

  1. Navigate to login page

  2. Enter username "test@example.com"

  3. Enter password "TestPass123"

  4. Click "Login" button

  5. Verify dashboard displays
    ‍

  1. Expected Results

Explicit description of correct system behavior for each step. Defines success criteria so testers know whether tests passed or failed.

Examples:

  • Step 1 Expected Result: Login page loads with username and password fields visible

  • Step 5 Expected Result: Dashboard displays welcome message "Welcome, Test User" and shows account summary
    ‍

  1. Actual Results

Space for documenting what actually happened during execution. Completed during test execution, not during test case creation.

  1. Status

Test execution outcome: Pass, Fail, Blocked, or Skipped.

Definitions:

  • Pass: All expected results matched actual results

  • Fail: Actual results deviated from expected results indicating defect

  • Blocked: Test cannot execute due to environment issues or blocking defects

  • Skipped: Test intentionally not executed (out of scope, deferred)
    ‍

  1. Priority

Business importance indicating testing sequence. Typically High, Medium, or Low (or P1, P2, P3).

Priority Factors:

  • Business impact if functionality fails

  • Frequency of feature usage

  • Regulatory or compliance requirements

  • Risk of defects in this area
    ‍

  1. Related Requirements

Links to user stories, requirements documents, or acceptance criteria this test validates. Enables traceability.

Example: Requirements: US-123, AC-456



Test Case Formats and Templates

Different situations call for different formats. Here are the four most common, with examples you can adapt.

Standard Step-by-Step Format

The traditional format, with detailed instructions for each step. It's the most common format for manual testing.

Field

Content

Test case ID

TC-LOGIN-01

Title

Registered user logs in with valid credentials

Preconditions

The user account test@example.com exists and is active

Test data

Email: test@example.com, Password: TestPass123

Priority

High

Related requirement

US-101

Step

Action

Expected result

1

Go to the login page

The login form shows email and password fields

2

Enter the email "test@example.com"

The email appears in the field

3

Enter the password "TestPass123"

The password is masked

4

Click "Login"

The dashboard opens, showing "Welcome, Test User"

BDD (Behaviour-Driven Development) Format

This format uses a Given/When/Then structure to describe behaviour. It's popular with Agile teams practising BDD, because business stakeholders can read and write it.

Feature: User login

  Scenario: Registered user logs in with valid credentials
    Given a registered user with the email "test@example.com"
    And the user is on the login page
    When the user enters the password "TestPass123"
    And the user clicks "Login"
    Then the dashboard is displayed
    And the message "Welcome, Test User" is shown
Feature: User login

  Scenario: Registered user logs in with valid credentials
    Given a registered user with the email "test@example.com"
    And the user is on the login page
    When the user enters the password "TestPass123"
    And the user clicks "Login"
    Then the dashboard is displayed
    And the message "Welcome, Test User" is shown
Feature: User login

  Scenario: Registered user logs in with valid credentials
    Given a registered user with the email "test@example.com"
    And the user is on the login page
    When the user enters the password "TestPass123"
    And the user clicks "Login"
    Then the dashboard is displayed
    And the message "Welcome, Test User" is shown
Feature: User login

  Scenario: Registered user logs in with valid credentials
    Given a registered user with the email "test@example.com"
    And the user is on the login page
    When the user enters the password "TestPass123"
    And the user clicks "Login"
    Then the dashboard is displayed
    And the message "Welcome, Test User" is shown

Exploratory Testing Charter

A lightweight format for exploratory sessions. It sets a mission, a time box and areas to explore, without prescribing steps.

Field

Content

Charter

Explore the checkout flow with unusual payment and delivery combinations, to find errors in totals and confirmations

Time box

60 minutes

Areas to explore

Discount codes with free delivery, split payments, changing the address after choosing delivery, mobile layout

Tester

A. Patel

Notes and findings

Recorded during the session

Issues raised

Linked defects

Checklist Format

A simple list of checks, without detailed steps. It's useful for smoke testing, or for experienced testers who know the application well.

Check

Status

Homepage loads

☐

A user can log in

☐

Search returns results

☐

A product can be added to the cart

☐

Checkout page opens

☐

The user can log out

☐



How to Write Effective Test Cases

  1. Use Clear, Specific Language

Write test cases in simple, unambiguous language anyone can understand. Avoid technical jargon unless writing for technical audiences.

Good: "Click the 'Add to Cart' button located below the product image"

Poor: "Trigger the onclick event handler for the DOM element with class 'btn-cart'"

  1. Make Steps Atomic

Each test step should represent one action. Don't combine multiple actions into single steps.

Wrong: "Login and navigate to settings and update password"

Right:

  1. Login with valid credentials

  2. Navigate to settings page

  3. Click "Change Password" option

  4. Update password

  5. Save changes
    ‍

  1. Specify Expected Results for Every Step

Don't assume testers know what should happen. Explicitly state expected outcomes for each action.

Incomplete: "Click login button"

Complete: "Click login button → Expected: User redirects to dashboard page with welcome message displayed"

  1. Use Realistic Test Data

Provide specific, realistic test data rather than placeholders or generic values.

Vague: "Enter a valid email address"

Specific: "Enter email address: customer@example.com"

  1. Write for Your Audience

Adjust technical detail based on who executes tests. Manual testers need explicit instructions. Experienced testers can handle higher-level descriptions.

For Manual Testers: "Click the blue 'Submit' button at the bottom right of the form"

For Experienced Testers: "Submit the registration form"

  1. Include Preconditions

Document everything that must be true before testing begins. Don't assume testers know setup requirements.

Example Preconditions:

  • Test user account already created

  • Product inventory contains at least 10 units of test product

  • Payment gateway configured for test mode

  • Browser cache and cookies cleared
    ‍

  1. Map to Requirements

Link every test case to specific requirements or user stories. This traceability ensures complete requirements coverage.

  1. Keep Test Cases Independent

Each test should execute independently without depending on other tests running first. Avoid test dependencies creating fragile test suites.

Wrong: Test Case 2 assumes Test Case 1 already created a user account

Right: Test Case 2 explicitly creates required user account in preconditions or setup


Mistakes That Weaken Test Cases

Mistake

Problem

Fix

Vague steps

"Check that the system works correctly"

"Verify the order confirmation shows the order number, total, delivery date and address"

Missing expected results

Steps describe an action but not the outcome

Give every step an explicit expected result

Several scenarios in one test

Login, profile update and logout all in one test case

Write a separate test case for each scenario

Thin test data

"Enter valid credentials"

"Enter the username test@example.com and the password TestPass123"

Assumed knowledge

Steps rely on the tester knowing quirks or business rules

Write down everything the tester needs to know

Heavy jargon

Business stakeholders can't follow the test

Use plain language that stays precise


Industry-Specific Test Case Examples

Banking: International Wire Transfer

Field

Content

Test case ID

TC-BANK-WIRE-01

Title

Customer sends an international wire transfer within their daily limit

Preconditions

A business banking user is logged in, the account balance is above €10,000, and the beneficiary is already saved

Test data

Amount: €5,000, Beneficiary: Müller GmbH, IBAN: DE89 3704 0044 0532 0130 00 (test IBAN)

Priority

High

Related requirement

US-PAY-210

Step

Action

Expected result

1

Go to "Payments" and select "International transfer"

The transfer form opens

2

Select the saved beneficiary "Müller GmbH"

Beneficiary details fill in automatically

3

Enter the amount €5,000

The exchange rate, fees and total are shown

4

Click "Continue"

A summary page shows the amount, fees and beneficiary

5

Approve with two-factor authentication

The transfer is submitted, with a reference number

6

Open "Transaction history"

The transfer appears as "Pending", with the correct amount

Healthcare: Recording a Medication Dose

Field

Content

Test case ID

TC-HC-MED-01

Title

Nurse records a scheduled medication dose for the correct patient

Preconditions

A nurse is logged in to the medication administration record, and the patient has an active prescription due now

Test data

Patient ID: TEST-0042, Medication: Amoxicillin 500 mg, Route: Oral

Priority

High

Related requirement

US-MAR-118

Step

Action

Expected result

1

Search for patient TEST-0042

The correct patient record opens, with name and date of birth visible

2

Open the medication administration record

The due dose of Amoxicillin 500 mg is highlighted

3

Select the dose and confirm the patient's identity

The system confirms the patient matches the prescription

4

Record the dose as given, with the time

The dose is saved with the nurse's name and time

5

Try to record the same dose again

The system warns that the dose has already been given

6

Check the audit log

The entry shows who recorded the dose and when

Retail: Returning a Product

Field

Content

Test case ID

TC-RET-RTN-01

Title

Customer returns an item within the return window for a refund

Preconditions

The customer is logged in and has a delivered order placed 10 days ago, within a 30-day return window

Test data

Order: ORD-10458, Item: Running shoes size 9, Reason: Too small

Priority

Medium

Related requirement

US-RTN-034

Step

Action

Expected result

1

Go to "My orders" and open ORD-10458

The order details and a "Return item" option are shown

2

Click "Return item" and select the running shoes

The return form opens for that item

3

Select the reason "Too small" and choose "Refund"

The refund amount and return instructions are shown

4

Submit the return

A return reference and printable label are generated

5

Check email

A return confirmation email arrives with the reference

6

Check the order status

The item shows as "Return requested"


The Evolution: AI-Native Test Case Creation

Traditional test case documentation creates bottlenecks through manual writing, constant maintenance, and technical barriers limiting who can create tests.

Natural Language Test Cases

AI-native test platforms enable teams to write test cases in plain English without formal documentation structures or technical expertise.

Traditional Approach:

  • Manual documentation in test management tools

  • 30-60 minutes per test case

  • Technical knowledge required for precision

  • Constant updates as applications change
    ‍

AI-Native Approach:





The platform works out which element each step refers to and runs the test. The person who understands the workflow can write the test, without waiting for an automation engineer.

Drafting Test Cases from Requirements

AI can now go a step further, reading requirements, user stories and specifications and drafting test cases from them. The important part is governance. Drafts should cite the requirement they came from, and a named person should approve them before they count towards coverage.

Keeping Test Cases Working

On traditional frameworks, application changes mean updating test cases by hand, sometimes hundreds at a time. Self-healing reduces this by finding elements through several signals when the UI changes, and proposing a repair. The best implementations log every repair, so your team can review what changed and accept or reject it.

Living Documentation

When test cases run automatically, every run records what happened, with results and screenshots. The test suite becomes a living record of how the system behaves, not a document that drifts out of date.



Best Practices for Test Case Management

  1. Organize Test Cases Logically

Group related test cases by feature, user workflow, or business process. Logical organization enables efficient test selection and execution.

  1. Version Control Test Cases

Store test cases in version control systems alongside code. Track changes, enable collaboration, and maintain history.

  1. Review Test Cases Regularly

Schedule periodic test case reviews removing obsolete test cases, updating outdated scenarios, and identifying coverage gaps.

  1. Maintain Requirements Traceability

Link every test case to specific requirements ensuring complete validation coverage and supporting compliance audits.

  1. Establish Naming Conventions

Standardize test case IDs, names, and organization enabling team members to locate and reference tests easily.

  1. Measure Test Case Effectiveness

Track which test cases find defects, which rarely execute, and which require frequent maintenance. Optimize test suites based on data.



Who Writes Test Cases

Test case authorship is not the exclusive domain of QA engineers. In practice, who writes test cases depends on team structure, methodology, and the tools available.

  1. QA Engineers and Test Analysts

Thy are the primary authors in most organisations. They translate requirements and user stories into structured test cases, define preconditions and test data, and build the regression suites that protect existing functionality across releases. Their testing expertise shapes coverage decisions on what to test, at what depth, and in what priority order.

  1. Software Development Engineers in Test (SDETs)

They combine software engineering and QA skills. They write test cases and convert them directly into automated test scripts, working closely with developers to embed testing into the build and deployment process. In organisations with mature CI/CD pipelines, SDETs are responsible for keeping automated regression suites current.

  1. Business Analysts and Product Owners

They write test cases in teams practising behaviour-driven development (BDD). Because BDD uses natural language in the Given-When-Then format, business stakeholders can define acceptance test cases directly from user stories without technical expertise. These cases then inform both manual testing and automated validation.

  1. Developers

Developers write test cases primarily at the unit and integration level. They are responsible for testing the code they write, catching defects before changes reach the QA phase. In Agile teams, the line between developer and tester has blurred significantly, with developers increasingly contributing to functional and integration test case libraries.

  1. Non-Technical Team Members

They can now write test cases on AI-native test platforms that accept plain English as input. A product manager who understands a business workflow can describe it in natural language and have it converted into an executable test automatically. This removes the bottleneck between business knowledge and test coverage, allowing teams to scale authorship without scaling headcount.
‍

In Agile and Scrum environments, test case authorship is a shared responsibility. Sprint planning sessions involve QA, development, and product stakeholders jointly defining acceptance criteria, which become the basis for test cases written during the sprint. The traditional model of QA writing all test cases after development finishes has been replaced in most modern teams by collaborative authorship throughout the delivery cycle.



Test Cases in Virtuoso QA

In Virtuoso QA, a test case isn't a document that drifts out of date. It's an executable journey linked to the requirement it proves, with a record of every run.

  • Drafted from requirements: Touchstone reads your user stories, specs and Jira tickets, proposes test cases that cite their source, and waits for a named reviewer to approve each one.

  • Written in plain English: Anyone who understands the workflow can write steps in Natural Language Programming, with each step checked against the live application as it's typed.

  • Next steps suggested: StepIQ looks at the screen in front of you and suggests what to check next, so long test cases come together quickly.

  • Built from reusable pieces: Common steps, like logging in or creating an order, become shared building blocks across test cases and teams.

  • Repairs you approve: When the application changes, broken steps are fixed through other element signals and queued for your team to accept or reject.

  • Traceable results: Each run records the requirement behind every test case, the outcome of each step with screenshots, and who approved the test.


Related Reads

Frequently Asked Questions

What is the difference between a test case and a test scenario?

How many test cases do I need?

Should test cases be detailed or high-level?

How do I write test cases for Agile development?

What tools are used for test case management?

Can test cases be automated?

See what your next release looks like with Virtuoso

Book a walkthrough on your applications and your workflows. Bring a requirement, a user journey, or a brittle Selenium script, and watch the loop run on something you recognise.

See what your next release looks like with Virtuoso

Book a walkthrough on your applications and your workflows. Bring a requirement, a user journey, or a brittle Selenium script, and watch the loop run on something you recognise.

See what your next release looks like with Virtuoso

Book a walkthrough on your applications and your workflows. Bring a requirement, a user journey, or a brittle Selenium script, and watch the loop run on something you recognise.

Virtuoso QA is establishing the standard of proof for software releases. Its governed QA loop turns business requirements into tests for any browser-based application: AI proposes, a deterministic engine executes, a person approves what matters, and every decision leaves evidence.

Trust Center

AICPA

SOC

WAVE STRONG PERFORMER

@ Copyright 2026 SpotQA, Creators of Virtuoso QA

Virtuoso QA is establishing the standard of proof for software releases. Its governed QA loop turns business requirements into tests for any browser-based application: AI proposes, a deterministic engine executes, a person approves what matters, and every decision leaves evidence.

Trust Center

AICPA

SOC

WAVE STRONG PERFORMER

@ Copyright 2026 SpotQA, Creators of Virtuoso QA

Virtuoso QA is establishing the standard of proof for software releases. Its governed QA loop turns business requirements into tests for any browser-based application: AI proposes, a deterministic engine executes, a person approves what matters, and every decision leaves evidence.

Trust Center

AICPA

SOC

WAVE STRONG PERFORMER

@ Copyright 2026 SpotQA, Creators of Virtuoso QA