Smoke testing
46049
225915586
2008-07-16T00:16:45Z
Gordon Ecker
5460617
+split tag
{{Unreferenced-end|January 2008}}
{{split}}
'''Smoke testing''' is a term used in [[plumbing]], [[woodwind]] repair, [[electronics]], and [[computer software]] development. It refers to the first test made after repairs or first assembly to provide some assurance that the system under test will not catastrophically fail. After a ''smoke test'' proves that the pipes will not leak, the keys seal properly, the circuit will not burn, or the software will not crash outright, the assembly is ready for more stressful testing.
* In [[plumbing]], a ''smoke test'' forces actual smoke through newly plumbed pipes to find leaks, before water is allowed to flow through the pipes.
* In [[woodwind instrument]] repair, a smoke test involves plugging one end of an instrument and blowing smoke into the other to test for leaks. (This test is no longer in common use)
* In [[electronics]], a ''smoke test'' is the first time a circuit is attached to power, which will sometimes produce actual smoke if a design or wiring mistake has been made.
* In [[computer programming]] and [[software testing]], ''smoke testing'' is a preliminary to further testing, which should reveal simple failures severe enough to reject a prospective software release. In this case, the smoke is metaphorical.
==Smoke testing of plumbing and sewer systems==
Smoke testing in plumbing is used to find places where pipes will spill fluid. Smoke testing of sanitary sewer systems is primarily used to find places where ground water and storm runoff can enter the [[sanitary sewer]] system.
Non-toxic smoke is used to find leaks in plumbing and sanitary sewer systems. [[smoke bomb|Artificially created smoke]] is forced into the pipe or container. Plumes of smoke form where there are defects. It is particularly useful where completely sealing the system is not practical such as ventilated sanitary sewer systems.
When smoke testing a [[sanitary sewer]] system it is helpful to partially block off the section of sewer to be tested. This can be done by using a sand bag on the end of a rope. The sand bag is lowered into the manhole and swung into position to partially block lines. Completely blocking the line can cause water to back up and prevent smoke from escaping through defects. Smoke testing may not be done after rain or when ground water is unusually high as this may also prevent detection of defects.
Large downdraft fans, usually powered by gasoline engines, are placed on top of open [[manhole]]s at either end of the section to be tested. If possible all lines in the manholes except for the line between the manholes are partially blocked. Smoke is created using either a [[smoke bomb]] or liquid smoke. [[Smoke bomb]]s are lit and placed on a grate or in a holder on top of each fan or the liquid smoke is injected into the fan via a heating chamber. The fans create a pressure differential that forces the [[smoke bomb|artificial smoke]] into the sewer at a pressure just above atmospheric. With properly installed plumbing, the [[Plumbing trap|traps]] will prevent the smoke from entering the house and redirect it out the plumbing vents.
Defective plumbing systems or dry [[Plumbing trap|traps]] will allow smoke to enter the inside of the house.
The area around the section being tested is searched for smoke plumes. Plumes coming from plumbing vents or the interface between the fan shroud and manhole rim are normal; however, smoke plumes outside of the manhole rim are not. Plumes are marked, usually with flags, and defects are noted using measurements from stationary landmarks like the corners of houses. The plumes or markers may also be photographed.
==Testing in woodwind instrument repair==
A smoke test involves plugging one end of a [[woodwind instrument]] and blowing smoke (usually tobacco smoke) into the other. Escaping smoke reveals improperly seated pads and faulty joints (i.e. leaks). After this test, the instrument is cleaned to remove nicotine and other deposits left by the smoke. Due to tobacco smoke being used, this test may be hazardous to the health of the technician and the player, and may compromise the quality of the instrument. Described in a repair manual written in the 1930s, it is considered obsolete, and is no longer used by reputable technicians.
== In automotive repair ==
In the same way that plumbing and woodwind instruments are tested, the [[vacuum]] systems of automobiles may be tested in order to locate difficult-to-find vacuum leaks. Artificial smoke is deliberately introduced into the system-under-test under slight pressure and any leaks are indicated by the escaping smoke.
==Testing in electronics and electrical engineering==
The term ''smoke test'' or ''power on test'' is used in [[electronics]] and [[electrical engineering]] to refer to the first time a circuit under development is attached to power.
An electrical ''smoke test'' may be done before all the work is complete, just to ensure that there are no major flaws that would make further work pointless. For power above about 30 [[watt]]s, circuit failure at first power-on sometimes literally produces smoke, most often from burning [[resistor]]s, which produce a unique smell familiar to many technicians. For certain circuits, overheating and burning due to circuitry that is still not properly operating can be avoided by slowly turning up the input voltage to the unit under test by using a [[Variac]] and watching the [[electric current]] consumption. As a poor-man's Variac, a properly-sized [[incandescent light bulb]] in series with the power feed can provide a similar benefit: if the unit under test has a short circuit or other overload, the bulb will light up and provide a high resistance, limiting or preventing further damage to the unit being tested.
Overloaded integrated circuits typically produce "blue smoke" (or [[magic smoke]]). "Blue smoke" is the subject of jokes among technicians who refer to it as if it were a [[genie]] in the circuit: ''It's the blue smoke that makes it work—let out the blue smoke and it won't do anything.''
==Smoke testing in software development==
{{portal|Software Testing}}
Smoke testing is done by developers before the build is released or by testers before accepting a build for further testing.
In [[software engineering]], a ''smoke test'' generally consists of a collection of tests that can be applied to a newly created or repaired [[computer program]]. Sometimes the tests are performed by the automated system that builds the final software. In this sense a smoke test is the process of validating code changes before the changes are checked into the larger product’s official [[source code]] collection. Next after [[code review]]s, ''smoke testing'' is the most cost effective method for identifying and fixing defects in software; some even believe that it is the most effective of all. {{Fact|date=March 2008}}
In [[software testing]], a ''smoke test'' is a collection of written tests that are performed on a system prior to being accepted for further testing. This is also known as a [[build verification test]]. This is a "shallow and wide" approach to the application. The tester "touches" all areas of the application without getting too deep, looking for answers to basic questions like, "Can I launch the test item at all?", "Does it open to a window?", "Do the buttons on the window do things?". There is no need to get down to field validation or business flows. If you get a "No" answer to basic questions like these, then the application is so badly broken, there's effectively nothing there to allow further testing. These written tests can either be performed manually or using an automated tool. When automated tools are used, the tests are often initiated by the same process that generates the build itself.
This is sometimes referred to as 'rattle' testing - as in 'if I shake it does it rattle?'.
==See also==
* [[Sanity test]]
[[Category:Tests]]
[[Category:Software testing]]
[[Category:Smoke]]
[[de:Smoke testing]]