Run Tests Up to 70% Faster than Traditional Test Grids

HyperExecute Is an AI-Native Test Orchestration Platform to Run Your Automation Test Suites with Blazing Fast Speed.

Testing

What Is Smoke Testing? Definition, Examples and Checklist

Smoke testing verifies a build's critical paths in under 15 minutes. Get the definition, 12 sample test cases, a CI/CD gating recipe, and a checklist.

Last Updated on:

Smoke testing is a shallow, broad set of tests run against a fresh build to confirm its critical functions work before deeper testing begins. A typical smoke suite holds 20 to 50 test cases and finishes in 5 to 15 minutes. If it fails, the build is rejected and returned to development rather than entering regression.

It is also called build verification testing, build acceptance testing, or confidence testing. All four names describe the same gate: a cheap check that answers one question before anyone spends real time on a build.

That question is not "does this build work?" but "is this build worth testing?".

The distinction matters. It explains why a smoke suite deliberately skips edge cases, invalid inputs, and validation logic that a thorough test plan would insist on.

Cost is the argument that settles it. A regression suite runs for hours, so finding a broken login page afterwards wastes a full cycle of QA capacity that a 10-minute gate would have protected.

By the end of this guide you will have a 12-case smoke suite, a pipeline that blocks promotion when it fails, and four metrics that tell you whether the gate still works.

Overview

Smoke testing is a preliminary software testing method used to verify that the critical functionalities of a new build are stable before proceeding to more rigorous testing. It acts as an early confidence check to prevent wasting QA resources on a fundamentally broken build.

Purpose

  • Build verification: Confirms a newly deployed build is functional and stable before the QA team begins in-depth testing.
  • Early bug detection: Identifies show-stopping bugs early, before they block the entire downstream testing process.
  • Basic functionality verification: Confirms core features work as expected before any detailed test scenarios are executed.
  • Preventing wasteful testing: Stops QA teams spending time and money on a build that is fundamentally broken.

When to use it

  • After a new build: Run it immediately after deployment to confirm the build is stable enough to move forward.
  • Before integration testing: Verify that individual modules work together at a basic level before deeper integration testing.
  • Before rigorous testing: Acts as the gatekeeper validating build stability before deep functional or regression testing.

Key Benefits

  • Time and cost savings: Catches major defects early, so developers fix them before they reach end-users.
  • Improved build quality: Only stable, verified builds progress to later testing stages, raising final product quality.
  • Reduced integration risks: Surfaces compatibility and stability issues from merging new code with existing code.
  • Automation ready: Smoke suites automate cleanly, giving fast runs, broad coverage, and self-scoring results.

What Is Smoke Testing?

A smoke test checks that the handful of journeys a product cannot ship without still complete end to end. It proves a build is not obviously broken, rather than proving it is correct.

Put concretely, it verifies the handful of functions a product cannot ship without are still working after a change.

On a banking app that means logging in, viewing a balance, and making a transfer. A video platform checks signing in, loading a video, and pressing play.

Each check is binary and shallow. The test confirms the path completes, and nothing more: it does not verify that the transfer amount rounds correctly, or that the video buffers at the right bitrate.

The car analogy is the one most testers learn first. Before a new vehicle leaves the factory, someone checks that it starts, that the engine runs, and that it moves and stops.

Nobody measures paint depth at that stage, because a car that will not start makes every finer measurement irrelevant.

Software works the same way. Smoke tests run immediately after a build is produced and again before release, and they exist to make the expensive testing that follows worth doing.

Smoke Testing Process

A software build converts source code into a stand-alone form that can run on any system.

That conversion carries risk. Configuration drift, regression, and environment differences can all leave a build that compiles but does not run where you need it.

So the first build goes through smoke testing before reaching any other testing level. If key features are broken, there is no reason to invest time in deeper testing.

Smoke testing, also called build verification testing, is a preliminary software analysis that checks the functionality of important parts of a program but does not determine whether the program is error-free.

Origin of the Term Smoke Testing

The name has two origins, and both describe the same idea. In plumbing, smoke is forced through a closed system of pipes so that any crack or leak reveals itself immediately, without dismantling anything.

In electronics, a newly assembled board passed its smoke test if it did not emit smoke the first time power was applied.

Neither check proves the system is correct. Both prove it is not obviously, catastrophically broken, which is precisely the question a software smoke suite answers.

The software practice was formalised by Steve McConnell in IEEE Software, July 1996, documenting Microsoft's daily build and smoke test routine.

Note

Note: A smoke suite that runs on one browser misses the breakage your users hit first. TestMu AI runs the same suite across 3,000+ browser and OS combinations in parallel, so the gate still clears in under 15 minutes. Start testing free

