What Is a Test Suite? Types, Examples, and How to Manage One

automation test suite

What a test suite is, what goes into one, the main types, how it differs from a test case and a test plan, how to build and run one, and how to manage suites as they grow.

Key takeaways
The 30-second version of this article
A test suite is a collection of related test cases grouped to run and report as one unit; it can be manual, automated, static, or dynamic.
Common suite types are smoke, sanity, functional, regression, integration, end-to-end, performance, and acceptance, and most teams give each suite its own trigger and run frequency.
A test case is one check, a test suite groups cases to run together, and a test plan decides which suites run, when, and what counts as done.
Test suite management keeps suites fast and trusted: clear names, tags, owners, risk-based priority, flaky test quarantine, and regular pruning.

A test suite is a group of related test cases that run and report together as one unit, such as a smoke suite or a checkout regression suite. A single test case tells you whether one thing works, but a release needs answers about whole flows: does checkout still work, did the new build break sign-in, is payment safe to ship? Suites answer those questions in one run.

This guide covers what a test suite is, the main types, how a suite differs from a test case and a test plan, how to build and run one, and how to manage suites as they grow. It uses one running example: an online store with a short smoke suite and a 200-case regression suite.

What is a test suite?

A test suite is a collection of related test cases grouped to run and report as one unit. Teams group cases by feature, flow, test type, or risk, so they can run them together and see the health of that area at a glance. In software testing, "test suite" and "software test suite" mean the same thing.

Think of it like folders on your desktop. You wouldn't keep hundreds of loose files and expect to find anything quickly, so you group them. A test suite does the same for test cases, which gives you two advantages:

  • Clarity: you know where new test cases belong when a feature grows.
  • Efficiency: you run all related tests at once instead of finding them one by one.

Suites also make results easier to read. When a run fails, the grouping shows which area broke, so debugging and reporting get faster.

As testing grows, teams combine several suites to run a full regression cycle, a sequence of related flows, or a cross-browser run in one execution, in parallel or in sequence. Some tools name this object, for example a test suite collection in Katalon Studio. The hierarchy looks like this:

  • Test case: one check with steps and an expected result.
  • Test suite: a group of related test cases.
  • Test suite collection: a group of suites run together for broader coverage.

A test suite can be manual, run by testers from a checklist, or automated, run by a test runner from scripts. Both follow the same idea.

What's in a test suite?

A test suite usually has five parts:

  • Test cases: the scenarios to check, each with preconditions, steps, test data, and an expected result. See how to write test cases.
  • Test scripts: the code that runs each case in an automated suite. A manual suite uses written steps instead.
  • Test data: inputs, accounts, and records the cases need, such as a test user and a product in stock. See test data management.
  • Environment and configuration: the browser, device, operating system, and server the suite runs against, plus settings such as timeouts and retries.
  • Run conditions: when the suite runs (on commit, nightly, before release) and what counts as a pass.

What is an automated test suite?

An automated test suite (also called an automation suite or test automation suite) is a test suite that runs on its own, based on rules, timing, or events you define, instead of someone starting each test by hand. Once set up, it becomes part of the development workflow and checks the stability of the application in the background.

Teams usually configure an automated suite to run:

  • When a developer pushes new code: the suite runs as soon as code reaches the repository and reports right away if something broke.
  • As part of a nightly CI build: the team starts each day with fresh results and can pick up overnight failures first thing.
  • On a recurring schedule: every 2 hours, every morning at 9 AM, or every Friday afternoon before a deployment freeze. You decide the cadence.

The main benefit is consistency. Automated suites run the same steps in the same order on each run, so results are easier to compare, and nobody has to remember to click Run.

Why use an automated test suite?

  • Faster feedback for developers: the suite runs right after a push, so issues get fixed while the change is fresh.
  • Earlier bug detection: frequent runs catch defects before they reach staging or production, where they cost more to fix.
  • More testing with less effort: suites can run hourly, nightly, or on every commit without extra manual work.
  • Fewer defects reaching production: automated checks act as a safety net that keeps running between releases.

Types of test suites

Most teams keep several suites, each with a different purpose and run frequency:

  • Smoke suite: a short set of critical checks on every new build, such as the home page loading and sign-in working. If it fails, deeper testing waits. See smoke testing.
  • Sanity suite: a narrow check of one area after a small change or fix, to confirm it works before wider testing. See sanity testing.
  • Functional suite: cases grouped by feature, such as sign-in, search, or checkout, that check each feature against its requirements. See functional testing.
  • Regression suite: cases that confirm existing features still work after changes. It is usually the largest suite and the first to be automated. See regression testing and automated regression testing.
  • Integration suite: checks that modules and services work together, for example the cart and the payment service. See integration testing.
  • End-to-end suite: complete user journeys across the system, such as browse, add to cart, pay, and receive a confirmation. See end-to-end testing.
  • Performance suite: checks response times and behavior under load, usually run before release or on a schedule rather than on every commit.
  • Acceptance suite: checks the software against acceptance criteria and user requirements, often during user acceptance testing.

