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

Black swan

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...

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...

6G (sixth-generation wireless)

6G (sixth-generation wireless) is the successor to 5G cellular technology. 6G networks will be able to use higher frequencies than 5G networks and provide substantially higher capacity and much lower latency. One of the goals of the 6G Internet will be to support one micro-second latency communications, representing 1,000 times faster -- or 1/1000th the latency -- than one millisecond throughput. The 6G technology market is expected to facilitate large improvements in the areas of imaging, presence technology and location awareness. Working in conjunction with AI, the computational infrastructure of 6G will be able to autonomously determine the best location for computing to occur; this includes decisions about data storage, processing and sharing.  Advantages of 6G over 5G 6G is expected to support 1 terabyte per second (Tbps) speeds. This level of capacity and latency will be unprecedented and wi...