When Should You Use Smoke Testing?

Run smoke tests at the start of every testing cycle, right after a new build reaches a test environment, and after any code or infrastructure change affecting a critical path.

Smoke tests are build verification tests, generally used at the start of any testing cycle for new builds.

They confirm the primary requirements are met and stop the build from being deployed when they are not. Run them as soon as a new build is deployed, or after any change.

Code needs to be stable before regression testing can begin, so smoke tests are created in each sprint to ensure code stability. This saves time and ensures that the corners of the code are covered.

Smoke testing aims to test a system's most important functionalities, not to execute all possible test scenarios.

In practice, there are five moments where a smoke test earns its place in the workflow:

  • After every new build is deployed to a test environment. The classic build-acceptance gate: QA either accepts the build or returns it.
  • Before a pull request is merged. A reduced suite on the feature branch stops broken changes reaching main.
  • Before the regression suite starts. Regression runs take hours; spending them on a broken login page wastes QA capacity.
  • Immediately after a production deployment. Catches environment-specific failures, such as a missing config value, before users find them. A scripted post-deploy gate for this is built in smoke testing command line.
  • After a third-party or infrastructure change. Gateway swaps, DNS changes, and dependency upgrades break critical paths without touching your code.

The common thread is that each moment carries a cheap check and an expensive consequence. Smoke testing is worth running wherever a few minutes of verification protects hours of downstream work.

Next-generation test execution with TestMu AI

How Does Smoke Testing Work?

Smoke testing works as a gate. The development team hands over a build, QA runs a small suite of critical-path checks against it, and the result decides whether deeper testing begins.

Every smoke test run follows five steps, from build handover to environment cleanup:

  • After a build is deployed by the development team, it is sent to the testing team for testing.
  • After the QA team receives the builds, they design test cases based on the requirements.
  • A smoke test suite contains many tests collected together into a single package for efficiency and convenience.
  • Automating the smoke test can be efficient and cost-effective, so consider automating it if you want to save time.
  • Finally, execute the test cases and clean the environment for the next round: stop servers, delete files, empty database tables.

What Does a Smoke Test Case Look Like?

A smoke test case is deliberately thin. It names one critical path, one action, and one binary expected result, with no boundary values, invalid inputs, or error-message assertions.

Each case is deliberately thin, naming one critical path, one action, and one binary expected result.

There are no boundary values, no invalid inputs, and no error-message assertions, because every one of those belongs in the regression suite.

Below is a complete 12-case smoke suite for an e-commerce application. It covers every revenue-critical path and runs in roughly eight minutes when automated.

IDMODULETEST CASEEXPECTED RESULT
ST-01AvailabilityLoad the homepage over HTTPSPage returns HTTP 200 and the header renders
ST-02AuthenticationLog in with a valid registered accountUser lands on the account dashboard
ST-03AuthenticationLog out from an active sessionSession ends and the user returns to the homepage
ST-04SearchSearch for a known in-stock productResults page lists at least one matching product
ST-05CatalogOpen a product detail page from resultsPrice, image, and Add to Cart button all render
ST-06CartAdd a product to the cartCart count increments to 1
ST-07CartRemove the product from the cartCart returns to an empty state
ST-08CheckoutProceed from cart to the checkout pageShipping and payment forms load
ST-09PaymentReach the payment gateway in sandbox modeGateway iframe loads without a console error
ST-10OrdersOpen the order history pagePrevious orders list renders for the test account
ST-11APICall the product listing endpointEndpoint returns HTTP 200 within 2 seconds
ST-12IntegrationConfirm the order confirmation email is queuedMail service accepts the message for delivery

Notice what is absent. There is no test for an invalid password, no check that the cart rejects a quantity of zero, and no verification of discount-code arithmetic.

Those are all valuable tests, and all of them belong in regression.

The bloat never arrives in one commit. It comes one reasonable-sounding case at a time, which is why I treat any new smoke case as a regression case until proven otherwise.

Adding them to the smoke suite is the most common way teams turn a 5-minute gate into a 40-minute one, at which point developers start skipping it.

The same test case as automation code

Here is ST-02 through ST-06 written as a single Playwright smoke spec. The whole file is short by design, which is what makes it cheap to run on every commit.

const { test, expect } = require('@playwright/test');

