27

The phrase "sanity check" is ableist language as it implies that there is something wrong with people who have mental illnesses and the word "sanity" has been used to discriminate against such people. Therefore, it should should be avoided. What is a better alternative in the context of software?

Example usage:

_: if this is not what it should be, we have memory corruption (a fatal error) and should terminate the program.

8
  • 9
    It would only be "ableist" (IMO an awful word) if it referred to a person. In this context it only means that an idea/procedure/etc "makes sense", i.e. conforms to a norm or can be expected to work as required. If the PC crowd will not allow any use of the word "sanity" then I fear for my own.
    – Jim Mack
    Oct 24, 2015 at 1:31
  • 3
    In the areas where I worked last, this was referred to as a "basic function test" -- BFT.
    – Hot Licks
    Oct 24, 2015 at 3:12
  • 1
    Context of what you want is slim... validation?
    – stevesliva
    Oct 24, 2015 at 3:48
  • 6
    As far as I understand, it's not ableist to imply that there's something wrong with having a mental illness. There's a reason they're called "illnesses" and not "pleasant interesting mental variations." One common criterion for something to be classified as a disorder in the DSM-IV-TR is that it causes "clinically significant distress or impairment".
    – herisson
    Oct 24, 2015 at 17:17
  • 6
    It's not so much the discrimination as: if you agree that mental illness is a serious condition, why would you throw about the term like this if it's easily avoidable. I'd say it's not even the discrimination that is the issue here, just common decency.
    – Alper
    Sep 14, 2017 at 9:29

11 Answers 11

20

Consider, coherence check and confidence check.

coherence: systematic or logical connection or consistency M-W

consistency: agreement or harmony of parts or features to one another or a whole. M-W

confidence: faith or belief that one will act in a right, proper, or effective way M-W

2
  • 3
    Nope. Consistency checking is far more than sanity checking. In fact, consistency checking can be quite complex. What is called a sanity check is a quick-and-dirty, superficial check.
    – Drew
    Oct 24, 2015 at 8:24
  • 2
    @Drew - Actually, if you read the example in the original question (which is misapplying "sanity check"), "coherence check" or "consistency check" fits pretty well. And "confidence check" comes quite close to "sanity check" (though I see that was a late edit).
    – Hot Licks
    Oct 26, 2015 at 12:12
12

I'll suggest a 'soundness' check, or 'soundness scan' if the check is superficial:

soundness, noun
The condition of being free from defects or flaws.