Manual vs automated test suites

A manual test suite is a list of test cases that testers run by hand and record results for. It suits new features, visual and usability checks, and exploratory work. See manual testing.

An automated test suite runs scripts through a test runner, usually from CI or a scheduler. It suits stable, repeated checks such as smoke and regression suites. Many teams keep both: an automated regression suite for every build, and a manual suite for the parts of a release that are new or hard to automate. Some tools don't let you mix manual and automated cases in one suite, so plan them as separate suites.

Static vs dynamic test suites

A static test suite has a fixed list of test cases that someone adds and removes by hand. It's simple and predictable, but it drifts as the product changes.

A dynamic test suite selects its cases with a query, usually on tags, names, or folders, such as "every case tagged Smoke and Login". New cases join the suite as soon as they carry the right tag, so suites stay current with less upkeep. Test frameworks offer the same idea through tags or markers, for example pytest markers or JUnit 5 tags.

Test case vs test suite vs test plan

These terms describe different levels of the same work:

Term

What it is

Online store example

Typical owner

Test scenario

A high-level situation to test, without steps

A returning customer pays with a saved card

QA lead or tester

Test case

One check with preconditions, steps, data, and an expected result

Pay with a saved Visa card and see the order confirmation page

Tester or automation engineer

Test suite

A group of related test cases run and reported together

The checkout and payment regression cases

QA lead or suite owner

Test run

One execution of a suite on a build and environment, with results

Last night's regression run on Chrome, build 4.2.1

Whoever triggers it, or CI

Test plan

The document that sets scope, approach, schedule, people, and exit criteria for testing

The release 4.2 test plan

Test manager or QA lead

In short, a test scenario says what to test, a test case says exactly how, a test suite groups cases so they run together, a test run records one execution, and a test plan decides which suites run, when, and what counts as done.

How to build a test suite

  1. Define the purpose. Decide what question the suite answers, for example "is this build stable enough to test?" for a smoke suite or "did this release break existing features?" for regression.
  2. Pick a grouping system. Agree how the team classifies cases before you add them, so everyone knows where new cases belong. The common options are in the table below.
  3. Select the test cases. Add only the cases that serve the suite's purpose. Reuse existing cases instead of copying them into each suite, so one change updates every suite that uses the case.
  4. Set the order and dependencies. Put fast, critical checks first so a broken build fails early, and keep cases independent so they can run in any order or in parallel.
  5. Configure data and environment. Choose the browsers, devices, and servers, the test data, and the settings such as timeouts and retries.
  6. Set the run conditions. Decide when the suite runs (on commit, nightly, before release), who owns it, and what result blocks a release.

Common ways to group test cases:

Grouping

Examples

Useful when

Feature

Sign-in, checkout, search

You want the health of each product area at a glance

Test type

Smoke, regression, functional

You want to control how deep each run goes

Priority

High, medium, low

You need to run the riskiest cases first

User role

Admin, guest, member

The app has permission-based flows

Test level

Unit, API, UI, integration

You want to know where in the stack a test runs and how long it takes

Environment

QA, staging, production

Tests differ by environment settings or data

Platform

Desktop, mobile, tablet

The app is responsive or cross-device

Input type

Static, data-driven

You want to separate simple checks from data-heavy tests

Run frequency

On commit, daily, weekly

You need to decide what runs constantly and what is scheduled

Business flow

Sign-up, purchase, return

You test end-to-end user journeys

Test suite example: an online store

The online store from our test management guide keeps two main suites. The numbers below are illustrative.

Smoke suite (10 cases). It answers one question: is this build worth testing? It covers the home page loading, sign-in, search returning results, adding a product to the cart, and reaching the payment page.

As a manual checklist, a tester runs the 10 cases on a new build and records pass or fail for each. The first 5 look like this:

Case

Steps

Expected result

Home page loads

Open the store URL

Home page shows featured products within the agreed load time

Sign-in works

Sign in with a test customer account

Account name appears in the header

Search returns results

Search for a product in stock

Matching products appear

Add to cart

Add a product from its page

Cart count goes up by 1

Reach payment

Go from the cart to checkout

Payment page loads with the order total

As an automated suite, the same 10 cases run as scripts on every commit and every deploy to a test environment, and finish in a few minutes. If any case fails, the pipeline stops before the longer runs start.