test.describe('@smoke critical paths', () => {
  test('user can log in', async ({ page }) => {
    await page.goto('/login');
    await page.fill('#email', process.env.SMOKE_USER);
    await page.fill('#password', process.env.SMOKE_PASS);
    await page.click('button[type="submit"]');
    await expect(page.locator('[data-test="dashboard"]')).toBeVisible();
  });

  test('user can search and open a product', async ({ page }) => {
    await page.goto('/');
    await page.fill('[data-test="search"]', 'wireless keyboard');
    await page.press('[data-test="search"]', 'Enter');
    await expect(page.locator('[data-test="result-card"]').first()).toBeVisible();

    await page.locator('[data-test="result-card"]').first().click();
    await expect(page.locator('[data-test="add-to-cart"]')).toBeEnabled();
  });

  test('user can add a product to the cart', async ({ page }) => {
    await page.goto('/product/wireless-keyboard');
    await page.click('[data-test="add-to-cart"]');
    await expect(page.locator('[data-test="cart-count"]')).toHaveText('1');
  });
});

Tagging the block with @smoke is the detail that matters most.

It lets one repository hold a single test suite while the pipeline selects only the smoke subset at the gate, and the full set later.

How Do You Run Smoke Tests in a CI/CD Pipeline?

Run the smoke suite as an automated pipeline stage once the build deploys to a test environment, then make the regression stage depend on it so any failure blocks promotion.

I would rather see a smoke suite fail loudly and often than one that retries its way to green, because the second kind quietly teaches a team to stop reading the results.

In a modern delivery pipeline, smoke testing is not a phase that someone schedules. It is a gate that runs automatically on every build and blocks promotion when it fails.

The stage sits in a fixed position: after the build artifact is deployed to a test environment, and before the regression stage is allowed to start. Three rules keep it useful.

  • Fail fast. Abort on the first failure rather than completing the suite. You already have your answer, and delay costs fix time.
  • Block promotion, not just report. A stage that logs a warning and continues is no gate. Regression must depend on the result.
  • Never retry a smoke failure automatically. Retries hide breakage. A test flaky enough to need them is itself the defect.

GitHub Actions smoke gate

This workflow deploys the build, runs only the @smoke tagged tests, and makes the regression job depend on the smoke job succeeding. If smoke fails, regression never starts.

name: build-and-verify

on:
  push:
    branches: [main]

jobs:
  smoke:
    name: Smoke gate
    runs-on: ubuntu-latest
    timeout-minutes: 15
    steps:
      - uses: actions/checkout@v4
      - uses: actions/setup-node@v4
        with:
          node-version: 20
      - run: npm ci
      - run: npm run deploy:staging

      - name: Run smoke suite
        run: npx playwright test --grep @smoke --max-failures=1
        env:
          SMOKE_USER: ${{ secrets.SMOKE_USER }}
          SMOKE_PASS: ${{ secrets.SMOKE_PASS }}

  regression:
    name: Regression suite
    needs: smoke          # gate: runs only if smoke passed
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - run: npm ci
      - run: npx playwright test --grep-invert @smoke

The two lines doing the real work are needs: smoke and --max-failures=1.

Together they turn a reporting stage into an enforcing one: the first creates the dependency, and the second stops the run the moment the build is proven broken.

A passing run prints the suite summary and lets the regression job start:

Running 12 tests using 4 workers
  12 passed (7.4s)

Smoke gate .................. success
Regression suite ............ queued

When a case breaks, the run stops there and the regression job never leaves the queue:

  1 failed
    [Chrome] @smoke critical paths > user can log in
    Error: expect(locator).toBeVisible() failed

Smoke gate .................. failure
Regression suite ............ skipped

The timeout-minutes: 15 ceiling is deliberate too. It turns the runtime budget into something the pipeline enforces, so a slowly bloating smoke suite fails loudly instead of quietly becoming a bottleneck.

Running the smoke gate across browsers in parallel

A smoke suite that only runs on headless Chrome will miss browser-specific breakage until regression, which defeats the point of gating early.

Pointing the same suite at a cloud grid keeps runtime flat while widening coverage, because the cases execute concurrently rather than in sequence.

// playwright.config.js - fan the @smoke suite across browsers
const browsers = [
  { browserName: 'Chrome',        browserVersion: 'latest', platform: 'Windows 11' },
  { browserName: 'MicrosoftEdge', browserVersion: 'latest', platform: 'Windows 11' },
  { browserName: 'pw-webkit',     browserVersion: 'latest', platform: 'macOS Sonoma' },
];

const wsEndpoint = (b) => {
  const capabilities = {
    browserName: b.browserName,
    browserVersion: b.browserVersion,
    'LT:Options': {
      platform: b.platform,
      build: 'Smoke gate',
      user: process.env.LT_USERNAME,
      accessKey: process.env.LT_ACCESS_KEY,
    },
  };
  return `wss://cdp.lambdatest.com/playwright?capabilities=${encodeURIComponent(JSON.stringify(capabilities))}`;
};

