Next Manual Testing batch starts October 2026 · Seats openBook free demo →
Tester AcademyBook free demo
Software testing

Smoke Testing: Types, Examples, Process & Tools

By Tester Academy · Updated Oct 30, 2026 · 14 min read
QUICK ANSWER

Smoke testing is a software testing technique that checks whether an application's critical functions work after a new build or deployment. Also called Build Verification Testing (BVT), it helps teams determine whether the build is stable enough for further testing.

Smoke testing checks whether the most critical functions of a software application work after a new build or deployment. It helps QA teams identify unstable builds early, before spending time on detailed functional or regression testing.

A well-designed smoke test suite provides quick feedback on application readiness and helps teams decide whether further testing can begin.

What Is Smoke Testing?

Smoke testing is a software testing technique used to verify that an application’s essential features work as expected before more detailed testing begins. It is commonly called Build Verification Testing (BVT).

The approach is often described as broad but shallow. Rather than testing every possible scenario, smoke testing covers a small set of critical functions across important areas of the application.

For example, when an e-commerce website receives a new build, a QA engineer might check whether the website loads, users can log in, products can be searched, and the shopping cart works.

If the login functionality fails, there may be little value in proceeding with tests that require an authenticated user.

Smoke testing helps teams:

  • Identify critical defects early in the testing cycle.
  • Avoid spending time testing unstable builds.
  • Receive faster feedback after code changes.
  • Reduce the risk of progressing with a broken release.

However, passing smoke tests does not guarantee that an application is free from defects. It only confirms that the selected critical checks have passed. Other software testing techniques are still needed to evaluate functionality, integrations, performance, and security in greater depth.

Smoke vs. Sanity vs. Regression Testing

Smoke, sanity, and regression testing serve different purposes, although teams may use them together during software development.

Smoke testing checks basic build stability, sanity testing verifies specific changes, and regression testing examines whether recent changes have negatively affected existing functionality.

CriteriaSmoke TestingSanity TestingRegression Testing
PurposeVerify critical functionalityValidate targeted changesDetect defects introduced by changes
ScopeBroad but shallowNarrow and focusedBroader, with deeper coverage
When performedAfter a new build or deploymentAfter a specific fix or changeAfter changes that may affect existing behavior
Test coverageEssential workflowsAffected functionalityExisting functionality and related dependencies
ExampleCheck login and checkout availabilityVerify a fixed password-reset issueCheck that authentication changes have not broken other features

How do they work together?

Consider an application receiving an authentication update. Smoke testing first checks whether users can still access the application. 

Sanity testing may verify the specific authentication fix, while regression testing checks related workflows, such as account recovery, session handling, and role-based access.

These activities can overlap, and their exact sequence depends on the team’s testing strategy.

When Should You Run Smoke Tests?

Smoke tests should run whenever a change could affect the application’s basic functionality or readiness for further testing.

Common situations include:

  1. After a new software build: Verify that essential functionality works before starting detailed testing.
  2. After code integration: Check that newly merged code has not disrupted critical workflows.
  3. After staging deployment: Confirm that the deployed application works in its target environment.
  4. After major feature updates: Validate essential workflows that could be affected by new functionality.
  5. After infrastructure changes: Check application availability and critical integrations following configuration, database, or hosting changes.
  6. After production deployment: Perform carefully controlled checks to identify critical problems before expanding a rollout.

For teams using continuous integration and continuous delivery (CI/CD), automated smoke tests can run as part of the deployment pipeline.

Not every minor code change requires a complete smoke suite. The decision should depend on the change’s risk, the application architecture, and the team’s release process.

Manual, Automated, and Hybrid Smoke Testing

Smoke testing can be performed manually, automatically, or through a combination of both approaches.

Manual smoke testing involves QA engineers executing selected test cases without automation scripts. It is useful for applications with frequently changing interfaces, early-stage products, and scenarios requiring human judgment. However, repeated manual execution can be time-consuming.