Regression suite (200 cases). It covers sign-in, checkout and payment (40 of the cases are payment cases), and search. It runs nightly across the supported browsers, and the 40 payment cases also run on every release candidate. A separate manual suite covers what is new in each release, such as a redesigned checkout page that testers check by hand on each supported browser.

Here is how the store's suites line up with their triggers. Treat the time budgets as rules of thumb, not targets:

Suite

Trigger

Size

Time budget

Smoke

Every commit and every deploy

10 cases

Minutes

Payment regression

Every release candidate

40 cases

Under an hour

Full regression

Nightly and before release

200 cases

A few hours, less in parallel

Manual release checks

Each release, by testers

New and changed features

A planned test session

How to run a test suite

Running a suite takes 3 things:

  1. A test runner, such as JUnit, TestNG, pytest, Cypress, or Katalon Runtime Engine.
  2. A suite definition, such as an XML file, annotations, tags, CLI parameters, or a suite built in a tool's interface.
  3. An execution environment, such as a local machine, a container, a CI agent, or a cloud grid.

With these in place, a suite becomes one repeatable command you can call from a terminal, a build pipeline, or a scheduler. Here is what that looks like for the store's smoke suite in common runners:

Runner

How the suite is defined

Example command

JUnit with Maven

A suite class or test filter

mvn -Dtest=SmokeSuite test

TestNG

A testng.xml file that lists the classes

java org.testng.TestNG testng.xml (with the test classes and TestNG on the classpath)

pytest

Markers on test functions

pytest -m "smoke"

Cypress

Spec files selected with --spec

npx cypress run --spec "cypress/e2e/smoke.cy.js"

Katalon Runtime Engine

A test suite in a Katalon Studio project

katalonc -noSplash -runMode=console -projectPath="(path to your .prj file)" -testSuitePath="Test Suites/Smoke" -browserType="Chrome" -apiKey="(your Katalon API key)"

Running test suites in CI/CD

A CI/CD tool such as GitHub Actions, Jenkins, GitLab CI, or Azure DevOps doesn't run tests by itself. The CI agent pulls the repository, installs dependencies, and calls your test runner with a command like the ones above, for example npm run test:smoke or pytest -m "smoke".

How often each suite runs is the main design choice. The store's trigger table above is a common starting point: smoke on every commit and deploy, full regression nightly and before release. For ordering, environments, and parallel runs across a pipeline, see test orchestration.

For more on pipelines, see our guide to the CI/CD pipeline.

Test suite management

Test suite management is the ongoing work of organizing, prioritizing, maintaining, and measuring manual and automated test suites so they stay fast, relevant, and trusted as the product changes. It is part of test case management, which in turn sits inside wider test management.

A suite that nobody manages tends to grow slower and noisier with every release. These practices keep it useful.

Common test suite management challenges

  • Size and duplication: suites grow with every feature, and copied cases mean one change has to be made in several places.
  • Test data and environments: cases fail because data went stale or an environment differs from the one the suite was written for.
  • Stale cases: tests for removed or changed features keep running and fail for the wrong reasons.
  • Collaboration: developers, testers, and product owners don't agree on what each suite covers or who owns it.
  • Limited time and people: there is rarely time to run everything, so teams need a way to choose.
  • Measurement: without agreed metrics, nobody can tell whether a suite is getting better or worse.

Organize suites by purpose

Keep one source of truth for each test case and build suites from it, rather than copying cases into each suite. Group suites in folders by product area or purpose, and keep the number of suites small enough that everyone knows what each one is for. A suite should answer one question, such as "is the build stable?" or "is payment safe to release?".

Use clear naming conventions

A good suite name says what it covers and when it runs. A pattern such as area, type, and trigger works well, for example "Checkout regression nightly" or "Smoke on commit". Apply the same pattern to test cases so search and filters work, and avoid names that only make sense to their author.

Tag test cases for flexible suites

Tags let one test case belong to several suites without copies. Tag cases by feature, type, priority, and platform, then build dynamic suites from tag queries. When a new case is tagged Smoke and Checkout, it joins the right suites automatically. Agree a short tag list as a team, because inconsistent tags break the queries.

Assign owners and review on a schedule

Before you automate anything, agree what each suite tests, who owns it, and how often it's reviewed, and share that plan with developers and product owners. Then keep suites clean:

  • Update or retire cases as soon as a feature changes or is removed, so old tests don't erode trust in the results.
  • Move repeated steps into shared helpers such as a sign-in routine, so a changed selector or endpoint is fixed once.
  • Review each suite every sprint or every month, looking for redundant, slow, and flaky tests, missing scenarios, and tests that no longer add value.

Prioritize by risk