module.exports = {
  grep: /@smoke/,
  workers: browsers.length,   // every browser runs at once
  retries: 0,                 // never retry a smoke failure
  projects: browsers.map((b) => ({
    name: `${b.browserName}-${b.platform}`,
    use: { connectOptions: { wsEndpoint: wsEndpoint(b) } },
  })),
};

Because the browsers run concurrently, testing three of them costs roughly the same wall-clock time as testing one.

You can run the same suite on an online browser farm of 3,000+ browsers and OS combinations without moving past the 15-minute budget.

Which Metrics Should You Track for Smoke Testing?

Track four numbers: build acceptance rate, smoke suite runtime, escaped defect rate, and smoke flakiness. Together they show whether the gate is still doing the job it was built for.

Most teams track smoke results as a simple pass or fail and stop there, which throws away the signal.

A smoke gate is a sensor on build health, and four numbers tell you whether it is doing its job.

METRICHOW TO CALCULATE ITHEALTHY RANGE
Build acceptance rateBuilds that pass smoke divided by total builds submittedAbove 90 percent. Lower means quality problems upstream of QA
Smoke suite runtimeWall-clock time from stage start to verdictUnder 15 minutes. Track the trend, not just the current value
Escaped defect rateCritical-path defects found in regression that smoke should have caughtNear zero. Anything else means the suite has coverage gaps
Smoke flakinessFailures that pass on an unchanged re-run, divided by total failuresUnder 2 percent. Above that, developers stop trusting the gate

Escaped defect rate is the one most worth watching.

If I had to keep one of these four, it would be escaped defect rate, because it alone tells you what the suite is missing rather than how it ran.

Every critical-path bug that reaches regression is direct evidence that a case is missing from the smoke suite, which makes it the cleanest input for what to add next.

Flakiness deserves the harshest treatment. A smoke gate only works if a red result is believed, and one unreliable test is enough to teach a team to re-run instead of investigate.

Smoke Testing Checklist

Run through this before you accept a smoke suite as your build gate. If you cannot tick every line, the suite will either miss breakage or slow the pipeline down.

SMOKE TESTING CHECKLIST

Scope
[ ] Every revenue-critical or rollback-worthy user path has exactly one case
[ ] No negative cases, boundary values, or invalid inputs in the suite
[ ] No field-level or error-message assertions
[ ] Suite size is between 20 and 50 cases

Speed
[ ] Full suite completes in under 15 minutes
[ ] Suite runs in parallel, not sequentially
[ ] Pipeline enforces a hard timeout on the stage

Pipeline
[ ] Triggered automatically on every deploy to the test environment
[ ] Runs before the regression stage, never after
[ ] A failure blocks promotion rather than logging a warning
[ ] Configured to fail fast on the first failure
[ ] Automatic retries are disabled

Reliability
[ ] Test data is seeded, not dependent on prior runs
[ ] Test accounts and secrets come from the CI secret store
[ ] Environment is reset or torn down after each run
[ ] Flaky tests are removed from the suite until fixed

Coverage across environments
[ ] Suite runs on every browser and OS your users actually use
[ ] A reduced suite runs against production after each deployment
[ ] API-level critical paths are covered, not just the UI

Measurement
[ ] Build acceptance rate is tracked over time
[ ] Suite runtime trend is tracked, not just the latest value
[ ] Every critical-path defect escaping to regression triggers a new smoke case

The last line is the one that keeps the suite honest over time. Treating each escaped defect as a missing smoke case is what stops the gate from slowly decaying into a formality.

Why Is Smoke Testing Important?

Smoke testing matters because it produces a single decision cheaply: promote this build, or send it back. That decision protects the hours of regression and exploratory work queued behind it.

Its primary purpose is not to find bugs, but to determine whether the software has reached a workable degree of stability.

Any smoke test assembles checks that are broad in scope rather than deep in defect-hunting, because its output is a single decision about the build.

  • Smoke tests flag breakage. Automated and standardised across builds, a failure usually means a wrong file or something basic is broken.
  • Pass: the build is promoted to the next stage and QA begins deeper testing against it.
  • Fail: the build is rejected and returned to development, and no further QA time is spent on it.
  • The outcome is binary by design. A smoke run yields no severity ranking, no defect count, and no partial credit.
  • That binary quality is why suite trustworthiness matters. One flaky case turns a clear decision into an argument.
  • Until the gate passes, automated functional testing cannot start and the build does not progress.
  • Smoke testing also runs during other stages, such as system testing, making build validation faster across every testing type.

What Are the Characteristics of a Smoke Test?

A smoke test is fast, broad, shallow, scripted, and repeatable. It covers positive paths only, runs equally well for developers or QA, and stays small enough that its runtime never drifts.

