Mathematical A sanity test can refer to various
orders of magnitude and other simple
rule-of-thumb devices applied to cross-check
mathematical calculations. For example: • If one were to attempt to
square 738 and calculated 54,464, a quick sanity check could show that this result cannot be true. Consider that yet Since squaring positive integers preserves their
inequality, the result cannot be true, and so the calculated result is incorrect. The correct answer, is more than 10 times higher than 54,464. • In multiplication, is not 142,135 since 918 is divisible by three but 142,135 is not (digits add up to 16, not a
multiple of three). Also, the product must end in the same digit as the product of end-digits: but 142,135 does not end in "0" like "40", while the correct answer does: An even quicker check is that the product of even and odd numbers is even, whereas 142,135 is odd.
Physical •
Dimensional analysis may be used as a sanity check of physical equations: the two sides of any equation must be commensurable or have the same dimensions. A person who has calculated the
power output of a
car to be 700
kJ may have omitted a factor, since the unit
joules is a measure of
energy, not power (energy per unit time). • When determining
physical properties, comparing to known or similar substances will often yield insight on whether the result is reasonable. For instance, most metals sink in water, so the
density of most metals should be greater than
that of water (~). •
Fermi estimates will often provide insight on the order of magnitude of an expected value.
Software development In software development, a sanity test (a form of
software testing which offers "quick, broad, and shallow testing") evaluates the result of a subset of application functionality to determine whether it is possible and reasonable to proceed with further testing of the entire application. Sanity tests may sometimes be used interchangeably with
smoke tests insofar as both terms denote tests which determine whether it is
possible and
reasonable to continue testing further. On the other hand, a distinction is sometimes made that a smoke test is a non-exhaustive test that ascertains whether the most crucial functions of a programme work before proceeding with further testing whereas a sanity test refers to whether specific functionality such as a particular bug fix works as expected without testing the wider functionality of the software. In other words, a sanity test determines whether the intended result of a code change works correctly while a smoke test ensures that nothing else important was broken in the process. Sanity testing and smoke testing avoid wasting time and effort by quickly determining whether an application is too flawed to merit more rigorous
QA testing, but needs more developer
debugging. Groups of sanity tests are often bundled together for automated
unit testing of functions, libraries, or applications prior to
merging development code into a testing or
trunk version control
branch, for
automated building, or for
continuous integration and
continuous deployment. Another common usage of
sanity test is to denote checks which are performed programme code, usually on arguments to functions or returns therefrom, to see if the answers can be assumed to be correct. The more complicated the routine, the more important that its response be checked. The trivial case is checking to see whether the
return value of a function indicated success or failure, and to therefore cease further processing upon failure. This return value is actually often itself the result of a sanity check. For example, if the function attempted to open, write to, and close a file, a sanity check may be used to ensure that it did not fail on any of these actions—which is a sanity check often ignored by programmers. These kinds of sanity checks may be used during development for debugging purposes and also to aid in
troubleshooting software
runtime errors. Sanity checks are also performed upon installation of
stable, production software code into a new computing
environment to ensure that all
dependencies are met, such as a compatible
operating system and
link libraries. When a computing environment has passed all the sanity checks, it is considered a sane environment for the installation programme to proceed with reasonable expectation of success. A
"Hello, World!" program is often used as a sanity test for a
development environment similarly. Rather than a complicated script running a set of unit tests, if this simple programme fails to compile or execute, it proves that the supporting environment likely has a configuration problem that will prevent
any code from compiling or executing. But if "Hello world" executes, then any problems experienced with other programmes likely can be attributed to errors in that application's code rather than the environment. The
Association for Computing Machinery, and software projects such as
Android,
MediaWiki and
Twitter, discourage use of the phrase
sanity check in favour of other terms such as
confidence test,
coherence check, or simply
test, as part of a wider attempt to avoid
ableist language and increase
inclusivity.
Vibe coding Sanity checking is often used in
vibe coding, especially between different AI models (although two separate instances of the same model can work in some cases), in order to have a different AI model cover any blind spots or check for any potential errors or faulty logic using a third-party source. This can also be done by human
debuggers as with human-written code. ==See also==