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?

9
  • 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, 2022 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, 2022 at 14:22
  • The jargon file (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, 2022 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, 2022 at 0:05
  • 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. Oct 14, 2022 at 2:07

3 Answers 3

62

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.

10
  • 17
    Why the downvote? This seems to disprove the claim that it originated with electronics. Oct 13, 2022 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, 2022 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.) Oct 13, 2022 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, 2022 at 16:12
  • 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 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, 2022 at 23:50
31

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

4
  • 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, 2022 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, 2022 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, 2022 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. Oct 16, 2022 at 0: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.

2
  • 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, 2022 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. Oct 17, 2022 at 7:13

Not the answer you're looking for? Browse other questions tagged .