Eight properties define the shape of a smoke test: fast, broad, shallow, scripted, repeatable, positive-path only, runnable by developers or QA, and small enough to stay that way.

  • This automated test runs quickly, enabling self-scoring of the test.
  • The test also provides broad coverage across the system.
  • A test can be run by developers and also as part of the quality assurance process.
  • Shows basic errors in a new build, though it doesn't need to be exhaustive.
  • An integral part of the development cycle, verifying the build by checking its key features.
  • Smoke tests can be performed manually or automatically, depending on the needs of the testing team.
  • It applies to different software testing types, including integration, system, and acceptance testing.
  • A limited form of testing with few cases, run through positive scenarios with valid data, and fully documented.

What Are the Benefits of Smoke Testing?

Smoke testing returns stable builds, earlier defect discovery, protected QA capacity, and lower integration risk. Each one traces back to catching structural breakage before others build on it.

  • Stable builds downstream: Only builds whose critical paths work move on, so testers stop second-guessing whether the build itself is at fault.
  • Faster defect discovery: Show-stopping bugs surface minutes after the build, while the developer still has the change in mind.
  • Protected QA capacity: A broken build is rejected before it consumes hours of regression or exploratory testing.
  • Lower integration risk: Breakage from merging new code into existing code shows up on the first build that contains it.
  • Cheap to automate: A small scripted suite runs on every commit, can be triggered from tools such as n8n (see automated cross-browser smoke checks from n8n), and stays fast with parallel testing.
  • Covers APIs as well as UI: The same gate applies to API testing, so a broken endpoint is caught before API testers start.
Note

Note: A smoke test earns its place only when a failure actually blocks the pipeline. HyperExecute runs your suite as one gated step and returns a single pass or fail exit code your CI can branch on. Run your first smoke gate.

What Are the Limitations of Smoke Testing?

A smoke suite cannot find edge-case defects, judge correctness, or replace regression. Every limitation follows from the shallowness that makes the suite fast enough to gate builds.

Despite its many benefits, smoke testing has a few disadvantages that you should be aware of. There is no one-size-fits-all solution. Here are some of the disadvantages mentioned below:

  • Smoke testing requires documentation to be correctly done, so a specialized testing team is required.
  • These tests are not meant to replace full-scale functional testing.
  • The tests will not be run against negative test cases or invalid input.
  • Even after testing the whole application for bugs, you may find critical issues arise in integration and system testing.
  • Any bug left in smoke testing causes larger problems later, so eliminate them before the next phase.
  • Any software project requires time and money, and smoke testing is fully scripted, so special manpower is needed.

How Does Smoke Testing Differ From Sanity Testing?

Smoke testing checks that a new build's critical paths work before deeper testing, while sanity testing checks that a specific fix or change works after a build is already stable.

The two run in sequence on the same build: smoke first, then sanity on the changed area, then regression. The rows below use the same definitions as the comparison table in the sanity testing guide linked at the end of this page.

FACTORSMOKE TESTINGSANITY TESTING
PurposeConfirm a new build is stable enough to test: its critical paths complete end to end.Confirm a specific change or bug fix works and did not break the modules around it.
ScopeWide and shallow: the critical paths across the whole application.Narrow and deep: the modified modules and their direct dependencies.
When it runsFirst, as soon as a new build reaches a test environment.After smoke passes, on a build that carries a bug fix or small change.
Relationship to other testingA build verification step that runs before planned testing begins.Commonly treated as a subset of regression testing.
Who executesDevelopers or testers, usually through the CI/CD pipeline.Mainly testers; developers often check their own fix first.
ScriptingScripted, documented, and usually automated.Usually unscripted and manual; checks that repeat on every build can be automated.
Execution time5 to 15 minutes for a 20 to 50 case suite.Typically 30 to 60 minutes by hand, a few minutes when automated.
OutcomeBuild accepted for testing, or rejected back to development.Build proceeds to regression, or is rejected back to development.

For a fuller side-by-side treatment with worked examples of each, read our dedicated guide to smoke testing vs sanity testing.

What Is the Difference Between Smoke Testing and Regression Testing?

Smoke testing runs 20 to 50 shallow checks in minutes to decide whether a build is worth testing. Regression testing runs deep suites for hours to confirm nothing existing has broken.

These two are often confused because both run against a new build, but they answer opposite questions.

The first asks whether the build is worth testing at all. The second asks whether anything that used to work has stopped working.

In practice the relationship is sequential: smoke is the gate, and regression is what runs once the gate opens.

Running regression on a build that would have failed a smoke test is the most common way QA capacity gets burned.

