24

As an electronics engineer I always knew that smoke test originated from the moment you connect a new circuit to power for the first time and see the smoke doesn't come out. Wikipedia agrees with that

In Lessons Learned in Software Testing, Cem Kaner, James Bach, and Brett Pettichord provided the origin of the term: "The phrase smoke test comes from electronic hardware testing. You plug in a new board and turn on the power. If you see smoke coming from the board, turn off the power. You don't have to do any more testing."

Here's a link to the page in the book on Google books, and here is another related answer

Lately I have found another theory attributing the phrase to smoke testing of plumbing and sewage pipes smoke testing where

Plumbers usually would use smoke to test for leaks and cracks in pipe systems

Both makes sense and actually have a little bit different meaning and usage.

On top of that there are a lot of anecdotal answers and other, older, usage of "smoke test" for various purposes.

I couldn't find the first time the phrase was used, or a reference to that.

So which one is correct? Is it really the source of the phrase?

phoog
  • 1,096
  • 8
  • 14
Rsf
  • 2,844
  • 1
  • 12
  • 20
  • From your question, it sounds like there are multiple meanings for smoke test. Are you asking in particular about software smoke tests? – Dan Getz Oct 13 '22 at 12:26
  • 38
    This might be better on English -- to me this is as currently written this is "what is the etymology of the phrase 'smoke test'", which isn't really a question about a specific notable claim. – Dave Oct 13 '22 at 14:22
  • The jargon file (http://www.catb.org/jargon/html/S/smoke-test.html) also has a reference to another usage of the term by typographers. It doesn't reference the plumbing usage. Certainly doesn't mean that any of the separate usages are directly related. – BowlOfRed Oct 13 '22 at 20:17
  • For interests sake, in many councils in Australia (and I guess around the world), discharging Stormwater to Sewer is illegal. To check this they "smoke bomb" the sewer, and watch for smoke appearing from roof guttering. – Stax Oct 14 '22 at 00:05
  • Presumably several thousand years ago and in Latin. We plumbers aren't exactly known for our poetry, so to find it written somewhere it's probably long past being consequential. – Mazura Oct 14 '22 at 01:44
  • 4
    To follow up on the "this should be in English" comment, Skeptics is for things which seem unbelievable, which generally might matter. Knowing whether software "smoke testing" came from plumbing or transistors doesn't matter, and both seem perfectly believable. – Owen Reynolds Oct 14 '22 at 02:07
  • FWIW the "another theory attributing the phrase to smoke testing" references Wikipedia, which itself actually disambiguates smoke testing (mechanical)—i.e. plumbing—from smoke testing (electrical) and smoke testing (software) which both cite their origins as pertaining to electronics hardware... thus contradicting itself (as the cited source indicates separate origins and meanings for plumbing vs electronics & software). – Doktor J Oct 14 '22 at 16:20
  • Relevant question on EL&U: ["Alternative term for 'smoke test'"](https://english.stackexchange.com/q/397856/90826) (disclaimer: mine) – Mast Oct 15 '22 at 19:11
  • @OwenReynolds: i have laughingly suggested a "Who Cares?" Close reason, but there is no "it must matter" restriction on questions here. If you want one, propose it on Meta. – Oddthinking Nov 03 '22 at 16:04

3 Answers3

63

The Oxford English Dictionary (subscription requried) has this definition:

smoke test n. a method of testing the state of drains and pipes by means of smoke.

Their example is from the Encyclopaedia Britannica, 1886.

The ‘smoke test’..consists of filling the house-drain, soil-pipes, and waste-pipes with a dense and pungent smoke.

Of course this pre-dates electronics or software.

GEdgar
  • 1,547
  • 1
  • 11
  • 15
  • 17
    Why the downvote? This seems to disprove the claim that it originated with electronics. – Ray Butterworth Oct 13 '22 at 15:30
  • @RayButterworth I would suggest the downvote is from not actually answering the question. The information in the answer is fine but I would expect something saying that the term did not come from that and existed before electronics. While it is nice to have the information it should also include something stating what the actual answer is. – Joe W Oct 13 '22 at 16:04
  • 21
    @RayButterworth This doesn't actually disprove the claim that it originated with electronics. It's possible that someone originated the phrase in an electronics context without ever knowing about the plumbing context. In English it is difficult to tell if it's the same phrase being re-used or a new phrase that happens to have the same words. (And there's even more grey area of someone who maybe heard it in a plumbing context but forgot about it and thought they were originating a new phrase.) – user3067860 Oct 13 '22 at 17:05
  • 2
    A software "smoke test" is very different from a plumbing "smoke test", and likely has its origins in the early days of electronics and computing, where bad wiring would result in a spectacular failure, "letting the smoke out"; thus a smoke test is a quick test of the hardware to make sure the equipment doesn't experience such a failure. The point of a software smoke test is analogous, a quick test of all core functionality to make sure the software doesn't fail spectacularly. – Doktor J Oct 14 '22 at 16:12
  • @DoktorJ I think this specific term being invented completely independently in two engineering fields is very unlikely. Today's level of hyper-specialization did not exist 80 years ago, and the chances of there being no cross-pollination of terminology across disciplines are slim. – barbecue Oct 15 '22 at 18:46
  • @barbecue I don't have a citation handy, but I remember reading that the fields were separate enough that the world of computing only relatively recently (maybe 10 or 20 years ago) reinvented an algorithm that had been known since at least 1910s or 1920s, if not earlier, in the context of designing networks of municipal steam distribution pipes. – ssokolow Oct 15 '22 at 20:23
  • 1
    @barbecue If you have smoke, and it allows you to draw conclusions about something, you have a smoke test. That is, where there's smoke, there's the opportunity to coin the term "smoke test". See the printer's smoke test described by http://www.catb.org/jargon/html/S/smoke-test.html. I would be surprised if the term had *not* been invented independently multiple times, although as a comment has already noted, it would be practically impossible to prove that these two particular uses of the term were invented independently. – David K Oct 15 '22 at 23:50
  • @ssokolow The development of a specific algorithm is extremely different from the adoption of a slang term. – barbecue Oct 16 '22 at 03:25
  • @ssokolow A single algorithm is not the same category of thing as the name of a testing procedure. – Yakk Oct 16 '22 at 04:21
  • It is, however, a data point to show that, despite the fact that "Today's level of hyper-specialization did not exist 80 years ago", it was still possible for information to not make the transition from a mature, older discipline into the world of electronics and computers. – ssokolow Oct 16 '22 at 05:56
32

While the earliest examples of "smoke tests" in Google Books are plumbing-related (with some other assorted usages like smoke tests that determine how air circulates in machines), there are plenty of examples that show "smoke test" being used to refer to a method of finding electrical faults via circuits spectacularly failing (i.e. burning out and potentially producing smoke).

From The Electrical Journal (1910)

The author is aware that some station engineers believe in allowing earth leakages to develop to a more pronounced stage before adopting remedial measures, and one engineer at least has indeed advocated the "smoke" test method of localising faults but the author believes those who have any regard for the prestige of their undertaking will agree with him that, as the primary consideration is reliablity of supply, incipient mains faults should not be peritted to develop to such an extent as will interfere with the supply even to a single consumer.

[...] He thought the smoke test, burning out of the fault, was rather rough on the consumer.

Transactions (?1941):

In the "pioneer" days the operator simply watched the machine and when it began to smoke, he disconnected it from the supply or decreased its load. Even in relatively recent years the “smoke test” was used for determining the capacity of a machine. For instance, Mr. Lamme in the year 1892 used the smoke test for the purpose of determining the capacity of his rotary converter [...]

Frequency Response (?1956):

The final test is to put the servo together and give it what the electrical engineering profession calls the "smoke test.” That is, the power is turned on and the servo operated as a system for the first time

And Hearings (1963)

In a program as vast as Apollo there are many opportunities for mistakes. As Mr. Holmes said, a contractor or even a center can design an interface with a plug that contains seven wires; if you are not careful, another contractor who may be working for another center may design a mate to that plug with eight wires. Or, what's even more subtle, when they connect the wires into the back of the plug you may wind up with right wires going to the wrong terminals, and when these plugs are assembled you wind up doing what we call a smoke test the first time you hook the things together, electrical connections being such that things might burn out.

Because "smoke test" first showed up in a plumbing context, can we conclude that is the origin of the expression? Not really. The expression used in electrical engineering, however, is much closer in meaning to the one in software development, plus the fields were very closely related:

The electronic digital stored-program computer marks the convergence of two essentially independent lines of development tracing back to the early nineteenth-century, namely the design of mechanical calculators capable of automatic operation and the development of mathematical logic. In outline, at least, those stories are reasonably well known and need no repetition here. Viewing them as convergent rather than coincident emphasizes that the computer emerged as the joint product of electrical engineering and theoretical mathematics and was shared by those two groups of practitioners, whose expertise intersected in the machine and overlapped on the instruction set. — The Roots of Software Engineering

DavePhD
  • 103,432
  • 24
  • 436
  • 464
Laurel
  • 30,040
  • 9
  • 132
  • 118
  • 2
    Not to mention, a plumbing "smoke test" involves literally *putting smoke in*; and is usually done on a pre-existing system to find faults that need repair. Electronics/software smoke tests presuppose the inclusion of metaphorical "magic smoke" and are a basic test usually run at manufacture/implementation (respectively) time. – Doktor J Oct 14 '22 at 16:15
  • Any idea if chemistry- or mechanical-engineering-related usages might have preceded the 1910 citation? The modern idiom, for example, could have been appropriate if a nineteenth-century photographer was unsure about the whether flash powder ingredients were adequately dry. Mix the ingredients, and if the mixture remains stable until one is ready to take a picture, the ingredients were dry enough. If not, poof. – supercat Oct 14 '22 at 21:57
  • 1
    @supercat All the examples I found in Google Books from around or before that time were about blowing smoke into various places to test something or about testing smoke itself. Nothing related to photography. – Laurel Oct 14 '22 at 22:23
  • Thanks for that. When and where I learned the term "smoke test" meant putting on a heavy load to see if the device could handle it. But, I see a lot of people saying these days that it means to just switch on and see if it smokes. It seems I have some precedence since the 1910 article emphasizes heavy load not just switching it on. – Ponder Stibbons Oct 16 '22 at 00:33
7

Software/electronics smoke testing is a term which appeared independently from plumbing smoke testing. Instead, it seems to originate from the joke about the magic smoke, an imaginary substance which keeps electronic components working. Releasing magic smoke is therefore a synonym for irreversible failure, while holding it in is a sign of basic fitness or integrity.

According to several (1, 2) computer jargon glossaries, the joke was already well established in the Z80 era:

Once, while hacking on a dedicated Z80 system, I was testing code by blowing EPROMs and plugging them in the system, then seeing what happened. One time, I plugged one in backwards. I only discovered that after I realized that Intel didn't put power-on lights under the quartz windows on the tops of their EPROMs — the die was glowing white-hot. Amazingly, the EPROM worked fine after I erased it, filled it full of zeros, then erased it again. For all I know, it's still in service. Of course, this is because the magic smoke didn't get let out.

The EE origins of the software term are confirmed by numerous sources, e.g. this SO question, as well as sources you have cited yourself. None of them talk about plumbing.

As a side note, you don't do a smoke test in a way that produces actual smoke in modern EE. You set current limit in your power supply to what you expect your device to consume (plus some margin) and power it up. If the power supply protection is triggered, you know your device would likely have smoked, but you don't need to inhale the fumes and you can keep fixing the same device instead of using a new one for every test.

Dmitry Grigoryev
  • 2,427
  • 12
  • 21
  • 6
    To be fair, you'd be surprised at the number of ways a regulated amount of current can still let the smoke out – Doktor J Oct 14 '22 at 16:16
  • @DoktorJ With small microcontrollers I usually start with something like 20..50 mA. At 5V that's physically insufficient to smoke anything, and you'd be surprised how forgiving modern ICs are to overcurrent unless you let an overcurrent condition progress into an overtemperature condition. – Dmitry Grigoryev Oct 17 '22 at 07:13