Automated smoke testing uses testing tools to execute predefined checks and compare actual results with expected outcomes. It is suitable for stable, repetitive workflows such as authentication, navigation, and API availability. Automated smoke tests are especially useful in CI/CD environments where builds are released frequently.

Hybrid smoke testing combines automated checks with targeted manual verification. For example, a team might automate login and API checks while manually reviewing a newly introduced interface.

The right approach depends on application complexity, release frequency, available resources, and the reliability of the selected test cases.

How to Perform Smoke Testing Step by Step

Smoke testing follows a straightforward process that begins with selecting critical features and ends with a decision about build readiness.

Step 1: Identify Critical Functionalities

Select the workflows that must work for users to access the application’s primary functions.

For an e-commerce application, these might include login, product search, shopping cart, and checkout.

Prioritize features based on business impact, user dependency, and the risk of failure.

Step 2: Prepare the Test Environment

Confirm that the application build is deployed correctly and the required services are available.

Prepare test accounts, sample data, API credentials, and any dependencies needed to execute the tests.

Step 3: Create Smoke Test Cases

Write short test cases with clear expected results.

Each case should validate a meaningful function without exploring every possible input or edge condition.

Step 4: Execute the Smoke Tests

Run the selected tests manually or through an automation framework.

Record failed assertions, unavailable services, blocked scenarios, and other issues that prevent successful execution.

Step 5: Evaluate Results and Report Build Status

Compare actual results with expected outcomes.

If all required critical checks pass, the build can proceed to the next testing stage. If a critical check fails, investigate the issue and determine whether further testing should be blocked.

Smoke testing workflow:

New Build → Environment Check → Execute Smoke Tests → Evaluate Results → Proceed or Reject Build

A failed smoke test should produce actionable information, including the affected functionality, failure evidence, and steps needed to investigate the problem.

Smoke Testing Examples

The specific smoke tests depend on the application and its most important user journeys.

Here are three practical examples covering web applications, SaaS products, and APIs.

Smoke Testing Example for an E-commerce Website

An e-commerce application depends on several connected functions to allow customers to purchase products.

A basic smoke test suite might verify that:

  • The homepage loads successfully.
  • Customers can log in using a valid account.
  • Product search returns relevant results.
  • Products can be added to the shopping cart.
  • The checkout workflow can be accessed and completed using safe test transactions.

Suppose a new deployment introduces a defect that prevents customers from adding products to their carts.

The smoke suite should identify this critical failure before more detailed testing continues.

Smoke Testing Example for a SaaS Application

SaaS applications often rely on authentication, dashboards, account permissions, and integrations.

For a project management SaaS product, smoke tests might check whether:

  • Users can sign in successfully.
  • The main dashboard loads.
  • Users can create a project.
  • Existing projects can be opened.
  • A critical API integration responds correctly.

If users can authenticate but cannot access their projects, the build may not be ready for release.

Smoke Testing Example for an API

API smoke testing verifies that essential endpoints are available and behave correctly for a small set of valid requests.

For example, an order management API might require these checks:

  • The health endpoint responds successfully.
  • Authentication works with valid credentials.
  • A valid request returns the expected HTTP status.
  • The response contains required fields.
  • A critical order retrieval operation returns the expected test record.

An HTTP 200 response alone does not necessarily indicate that an API is functioning correctly.

A useful smoke test should also validate critical response data and relevant business behavior.

How to Write Smoke Test Cases

Smoke test cases should be simple, repeatable, and focused on essential application functionality.

Each test case should have a defined objective, the required input or action, and a clear expected result.

The following example shows a basic smoke test suite for an e-commerce application.

Test IDTest ScenarioTest StepsExpected Result
ST-01Verify homepageOpen the application URLHomepage loads successfully
ST-02Verify user loginEnter valid credentials and submitUser reaches the dashboard
ST-03Verify product searchSearch for a known productRelevant product appears
ST-04Verify shopping cartAdd an available productProduct appears in the cart
ST-05Verify checkoutComplete checkout using a test payment methodTest order is confirmed

All five cases are examples of planned checks, not actual execution results. A real test report should also include status, execution date, environment, and defect references when applicable.