PARAMETERSMOKE TESTINGREGRESSION TESTING
Question it answersIs this build stable enough to test?Has any existing functionality broken?
CoverageBroad and shallow across critical paths onlyDeep and exhaustive across the whole application
Typical suite size20 to 50 test casesHundreds to thousands of test cases
Typical runtime5 to 15 minutesSeveral hours, often run overnight
When it runsImmediately after every build is deployedAfter the smoke test passes, or on a nightly schedule
Effect of a failureBuild is rejected and returned to developmentSpecific defects are logged and triaged
Negative test casesExcluded by designIncluded
Usual ownerDevelopers, via the CI/CD pipelineQA team

The two suites also age differently. A smoke suite should stay roughly the same size forever, because the number of critical paths changes slowly.

A regression testing suite grows with every feature and every bug fix, which is exactly why it cannot double as a gate.

What Are the Types of Smoke Testing?

Smoke testing splits into formal and informal, divided by who authorises the run. Formal runs are requested by a test lead and reported back; informal runs start on a tester judgement.

Independent of how you execute it, smoke testing splits into two types by who authorises the run: formal and informal

Formal smoke testing

Here the development team sends the application to the test lead, who instructs the testing team to run smoke testing.

Once that team completes the run, they send the smoke testing report back to the test lead.

Informal smoke testing

The Test lead says that the application is ready for further testing. The test leads do not specify to do smoke testing, but still, the testing team starts testing the application by doing smoke testing

Should You Run Smoke Tests Manually or Automate Them?

Execution splits three ways: manual, automated, or hybrid. Build frequency decides it, because a manual run costing 20 minutes of a tester per build stops scaling once you deploy more than once a day.

Smoke tests can be run by hand or automated. Teams that ship a build more than once a day automate them, because a manual pass on every build does not scale.

Manual Testing

To test a product, the tester writes and updates the test cases, covering either existing features or new ones.

Manual smoke testing suits teams with infrequent builds, and is applied to the fresh build and any newly added features. The written cases must be updated to reflect each requirement.

Smoke testing ensures critical path navigation does not hinder functionality. Once the build reaches QA, high-priority functional test cases run to surface critical defects.

If those pass, functional testing continues. If they fail, the build is rejected and returned to the development team for correction.

QA then receives a new build and begins with smoke testing again.

The run covers new builds integrated with older ones to confirm system correctness. Before starting, QA should verify each build carries the correct version.

Automation Testing

Automation testing tools handle the testing process automatically. Automated smoke tests are performed when we need to run a batch of automated tests and immediately test the build whenever an issue is reported

Smoke testing can drastically reduce test time. Automated, it can finish in only a few minutes.

Where developers build frequently or run continuous testing strategy, automating smoke tests lets QA give faster feedback on each build.

Automated smoke suites are usually written in Playwright, Selenium, or Cypress and run on a cloud grid such as TestMu AI.

TestMu AI is a cloud-based cross browser testing platform that runs automation at scale across 3,000+ browsers and OS combinations.

Youtube thumbnail

You can subscribe to the TestMu AI YouTube Channel and stay updated with the latest tutorials around automation testing, Cypress UI testing, Responsive testing, and more

Hybrid Method

The hybrid method combines manual and automated testing.

Testers automate the stable critical paths and keep a short manual pass for new features whose cases are not scripted yet.

Which Tools Are Used for Smoke Testing?

There is no dedicated smoke testing tool. A smoke suite combines an authoring framework such as Playwright or Selenium, a CI server such as Jenkins, and a parallel cloud execution grid.

No tool on the market is built solely for smoke testing.

A smoke suite is built from the same components as any other automated suite, so the real decision is which authoring framework, CI server, and execution grid fit your stack.

The table below maps the common choices to the job each one actually does in a smoke gate.

TOOLROLE IN THE SMOKE GATEBEST SUITED TO
SeleniumAuthors browser-level smoke testsTeams with existing Java or Python suites and wide browser requirements
PlaywrightAuthors browser smoke tests with tag-based selectionJavaScript and TypeScript teams that want fast, low-flake runs
CypressAuthors front-end smoke tests with time-travel debuggingFront-end teams running smoke checks close to the component layer
Postman or REST AssuredCovers API-level smoke checks such as ST-11 aboveBackend and microservice smoke gates that never touch a browser
TestNG or JUnitGroups and selects the smoke subset within a larger suiteJVM teams already using annotation-based test grouping
GitHub Actions, Jenkins, GitLab CITriggers the gate and blocks promotion on failureAny team running smoke tests automatically rather than on request
TestMu AIExecutes the suite in parallel across real browsers and devicesTeams whose smoke gate must cover multiple browsers inside the time budget

