# Test cases: fields, states and steps

Source: https://docs.qualflare.com/docs/test-management/test-cases · Last updated: 2026-10-27

Every test case field, state, step type, tab and action in Qualflare, how a test case differs from a test script, and what deleting a case removes.

This page lists every field, state, step type, tab and action of a test case in Qualflare; a case belongs to one suite, has a project-wide number such as #123 and carries up to 5 tags.

A [test case](https://docs.qualflare.com/docs/reference/glossary#test-case) describes what to test, how to run it and what should happen, in steps anyone on the team can read.

## Where you find test cases

| Place                    | How to open it                                         | What you can do there                                                                                                                                                                 |
| ------------------------ | ------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **Browse**               | **Browse** in the project sidebar, then expand a suite | See each suite's cases. Edit, clone, reorder, archive or delete a case from its ⋯ menu.                                                                                               |
| Suite **Test Cases** tab | Open a suite, then **Test Cases**                      | Create cases, reorder them, and filter by **Priority**, **State**, **Archived** and **Search**                                                                                        |
| **Explore Cases**        | **Explore** in the project sidebar                     | Search and filter every case in the project, save queries, and edit, clone or delete cases. See [Explore and saved queries](https://docs.qualflare.com/docs/test-management/explore). |

Select cases to show bulk actions. Browse and the **Test Cases** tab offer **Delete** and **Archive**, plus **Unarchive** while the **Archived** filter is on. Explore offers **Delete**; its **Archive** button isn't available yet. **Move to Suite** in the **Test Cases** tab isn't available yet either.

Cases run in [launches](https://docs.qualflare.com/docs/runs/launches), can be picked into [test plans](https://docs.qualflare.com/docs/test-management/test-plans), and failed ones can be linked to [defects](https://docs.qualflare.com/docs/defects).

## Test cases vs test scripts

**Test Cases** describe what to test in a framework-agnostic way. They focus on behavior and outcomes, not implementation details.

**Test Scripts** (automation) implement test cases in code using frameworks like Selenium, Cypress, or Playwright.

|              | Test Case                                               | Test Script                                                 |
| ------------ | ------------------------------------------------------- | ----------------------------------------------------------- |
| Defines      | What to test and the expected result                    | How to execute that test in code                            |
| Format       | Framework-agnostic, human-readable steps                | Code, tied to a specific automation framework               |
| Written by   | QA, product, support — no coding required               | Developers/SDETs, using Selenium, Cypress, Playwright, etc. |
| Lives in     | Qualflare                                               | Your automation framework's codebase                        |
| Changes when | Test intent or expected behavior changes                | Framework, selectors, or implementation changes             |
| Lifecycle    | Draft, Review, Active or Outdated, tracked in Qualflare | Passes/fails at runtime; versioned in source control        |

## Case fields

| Field           | Values                                                                                                                                                                                                                 | How it's set                                                                                                                                                                                                                                                              |
| --------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **Name**        | 3 to 200 characters, unique within its suite. Any characters.                                                                                                                                                          | **Create Case** or **Edit Case**. Cases from uploaded results take the test's name.                                                                                                                                                                                       |
| **Description** | Plain text, up to 1,024 characters. Longer text fails to save, although the dialog accepts it.                                                                                                                         | **Edit Case**                                                                                                                                                                                                                                                             |
| **State**       | Draft, Review, Active or Outdated                                                                                                                                                                                      | The state badge in the case header, or ⋯ > **State**                                                                                                                                                                                                                      |
| **Priority**    | Low, Medium, High or Critical                                                                                                                                                                                          | ⋯ > **Priority** in the case header                                                                                                                                                                                                                                       |
| **Test Type**   | The kind of test (Unit, Regression, Integration, Feature, E2E, Component, Contract, API, Performance, UI, Snapshot, Accessibility, Smoke, Resilience, Vulnerability or Penetration), or the framework that reported it | Set when the case is created. Cases you create in the app get E2E.                                                                                                                                                                                                        |
| **Automation**  | Manual or Automated                                                                                                                                                                                                    | Set by Qualflare. Cases from uploaded results are Automated, cases you create in the app are Manual, and cases imported from Qase, Testmo or Allure TestOps keep the source tool's value. TestRail cases, and values Qualflare doesn't recognize, are imported as Manual. |
| **Suite**       | The one suite that holds the case, shown as "in" and the suite name                                                                                                                                                    | Set when the case is created. A case can't move to another suite.                                                                                                                                                                                                         |
| **Tags**        | Up to 5 workspace tags                                                                                                                                                                                                 | The tag box in the case header. See [Tags](https://docs.qualflare.com/docs/test-management/test-cases#tags).                                                                                                                                                               |
| **Archived**    | Archived or not                                                                                                                                                                                                        | **Archive** and **Unarchive** in a case row's ⋯ menu in Browse or the **Test Cases** tab                                                                                                                                                                                  |

> **Caution:** The **Create Case** dialog saves only the name today. Every new case starts as Draft, Low priority, E2E and Manual, whatever you pick in the dialog. After you create a case, set its description with **Edit**, and its state and priority from the case header.

## Case states

A test case is **Draft** (being written), **Review** (flagged for review before the next run), **Active** (ready to run) or **Outdated** (may no longer reflect current behavior).

A case you create in the app starts as Draft, and a case created by an upload starts as Active. An imported case keeps its mapped source state, or starts as Draft ([What gets imported](https://docs.qualflare.com/docs/test-management/import-export#what-gets-imported&#x29;). On an automated case the state badge offers only Active and Outdated, while &#x2A;*⋯** > **State** still lists all four.

The state doesn't control what runs: a Draft case can still be added to test plans and runs. It does feed the suite's coverage score, where Active and Review cases count more than Draft ones. Archiving is a separate flag (see [Case actions](https://docs.qualflare.com/docs/test-management/test-cases#case-actions)).

## Case panel

Click a case to open it in a side panel. The header shows the case number and name, a favorite star, the priority, a **Flaky** badge when Qualflare has flagged the case as flaky, a stale badge such as `34d` on an automated case whose last run was 30 or more days ago, the state, the suite it's in, the description and the tags.

The ⋯ menu in the header has **Edit**, **State** and **Priority**, but no delete (see [Delete a case](https://docs.qualflare.com/docs/test-management/test-cases#delete-a-case)).

| Tab             | What it shows                                                                                                                                          |
| --------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------ |
| **Overview**    | **Total Runs**, **Pass Rate** across the last 90 days, **Avg Duration** and **Steps**, and the case's **Recent Runs**                                  |
| **Steps**       | The case's steps. See [Steps](https://docs.qualflare.com/docs/test-management/test-cases#steps).                                                        |
| **History**     | The case's past [case runs](https://docs.qualflare.com/docs/runs/launches#case-runs), with Name, Branch, Milestone, Environment, Language and Duration |
| **Attachments** | Images attached to the case: JPEG, PNG or GIF, up to 5 MB each and 10 per upload. They count toward the workspace storage limit (1 GB on Starter).     |
| **Defects**     | Defects linked to the case                                                                                                                             |
| **Comments**    | Discussion about the case                                                                                                                              |
| **Change log**  | Every change, with Action, Actor, Description, Changes and Date. You can't revert a change.                                                            |

*Figure: The case panel shows the case's header and seven tabs.*

## Steps

Open a case and go to the **Steps** tab.

* Click **Create Step** to open **Add Step**. Enter **Step Instructions** (3 to 500 characters) and pick a **Type**.
* Use the arrow next to **Create Step** to **Insert Shared Step**. It appears once the project has [shared steps](https://docs.qualflare.com/docs/test-management/shared-steps) and the case already has at least one step.
* To nest a step, choose **Add child step** from a step's menu.
* Drag steps to reorder them.

The eight step types are Precondition, Action, Expected Result, Verification, Navigation, API Request, Data Input and Cleanup. An expected result is a step with the Expected Result type, not a separate field. A case doesn't need any steps.

Each step shows where it came from: **Manual**, **AI** (generated by [Quo](https://docs.qualflare.com/docs/ai/quo)) or **Synced** (from an automated run).

Steps on automated cases come from your test results. You can't add, edit, delete or reorder them, because the next upload replaces them.

*Figure: Steps on an automated case come from your uploads, and the next upload replaces them.*

## Tags

Add tags from the tag box in the case header. You can pick up to 5 tags that already exist in the workspace. To make a new one, choose **Create tag**, which opens the workspace **Tags** page.

Results from automated runs can carry their own tags. Those show on the case run, not on the case.

*Figure: A case can carry up to 5 tags from the workspace's tag list.*

## Case actions

| Action                      | Where                                                                          | What happens                                                                                                                                                                    |
| --------------------------- | ------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **Edit**                    | The case header's ⋯ menu, or a case row's ⋯ menu                               | Change the name and description                                                                                                                                                 |
| **Clone**                   | A case row's ⋯ menu                                                            | Creates a copy in the same suite. Cloning currently fails for cases created in the app or from uploaded results.                                                                |
| **Move Up** / **Move Down** | A case row's ⋯ menu in Browse or the **Test Cases** tab                        | Moves the case within its suite. You can also drag the row. Turned off while any filter is applied in the **Test Cases** tab, or while **Not run in 30+ days** is on in Browse. |
| **Archive** / **Unarchive** | A case row's ⋯ menu in Browse or the **Test Cases** tab, or bulk actions there | Hides the case from default views and keeps its steps and run history. Turn on the **Archived** filter to find it.                                                              |
| **Delete**                  | A case row's ⋯ menu, or bulk actions                                           | Permanently deletes the case. See below.                                                                                                                                        |

Cases have no Run action. To run cases by hand, start a launch from **Launches** > **Start Launch**, or use a test plan's **Create Run** action. See [Running tests with the Test Wizard](https://docs.qualflare.com/docs/runs/manual-testing). Automated results arrive through the CLI; see [collect](https://docs.qualflare.com/docs/cli/collect).

*Figure: Row actions for a case in Browse. Delete removes the case at once, without asking.*

### Delete a case

> **Caution:** Deleting a case is permanent. It also deletes the case's steps, comments, attachments, tags, defect links, its place in test plans and every result recorded for it in past launches. Any suite left with no cases is deleted too, and that covers every empty suite in the project, including ones someone just created. A single delete from a case row's ⋯ menu doesn't ask you to confirm. To keep a case's history, archive it instead.

* **One case**: open the case row's ⋯ menu in Browse, the **Test Cases** tab or Explore, and choose **Delete**.
* **Several cases**: select them, click **Delete**, and confirm.

Requires the Owner role in the project.

Each deleted case, and each suite removed with it, is recorded in the [audit log](https://docs.qualflare.com/docs/administration/audit-logs).

## Permissions

| Action                                                                              | Role             |
| ----------------------------------------------------------------------------------- | ---------------- |
| View cases                                                                          | Viewer or higher |
| Create, edit, clone, reorder, tag and archive cases, and add, edit or reorder steps | Editor or higher |
| Delete cases and steps                                                              | Owner            |

In the web app today, buttons follow your project role. See [Roles and permissions](https://docs.qualflare.com/docs/administration/roles-permissions).

## Errors

| Message                                                   | Where                                            | Fix                           |
| --------------------------------------------------------- | ------------------------------------------------ | ----------------------------- |
| `A minimum of 3 characters is required.`                  | Name (Create Case, Edit Case), Step Instructions | Enter at least 3 characters   |
| `Maximum 200 characters allowed.`                         | Name                                             | Names are 3 to 200 characters |
| `Maximum 500 characters allowed.`                         | Step Instructions                                | Steps are 3 to 500 characters |
| `Invalid file type. Only JPEG, PNG, and GIF are allowed.` | Attachments                                      | Upload an image file          |
| `File too large. Maximum size is 5MB.`                    | Attachments                                      | Attach files of 5 MB or less  |

## Limits

| Field             | Limit                                    |
| ----------------- | ---------------------------------------- |
| Name              | 3 to 200 characters, unique in its suite |
| Description       | 1,024 characters                         |
| Step Instructions | 3 to 500 characters                      |
| Tags              | 5 per case                               |
| Attachments       | 5 MB each, 10 per upload                 |

Each plan sets how many test cases a workspace can hold, and how much attachment storage:

| Limit      | Unit       | Starter | Core  | Scale | Enterprise | Open Source |
| ---------- | ---------- | ------- | ----- | ----- | ---------- | ----------- |
| Test cases | test cases | 200     | 1,000 | 5,000 | 500,000    | 500,000     |
| Storage    | GB         | 1       | 5     | 25    | 100        | 10          |

* **Storage:** Counts test case attachment uploads only. Test run attachments and exports do not count towards it.

For prices, see [qualflare.com/pricing](https://qualflare.com/pricing/).

See [Plans and limits](https://docs.qualflare.com/docs/administration/plans).

## Related

* **Guides:** [Create and edit test cases](https://docs.qualflare.com/docs/test-management/create-test-cases) · [Explore Cases and saved queries](https://docs.qualflare.com/docs/test-management/explore) · [Import and export test cases](https://docs.qualflare.com/docs/test-management/import-export) · [Shared Steps](https://docs.qualflare.com/docs/test-management/shared-steps)
* **Reference:** [Test suites and Browse](https://docs.qualflare.com/docs/test-management/test-suites) · [Roles and permissions](https://docs.qualflare.com/docs/administration/roles-permissions) · [Glossary: test case](https://docs.qualflare.com/docs/reference/glossary#test-case)
* **CLI and API:** [Cases commands](https://docs.qualflare.com/docs/cli/read-commands#cases) · [MCP server reference](https://docs.qualflare.com/docs/api/mcp-reference)