Not every case deserves the same run frequency. Sort cases into:

  • High risk: critical functions, user-facing features, and core regression cases, such as payment.
  • Medium risk: less critical functions and important edge cases.
  • Low risk: cosmetic checks and low-impact areas.

Rank within each group by business impact, risk and complexity of the code, how often users touch the feature, and whether test data is available. Run high-risk cases most often, and revisit the ranking when the product changes. Test-driven development helps here too, because every new function arrives with its own tests.

Handle flaky tests

A flaky test passes and fails on the same code. A few flaky tests can make a whole suite untrustworthy, because people start ignoring red results. Retry failed cases once to tell flaky failures from real ones, then move confirmed flaky tests into a quarantine suite that doesn't block releases, and fix or delete them on a deadline. Common causes are timing, shared test data, and test order. See flaky tests in test automation.

Optimize a test suite for speed and coverage

Running everything on every commit is slow, and running too little lets defects through. To optimize a test suite:

  • Tier your suites: smoke on commit, regression nightly, the widest coverage before release.
  • Remove duplicates and merge cases that check the same thing.
  • Run independent cases in parallel and split long suites across machines or browser sessions.
  • Use data-driven tests so one case covers many inputs instead of many near-identical cases.
  • Measure coverage against requirements, not just case counts. See test coverage techniques.

Signs a suite needs pruning

  • Tests that haven't failed in months and duplicate other coverage.
  • Run time that creeps up release after release.
  • Reruns that have become routine.
  • Cases for features that no longer exist.
  • Failures the team has learned to ignore.

Track suite health

A QA lead can judge a suite with 4 numbers: the pass rate trend across runs, the flaky rate, execution time, and coverage of requirements. Falling pass rates point to product or test problems, rising flaky rates and run times point to maintenance debt, and gaps in requirement coverage show what the suite misses.

Use a central tool

Managing suites in spreadsheets, scattered folders, and ad hoc scripts stops working as suites grow. A test management tool keeps cases, suites, runs, and results in one place, so the team can filter, audit, and remove duplicates. You can manage test suites in Katalon TestOps, or compare options in our guide to the best test management tools.

Test suites in Katalon

In Katalon, automated suites, test suite collections, and dynamic suites are built in Katalon Studio, and Katalon TestOps, the test management product in Katalon True, is where teams build manual and automated suites from existing test cases, then run and track them. Based on the current Katalon docs:

  • Test suites in TestOps: a test suite is a collection of test cases executed and reported together, such as Smoke, Regression, or a release scope. You build suites in TestOps from existing test cases without copying them. Each suite is either automated or manual (not both), and suites can be organized in folders.
  • Test suite collections: in Katalon Studio, a test suite collection runs several suites together in parallel or sequential mode, each with its own environment, run configuration, and execution profile.
  • Dynamic test suites: a dynamic test suite in Katalon Studio adds test cases through a query on ID, name, tag, comment, or description. From Studio 11.6.0, queries support AND, OR, and parentheses, for example (tag=Smoke OR tag=Sanity) AND tag=Login.
  • Retries: in Katalon Studio, any test suite can also retry all executions or failed executions only after the run, which helps identify flaky tests.
  • Scheduled runs in TestOps: an automated test run picks test suites and collections, sets an environment per suite, runs suites in sequence or in parallel, and can run now or on a daily or weekly schedule, such as a nightly regression. TestOps can also schedule and run dynamic test suites.
  • Command line and CI: Katalon Runtime Engine runs a suite or a collection from the command line, as in the table above, so a CI tool such as Jenkins, GitHub Actions, or GitLab CI can call it.

To try suites, collections, and scheduled runs on your own project, request a free trial.

Putting it together

A test suite turns many separate test cases into one question the team can answer with a single run. Define what each suite is for, build it from reusable cases, decide when it runs, and keep it lean with owners, tags, risk-based priorities, and regular reviews.

Next steps: write better cases with our guide on how to write test cases, decide which suites run in a release with a test plan, and see how suites fit into the bigger picture in our guide to test management.

Frequently asked questions

Huyen Nguyen
Huyen NguyenTechnical Writer, Katalon

Huyen Nguyen is an experienced technical writer in the software testing industry. With strong technical expertise and a deep understanding of Katalon products, she creates clear, practical guides that support testers at every skill level.

Connect on LinkedIn →
True Platform has arrived

Test everything. Ship with confidence.

From generating test cases to spotting failures, Katalon's AI works across your entire pipeline, automatically.

The Next Evolution of Manual Testing: Introducing Katalon AI Test Runner

Introducing Katalon AI Test Runner. Watch it run manual test cases live, with evidence for every pass and fail.

Live webinar
9:00 to 10:00 AM EST · Live online
Alex MartinsVP of Strategy
Gia EspositoSenior Solutions Engineer
Save your seat