One selection rule matters more than the individual choices: whatever you pick must support tagging or grouping.

A smoke suite that lives in a separate repository from the regression suite will drift out of sync within a few sprints.

If you are still choosing a framework, our comparison of automation testing tools covers the trade-offs in more depth.

How Do You Perform Smoke Testing on TestMu AI?

On TestMu AI, define the smoke suite in a hyperexecute.yaml file, run it as one pipeline step, and reproduce any failure by hand in a real-time browser session.

Now that you know what belongs in a smoke suite and where the gate sits in the pipeline, here is how to run it on TestMu AI.

Start with the automated path, since that is what a smoke gate needs.

The manual real-time sessions that follow suit the exploratory check a tester runs when a smoke test fails and someone must see the breakage first-hand.

Running the smoke gate on HyperExecute

HyperExecute is the execution layer for the gate itself.

It shards the suite across parallel runners so a 12-case smoke suite finishes in minutes, and returns a single pass or fail exit code your pipeline can gate on.

Define the gate in a hyperexecute.yaml at the repository root:

version: 0.1
runson: linux
autosplit: true
concurrency: 4          # four runners share the smoke suite
maxRetries: 0           # never retry a smoke failure

testDiscovery:
  type: raw
  mode: dynamic
  command: npx playwright test --grep @smoke --list

testRunnerCommand: npx playwright test --grep @smoke $test

report: true
partialReports:
  location: playwright-report
  type: html

Then invoke it as a single pipeline step. The CLI exits non-zero when any smoke case fails, which is what lets the regression stage depend on it:

./hyperexecute --config hyperexecute.yaml \
  --user $LT_USERNAME --key $LT_ACCESS_KEY

The two settings that make this a gate rather than a test run are maxRetries: 0 and autosplit: true.

One preserves the signal by refusing to mask flaky failures. The other keeps runtime inside the budget as the suite grows.

Full option reference: deep dive into HyperExecute YAML.

Real Time Website and Web App Testing

When a smoke test fails and you need to reproduce the breakage by hand, a real-time session is the fastest way to see it. Here's how to run one on the TestMu AI platform:

  • Register and log in to your TestMu AI account.
  • Click the Real Time Testing tab in the left menu bar.
  • Real Time Testing
  • Enter the URL in the Real Time Testing window and choose the BRAND, DEVICE/OS, and BROWSER.
  • Real Time Testing
  • Click START. You can launch your website by using the required configuration.
  • Once launched, you can test the site using screenshots, screen recording, one-click bug logging, and more.
  • Test responsiveness with the LT Browser tool, which offers hot reloading, network throttling, and side-by-side device interaction.

Web Automation and App Testing

To perform automated smoke testing on the TestMu AI platform, follow the below steps:

  • To automate smoke tests, go to the Automation section of the left menu bar.
  • automation testing dashboard
  • You can run automated tests on the TestMu AI platform, then pick your preferred framework or language on screen.
  • Add OS and browser information, specify required capabilities, set the project, then select your options and test.
  • add OS Browser information

    You can also use the TestMu AI platform to perform mobile app testing for smoke testing on Emulators/Simulators or a real device cloud.

Real Time Mobile App Testing

On TestMu AI, you have two options for mobile app testing:

  • Testing with emulators and simulators
  • Testing with real devices

TestMu AI offers both options, and it is up to you which way to go.

To smoke test with emulators or simulators on the TestMu AI platform, please follow these steps:

  • Click the Real Time Testing option in the left menu bar to smoke test your mobile application.
  • You can upload the app and select the device or OS that needs to be tested from the App Testing tab.
  • upload the app
  • Press the START button to begin the test session.

For Real Devices on the TestMu AI platform, follow these steps:

  • Go to Real Device under the left menu, and choose Real Time or App Automation.
  • Real Time on a device focuses on manual testing. You can also run app automation with Appium, Espresso, or XCUITest.
  • choose the operating system

Now you can interact with the app.

interact with the app

TestMu AI allows you to perform Real Device Cloudon an online device farm. Watch this video to learn more about how to test your applications on TestMu AI:

Youtube thumbnail
Shift from a legacy test platform to TestMu AI

What Are the Best Practices for Smoke Testing?

Run the suite early and unconditionally, keep it capped and fast, track results per build, and remove flaky cases on sight. Each practice protects the property that makes the gate worth having.