Smoke testing checklist

  • Identify essential business workflows.
  • Confirm the build and environment are ready.
  • Prepare valid test accounts and data.
  • Execute all mandatory smoke test cases.
  • Records failed, passed, and blocked results.
  • Report critical defects with supporting evidence.
  • Confirm whether the build can proceed.

Keep the checklist focused. A smoke suite that attempts to validate every feature and edge case will gradually become a regression suite.

Smoke Testing Tools

Several testing tools can support automated smoke testing. The appropriate choice depends on the technology stack, application type, and team’s existing automation infrastructure.

Playwright: An end-to-end testing framework for modern web applications. It supports browser automation, assertions, test tagging, reporting, and parallel execution.

Selenium: A browser automation framework commonly used for web application testing. It supports multiple programming languages and major browsers.

Cypress: A web testing framework that provides browser-based test execution, debugging, and assertions for supported application workflows.

Postman: An API development and testing platform that can execute request collections and validate responses. It is useful for smoke checks involving essential API endpoints.

Ranorex Studio: A commercial test automation tool supporting desktop, web, and mobile application testing, with visual test creation and reusable automation components.

These tools do not automatically determine which business workflows belong in a smoke suite. Test selection, expected results, and release acceptance criteria still need to be defined.

How to Automate Smoke Tests with Playwright

Playwright can automate critical browser checks and execute them whenever a new build is deployed.

For example, the following TypeScript test verifies that a webpage loads and displays its expected main heading.


import { test, expect } from '@playwright/test';

test('homepage smoke test', {
  tag: '@smoke'
}, async ({ page }) => {
  await page.goto('https://example.com/');

  await expect(page).toHaveTitle('Example Domain');

  await expect(
    page.getByRole('heading', {
      name: 'Example Domain'
    })
  ).toBeVisible();
});

Save the test in a Playwright project as homepage.spec.ts.

The @smoke tag identifies the test as part of the smoke suite.

To execute only tests with this tag, run:

npx playwright test --grep "@smoke"

Playwright selects the tagged tests and executes their assertions. If an expected condition is not satisfied within the configured timeout, the test fails.

This example validates basic page availability and visible content. In a real application, teams should add checks for meaningful business workflows such as authentication or creating a record.

Use stable locators, clear assertions, and isolated test data to reduce unnecessary failures.

Smoke Testing in CI/CD and Production

Smoke testing can be integrated into CI/CD pipelines to validate application readiness after important build and deployment stages.

A typical pipeline may follow this sequence:

Build → Unit Tests → Deploy to Staging → Smoke Tests → Release Approval → Production Deployment

If a critical smoke test fails, the pipeline can stop before the application reaches the next deployment stage.

For example, a GitHub Actions workflow can configure a deployment job to depend on the successful completion of a smoke testing job.

This helps teams identify critical problems before promoting a build.

Production smoke testing

Smoke testing may also be performed after deployment to verify that essential functionality works in the production environment.

However, production checks require additional precautions.

Use dedicated test accounts, avoid modifying real customer data, and ensure test transactions cannot trigger unintended financial or business operations.

For applications using canary releases or feature flags, smoke test results can help determine whether to expand the rollout.

If critical checks fail, the release process may stop or initiate an appropriately configured rollback.

A smoke testing tool does not automatically roll back a deployment. Rollback behavior must be implemented through the deployment platform or release management process.

Smoke Testing for AI Applications

AI technologies introduce two important considerations for smoke testing: using AI to assist with test automation and validating applications that contain AI-powered functionality.

AI-assisted smoke test generation

AI-powered testing tools can help generate test cases, suggest automation scripts, analyze failures, and identify possible changes to broken locators.

For example, an AI-assisted tool might generate smoke checks for login, dashboard navigation, and form submission based on a description of the application.

However, generated tests can contain incorrect assertions, unreliable selectors, or assumptions about expected behavior.

QA engineers should review these tests before adding them to a release pipeline. Automatically repairing a failing test must not hide a genuine application defect.

Smoke testing AI applications

