Best Approaches to Start Smoke Testing

Automated smoke testing is an element of strong test strategy that helps identify issues early on in the software development lifecycle.

Key Takeaways

  • Empower your developers to test early and often with effective smoke testing.

  • By subsetting large test suites, smoke testing helps verify the entire system from end to end with the labor of running the whole test suite

  • Smoke testing at night might be necessary if you’re running a huge test suite, but overnight smoke testing means testing everyone’s changes from the day.

  • Get the most out of smoke testing by automating your test selection.

If you want to build an awesome app or program, you need effective testing. The most effective testing strategies include smoke tests, helping developers find flaws earlier in the software testing life cycle

Not every team runs smoke tests. But we all know running extended nightly test suites bloat testing feedback loops. Empower your developers to test early and often with effective smoke testing. Start automating your smoke test selection and shift testing left for higher quality code and faster releases.

Avoid Exhaustive Tests Later with Smoke Testing

While some view smoke testing as a pain (more tests?!), smoke testing is critical to mission success because smoke testing helps assess if the main functions of an app or software program function correctly. Smoke testing is vital if you want to understand a build’s overall stability early on and save time fixing mistakes later.

By subsetting large test suites, smoke testing helps verify the entire system from end to end with the labor of running the whole test suite. Smoke tests allow developers to identify bugs early on in a project, which helps to mitigate risk. Smoke testing enables developers to catch errors, failures, or mistakes that can lead to significant problems later in a build. In this way, smoke testing helps to create the sturdiest, best foundation for a build. 

To put this in nursery rhyme terms, if two of the Three Little Pigs had tested critical sections of their stick and straw houses before the big bad wolf came around, they would have realized they needed to reinforce their structures, and the story might have had a much happier ending. 

Automated smoke testing also helps developers receive rapid feedback, which is critical for speeding up releases. Smoke testing gives feedback to the testers immediately so they don’t waste hours attempting to find a build failure or flaw. Not only does this improve the productivity of solo developers, but smoke testing also streamlines system processes and the efficiency of an entire team or project lifespan. 

Smoke testing helps you catch mistakes early on, which saves developers time and energy later. All that said, manual smoke testing can come with several significant risks, especially in process efficiency and testing efficacy.

Standard Approaches to Smoke Tests 

When teams start to take on smoke testing, it’s typically by manually subsetting important functionality from the full test suite for confidence testing. Ideally, after each new build (and before standard testing), teams run smoke tests whenever introducing new features to the product. Smoke tests are either executed manually or using automation.

Manually selected smoke tests are often left static and remain untouched or revised after creation. The assumption is that the smoke test suite will always remain accurate and timely as a project moves ahead. While smoke testing is critical to a successful release, smoke tests are infrequently changed because of manual test selection standards.

Failure to revise a smoke test suite means the potential of skipping bugs or testing the wrong changes. With static smoke test selection, testing is not driven by data or historical results, which makes it a less nimble, intelligent testing strategy. 

If your your team is looking to start smoke testing, or to update your existing approach, Predictive Test Selection can replace your standard static smoke test subset list with a dynamic list that ebbs and flows.

Get the Most Out of Your Smoke Tests by Automating Test Selection with Launchable

Predictive Test Selection uses machine learning to intelligently select the best smoke tests to run based on characteristics of code changes. That means you don’t need that tribal knowledge of which tests have previously run or need to run. Instead, Launchable intelligently selects smoke tests to run based on historical results and the meta-data from the previously tested changes that trained your ML model. Predictive Test Selection then creates a subset of the most likely-to-fail-tests (i.e. intelligent smoke tests) for these incoming commits. You can then run these subsets earlier in the pipeline—effectively shifting a test suite left.

By smoke testing earlier with Launchable, especially on pull requests, triage can be done by the individual dev for the specific pull request — which ultimately saves time and effort. Start smoke testing on individual devs at the pull request level and set up easy change notifications via Slack.

Launchable’s Test Suite Insights also helps to rev up your smoke testing by cutting down on average test duration times. With Test Suite Insights, it’s easy to keep an eye on the health of your test suite, including identifying increases in test session duration time. With Launchable, running a massive test suite every single time is unnecessary. Instead, smoke testing can become a combination of short and longer runs. 

Launchable’s Test Suite Insights also helps boost your smoke testing frequency. By running tests more frequently, it’s easier to identify which tests are being run less often, a signal of negative health metrics like increased cycle time, reduced quality, or fewer changes flowing through the pipeline. With Test Suite Insights, your smoke testing can be smarter, faster, and more efficient. Faster testing cycles = happier devs