Seven practices separate a smoke suite that holds its value from one that decays into a formality.

  • Run tests often and early: Catch errors before the build becomes unstable, which is why early runs pay off.
  • Never skip any testing stage: Assuming a build is stable is tempting, but validity is unknowable without testing it.
  • Test everything: Test every build, whether it moves into integration or performance testing. Smoke testing suits every build type.
  • Keep an eye on the checklist: A step-by-step website testing guide helps manual testers, and anyone organising a testing process.
  • Track your test results: A build that keeps failing needs addressing, and one that always passes is worth knowing about too.
  • Test at least two times: Running builds through smoke testing more than once raises your chances of stopping major bugs.
  • Choose the right testing type: On a limited budget, a manual testing approach may not be feasible; hybrid or automated fits better.

How Is AI Changing Smoke Testing?

AI is changing smoke testing by generating smoke cases from plain-language descriptions of critical user journeys, so teams can cover a new release's must-work paths in minutes.

For a quick visual walkthrough of this concept, watch the video below from TestMu AI.

Youtube thumbnail

Subscribe to the TestMu AI YouTube channel for more tutorials on testing and automation.

Self-healing test automation keeps those checks stable when the UI changes, but a smoke gate should still fail loudly on real breakage, so review every healed locator instead of letting the tool pass it silently.

AI features need smoke checks too: after each deployment, confirm the model endpoint responds, returns output in the expected format, and stays within latency limits before deeper evaluation runs. Our guide to AI in test automation covers the wider workflow.

Where Should You Start With Smoke Testing?

Start with 20 to 50 checks covering the journeys your product cannot ship without, run them automatically on every build, and block promotion whenever one fails.

Smoke testing is the cheapest quality control a team can run, and the easiest one to get wrong.

Almost every failure mode traces back to the same mistake: letting the suite grow until it stops being fast enough to gate anything.

Three constraints keep it working. Cap the suite at 20 to 50 cases covering only critical paths, hold the runtime under 15 minutes, and make a failure block promotion instead of logging a warning.

Everything else in this guide follows from those three.

The test-case table shows what belongs in scope, the CI/CD recipe shows how to enforce the gate, and the metrics show whether it still works six months from now.

Start with the checklist above and wire the gate into your pipeline. Once it holds, the natural next read is sanity testing, the check that runs after a fix. Where the thing being gated is an AI agent rather than an application, agent smoke testing covers what changes.

Testing web or mobile apps without writing code? KaneAI by TestMu AI turns plain-English instructions into tests.

To run your first test, start free, or
for a full walkthrough of the product.

Author

...

Swapnil Biswas

Blogs: 8

  • Twitter
  • Linkedin

Swapnil Biswas is a Product Marketing Manager at TestMu AI, leading product marketing for KaneAI and HyperExecute while orchestrating GTM campaigns and product launches. With 5+ years of experience in product marketing and growth strategy, he specializes in AI, SEO, and content marketing. Certified in Selenium, Cypress, Playwright, Appium, KaneAI, and Automation Testing, Swapnil brings hands-on expertise across web and mobile automation. He has authored 20+ technical blogs and 10+ high-ranking articles on CI/CD, API testing, and defect management, enabling 70K+ testers to improve automation maturity. His work earned him multiple awards, including Top Performer, Value of Agility, and Wall of Fame. Swapnil holds a PG Certificate in Digital Marketing & Growth Strategy from IIM Visakhapatnam and a BBA in Marketing from Amity University.

Reviewer

...

Himanshu Sheth

Reviewer

  • Linkedin

Himanshu Sheth is the Director of Marketing (Technical Content) at TestMu AI, with over 8 years of hands-on experience in Selenium, Cypress, and other test automation frameworks. He has authored more than 130 technical blogs for TestMu AI, covering software testing, automation strategy, and CI/CD. At TestMu AI, he leads the technical content efforts across blogs, YouTube, and social media, while closely collaborating with contributors to enhance content quality and product feedback loops. He has done his graduation with a B.E. in Computer Engineering from Mumbai University. Before TestMu AI, Himanshu led engineering teams in embedded software domains at companies like Samsung Research, Motorola, and NXP Semiconductors. He is a core member of DZone and has been a speaker at several unconferences focused on technical writing and software quality.

Add to Google preferred sources

Summarise with AI

Copied to Clipboard!
...

3000+ Browsers. One Platform.

See exactly how your site performs everywhere.

Try it free
...

Write Tests in Plain English with KaneAI

Create, debug, and evolve tests using natural language.

Try for free

Smoke Testing FAQs

Did you find this page helpful?

More Related Learning Hubs

TestMu AI forEnterprise

Get access to solutions built on Enterprise
grade security, privacy, & compliance

  • Advanced access controls
  • Advanced data retention rules
  • Advanced Local Testing
  • Premium Support options
  • Early access to beta features
  • Private Slack Channel
  • Unlimited Manual Accessibility DevTools Tests