Applications using large language models (LLMs), retrieval-augmented generation (RAG), or AI agents need checks tailored to their essential functions.

Consider a customer support chatbot connected to a company knowledge base.

A basic smoke test might verify that:

  1. The chatbot interface loads.
  2. Users can submit a question.
  3. The application returns a response within an acceptable timeout.
  4. A known documentation question retrieves the expected source.
  5. A restricted tool operation is not executed without authorization.

Unlike traditional applications, AI-generated text may vary between executions.

Therefore, smoke tests should focus on essential, measurable outcomes rather than requiring exact wording for every response.

Detailed hallucination testing, prompt injection assessments, and broader model quality evaluations require separate testing strategies.

Challenges and Best Practices

Smoke testing is most effective when teams keep the suite focused, reliable, and aligned with business-critical functionality.

Several common challenges can reduce its usefulness.

1. Limited test coverage

Smoke tests validate only selected functionality, which means defects outside those workflows can remain undetected.

Best practice: Prioritize critical user journeys and use regression, integration, and other testing techniques for broader coverage.

2. Flaky test results

Tests may fail intermittently because of timing issues, unstable dependencies, or unreliable selectors.

Best practice: Use stable locators, appropriate assertions, controlled environments, and execution traces to investigate failures. Do not treat repeated retries as a substitute for fixing flaky tests.

3. Poor test data management

Missing accounts, expired credentials, and inconsistent test records can cause failures unrelated to application functionality.

Best practice: Maintain dedicated test data, automate setup where practical, and ensure tests clean up any data they create.

4. Increasing execution time

A growing smoke suite can become too slow to provide fast build feedback.

Best practice: Keep only essential checks in the smoke suite and move detailed scenarios into functional or regression suites. Review test selection as the application evolves.

5. Unclear acceptance criteria

Teams may disagree about whether a build is acceptable when some tests pass and others fail.

Best practice: Define mandatory checks, failure severity, and build acceptance rules before execution. Record blocked scenarios separately from successful results.

6. Insufficient maintenance

Application changes can make existing smoke tests outdated or irrelevant.

Best practice: Review the suite after major feature releases, architecture changes, and updates to critical business workflows.

A successful smoke testing strategy balances speed, coverage of essential functionality, and confidence in test results.

Final thoughts 

Smoke testing helps software teams determine whether an application build is ready for further testing or release progression. By checking essential functionality early, teams can identify critical issues and avoid spending effort on unstable builds.

A focused smoke suite, supported by appropriate automation, reliable test data, and CI/CD integration, provides faster feedback without replacing comprehensive testing.

 As applications adopt AI-powered features and more frequent deployments, carefully designed smoke tests remain an important part of software quality assurance.

Learn these on real projectsManual Testing course · Motera · October 2026See the course

FAQs

Is smoke testing functional or non-functional testing?

Smoke testing primarily verifies essential functional behavior. However, a smoke suite can also include basic non-functional checks, such as service availability or response-time thresholds, when they are necessary to determine application readiness.

Who performs smoke testing?

Smoke testing may be performed by QA engineers, developers, software development engineers in test (SDETs), or automation engineers. Responsibility depends on the team’s workflow, testing strategy, and deployment process.

What happens when smoke testing fails?

The team investigates the failure, records relevant evidence, and determines whether the issue is caused by the application, test environment, or test script. Critical failures generally block further testing or release progression until resolved.

Can smoke testing be fully automated?

Yes, many applications can automate their entire smoke test suite when the selected workflows have reliable, measurable outcomes. Manual checks may still be appropriate for new features, unstable interfaces, or scenarios requiring human evaluation.

Tester Academy

Related guides

Software testingOct 30, 2026Smoke Testing: Types, Examples, Process & ToolsRead article →

Stay in the loop

Get new batch dates on WhatsApp. One message when a batch opens, nothing else.

Stay in the loop

By subscribing you agree to receive WhatsApp messages from Tester Academy. Read our Privacy policy.

WhatsAppBook free demo
Questions? WhatsApp us