Skip to main content

Smoke testing



Smoke testing, also called build verification testing or build acceptance testing, is nonexhaustive software analysis that ascertains that the most crucial functions of a program work but does not delve into finer details.

Smoke testing is the preliminary check of the software after a build and before a release. This type of testing finds basic and critical issues in an application before critical testing is implemented.
The term smoke testing originates from a similarly basic type of hardware testing in which a device passes the test if it doesn't catch fire the first time it turns on. Daily build and smoke tests are among industry best practices advocated by the Institute of Electrical and Electronics Engineers in Code Complete by former IEEE editor in chief and software engineer expert Steve McConnell.

How smoke testing works

Quality assurance (QA) testers perform smoke testing after the developers deliver every new build of an application. If the code passes the smoke testing, the software build moves on to more rigorous tests, such as unit and integration tests. If the smoke test fails, then the testers have discovered a major flaw that halts all further tests. QA then asks developers to send another build. This one broad initial test is a more effective strategy to improve software code than if the team conducted specific and rigorous tests this early in the development process.

Smoke testing is also performed from the perspective of user experience (UX). This approach includes testing key functionalities, such as if the build is accessible or if the user interface (UI) and login mechanism function. Other key functionalities include if an action selection correlates with the intended action. For example, if a user adds an item to a shopping cart in an e-commerce web application, does the item appear in the cart?

Automation and smoke testing

Automated smoke testing can drastically cut down on testing time. Manual testing can take half a day depending on the number of smoke tests involved. After automating those tests, smoke testing can take only a few minutes. If developers make builds frequently or if continuous testing is implemented, then automating smoke tests will enable QA testers to give faster feedback on test builds.

Tools for automated smoke testing include Selenium and PhantomJS. Selenium is an open source software that can automate and run testing parameters on multiple web browsers. Selenium automates control of browsers on various operating systems (OSes). PhantomJS is an option for integration and automation with continuous integration (CI) tools, such as Jenkins and TeamCity. PhantomJS is not resource-intensive and works well in networking monitoring.

Smoke testing vs. regression testing

Regression testing is a separate way to verify good software code. Regression testing ensures that changes to a program do not add new bugs that inadvertently compromise the performance or integrity of the software. Similar to smoke tests, regression tests should be implemented often, with every new build. Unlike smoke tests, however, regression tests are in-depth and detailed.

Regression tests target specific operations of software and can take a few hours to complete. For example, regression testing explicitly checks each link on an updated webpage to verify that each link still works as intended. Some use cases in regression testing can be automated, such as verifying that adding an item to a cart works or that users can still navigate to their cart and pay.

Smoke testing and sanity testing

There is confusion between the terms smoke testing and sanity testing in the software industry. Some professionals use the term sanity testing as an equivalent to smoke testing, while others use sanity testing as a term that refers to a subset of regression testing. When the term sanity testing is used to mean a subset of regression testing, the scope of testing is often assumed to be narrow and in-depth.


Comments

Popular posts from this blog

A Graphics Processing Unit (GPU)

A graphics processing unit (GPU) is a computer chip that performs rapid mathematical calculations, primarily for the purpose of rendering images. A GPU may be found integrated with a central processing unit (CPU) on the same circuit, on a graphics card or in the motherboard of a personal computer or server. In the early days of computing, the CPU performed these calculations. As more graphics-intensive applications such as AutoCAD were developed; however, their demands put strain on the CPU and degraded performance. GPUs came about as a way to offload those tasks from CPUs, freeing up their processing power. NVIDIA, AMD, Intel and ARM are some of the major players in the GPU market. GPU vs. CPU A graphics processing unit is able to render images more quickly than a central processing unit because of its parallel processing architecture, which allows it to perform multiple calculations at the same time. A single CPU does not have this capability, although multi...

What's the difference between two-step verification and 2FA?

  The two terms, two-step verification, and two-factor authentication are synonymous, though the former is now being used more widely by the likes of Google, Microsoft, and Apple as it better conveys how the actual authentication process works. In the past, two-step verification was used to describe processes that used the same authentication factors, while two-factor authentication described processes that involved different factors, such as entering a password on a website and receiving a numerical code on a mobile device. Today, the two terms are both used to describe authentication that involves a secondary factor that is different from the first. Authentication is a vital element of access control and data security because users can be assigned access rights and be authorized to perform certain actions only after successful authentication is performed. The ways in which someone can be authenticated fall into three categories based on what is known ...

Black Swan Event

A black swan event is an incident that occurs randomly and unexpectedly and has wide-spread ramifications. The event is usually followed with reflection and a flawed rationalization that it was inevitable. The phrase illustrates the frailty of inductive reasoning and the danger of making sweeping generalizations from limited observations. The term came from the idea that if a man saw a thousand swans and they were all white, he might logically conclude that all swans are white. The flaw in his logic is that even when the premises are true, the conclusion can still be false. In other words, just because the man has never seen a black swan, it does not mean they do not exist. As Dutch explorers discovered in 1697, black swans are simply outliers -- rare birds, unknown to Europeans until Willem de Vlamingh and his crew visited Australia. Statistician Nassim Nicholas Taleb uses the phrase black swan as a metaphor for how humans deal with unpredictable events in his 2007...