(soundness. (n.d.) American Heritage® Dictionary of the English Language, Fifth Edition. (2011). Retrieved October 24 2015 from http://www.thefreedictionary.com/soundness.)

1
  • Being of sound body and mind...
    – Drew
    May 7, 2021 at 2:25
9

Wikipedia offers the term smoke test as synonymous with sanity check for software testing.

For the record, I think sanity check is more recognizable and an acceptable phrase.

4
  • 5
    Basically, a "smoke test" is just "Turn it on and see if it smokes." It doesn't involve any sort of planned testing, and may test very little of the item under test. A "sanity test", on the other hand, is a planned set of test operations which verifies the basic functions of the item being tested, without pretending to be exhaustive in nature.
    – Hot Licks
    Oct 24, 2015 at 3:11
  • Sounds anti-smoker to me... ;-)
    – Drew
    May 7, 2021 at 2:26
  • Smoke test is widely used for basic testing (most software doesn't literally smoke even if it's catastrophically bad). It definitely only refers to a quick and simple test, which the example in the OP isn't, but it depends what you mean by "sanity check".
    – Stuart F
    Jul 25, 2022 at 22:08
  • At least in web development, smoke test means a different and fairly specific thing. A smoke test is when you do some very lightweight testing on the application as a whole (e.g. load the main page and check it doesn't return an error). A sanity check is a typically very low level, specific check for something that by all rights should never fail, but you check just in case before doing more complicated things where the failure could cause a mess.
    – Tgr
    Jan 18 at 4:56
8

'Sense check' is what I use these days for an informal 'second eye' over some documents for a 'light proofing' for a colleague.

1
  • "sense check" is my favorite option so far!
    – octern
    Mar 28, 2019 at 23:17
6

I don't think "sanity check" is ableist, really, because it's using a different meaning of the word "sanity" (which is a positive term to begin with).

If I run a "sanity check" to make sure the internal state makes sense, I'm not saying that the program might have severe mental illness: I'm saying I want to make sure everything is internally consistent before proceeding further.

That's a separate meaning of "sanity": that everything fits together and nothing is obviously wrong. It was actually the more common meaning in the original Latin, with the idiom for "not having a severe mental illness" being instead compos mentis (literally "having control over one's own mind"). Saying that a person was sānus or had sānitās generally meant that they were in good physical health. Modern usage has shifted significantly, but this older meaning is still around to a lesser extent.

So I don't think that using "sanity" to mean "consistent and with nothing obviously wrong" with respect to a computer program is ableist language. To use an analogy, if I called someone with a disability an "invalid", that would be wrong. But saying that text input in a numeric field is "invalid" is a separate usage of the word, referring to an objective fact, and has been used for decades with no offense intended. In this case you're not even using the negative term "insane". And none of the lists of ableist terms I've found (e.g. here, here, and here) have included "sane" or "sanity".

In short: I don't think there's anything particularly wrong with the phrase "sanity check". It has a long history of technical use and I have never seen the phrase called offensive anywhere else. Consistency check might be the best alternative, or if you want to be pretentious and avoid English connotations Probātiō Sānitātis, but neither is ideal: the sort of "consistency check" run by fsck is a different sort of beast, and pretty much nobody is going to recognize the Latin.

When it comes down to it, language is meant to facilitate clear and meaningful communication. If new terminology gets in the way of that goal, it's not performing its proper function—so you might want to do a sanity check on the system before trying to institute a new phrase universally. ;)

2
  • 1
    This is the correct answer IMO. Using correct terminology is very important, as communicating clearly is very difficult. Throwing out standard industry terms, and replacing them with non standardised terms, is a recipe for miscommunication, and requirements being incorrectly understood. Context is key, and what might be offensive in one context, is benign and perfectly acceptable in another context. Nov 6, 2019 at 14:01
  • +1 for taking the problem framework - and turning it back on itself to illustrate the usefulness of the non-problem you might want to do a sanity check on the system before trying to institute a new phrase
    – qneill
    Jul 25, 2022 at 21:10
5

Perhaps you would prefer "health" to "sanity"?

Would "health check" pass your PC test of expressions that "should be avoided" "in the contest [sic] of software"? If not, maybe try the usual "quality control" or "quality assurance" testing.


[Sheesh. This is truly ridiculous. Health is a positive, and so is sanity. Anyone offended by use of the word sanity should ... (no, I didn't say have their head examined). Oh, and by the way, you won't find "sane" or "sanity" on the ableist language page you cited.]

4
  • 3
    Interestingly, in terms of etymology "sane" means the same thing as "healthy": see Latin mens sana in corpora sano "a healthy mind in a healthy body"
    – herisson
    Oct 24, 2015 at 17:13
  • @sumelic: Absolutely. (And sain in French.)
    – Drew
    Oct 24, 2015 at 18:44
  • 4
    I do apologise for the necro, but the wikipedia article literally contains a sub-heading "Mental ableism" with "Main article: sanism". So, yes, you will absolutely find it listed on that page.
    – NthPortal
    Apr 14, 2021 at 15:05
  • Someone care to explain the downvote?
    – Drew
    Apr 18 at 16:47
4

"Smell check" is equally casual, and similarly carries no implication of thoroughness. It also sounds a lot like it, which may help with understanding.

As an added bonus, you can finally use the pig nose Unicode in your error messages. 🐽

2
  • 4
    If the OP has a problem with sanity check as being "ableist", I doubt he'd like an answer which discriminates against people with anosmia.
    – AndyT
    Oct 4, 2018 at 14:09
  • 1
    Maybe, though I don't know if this stigmatizes people who can't smell the way that "sanity check" does. It's not the person's nose that's "good" or "bad" but the thing emitting the odor.
    – Jacob Rose
    Jan 2, 2019 at 20:29
3

Assertion.

Per Wikipedia: In computer programming, an assertion is a statement that a predicate (Boolean-valued function, a true–false expression) is expected to always be true at that point in the code.

2
  • 2
    An "assertion" is a single test step. A "sanity test" is a group of assertions which together prove the basic functions of the item under test.
    – Hot Licks
    Oct 24, 2015 at 3:35
  • +1 for Assertion. This is absolutely the most fitting word to describe the OP's example. Oct 25, 2015 at 6:01
3

How about spot check:

  1. (noun) A cursory inspection or examination or the inspection or examination of a sample of something.
  2. (verb) To inspect or examine briefly, or by sampling.
1
  • Spot check has the connotation of a random or occasional check: as the definition says "by sampling" or similar (e.g. randomly stopping the production line, or picking a person at random). It doesn't work as well for a quick check you do every time.
    – Stuart F
    Jul 25, 2022 at 22:09
3

Reasonableness check seems to capture the meaning even more directly than sanity check. Or, to be even more explicit: check for reasonableness. It may be good to use for audiences more general than just programming (e.g. in science). I like it because it's exactly what you're testing for: is this result reasonable?

Most of the alternatives suggested in other answers have widely understood meanings that are different. Summarizing some of those:

  • Smell check. The word 'smell' often refers to issues in source code quality.
  • Assertion. These have a more specific meaning in software.
  • Smoke check. These are tests to see whether software breaks or crashes outright.
  • Soundness check. I haven't heard this one. It seems fine but vague.
  • Spot check. This has a widely accepted vernacular meaning.
  • Sense check. I like this one, but it seems less direct than reasonableness.
  • Consistency check. I like this too, but it doesn't seem to capture the intent.
  • Coherence check, or confidence check. Suggested by @Elian. These again seem great but not to capture the intent directly.
0

There's always the old canary test referring to the canary in a coal mine, which served as an early indicator of danger or failure.

Unfortunately the somewhat orthogonal meaning of "Canary Testing" was adopted for the act of rolling out release candidate software to only a few users, where impact from problems would be minimal.

1
  • That has a very different meaning. Canary testing is testing of the entire application with real users.
    – Tgr
    Jan 18 at 5:02

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

Not the answer you're looking for? Browse other questions tagged or ask your own question.