I always struggle a bit to find the line between Sanity testing and a Partial Regression test suite. If I want to cover critical (core) application functionality, would that be considered sanity or regression? I just read a bunch of articles but each said something slightly different, I have found companies not fully understand the difference much either. Ha! Thanks!
According to this, it sounds like it would be Regression (though a Partial or Critical Functionality Regression):https://www.asktester.com/smoke-test-vs-sanity-test-vs-retest-vs-regression-test/
Does that sound about right?
hmmm I would say this is smoke test when you are checking critical part of functionality.
Is there any kind of industry standard definition of what regression testing is? It seems every damned cat in the herd has a different idea of what it is (and clearly, I’m one of those cats).
Are there any standards for those terms? - try google smoke sanity regression tests - I believe they are, but first of all, use your common sense. I believe there are other areas where you can put your focus rather than require detailed definitoin of those terms. If you switch the job I believe you will know in your first day what are their definition (or scope) of smoke and sanity tests, but principles are very similar everywhere.
My understanding of those terms (and I believe this is true when I am typing this):
Regression testing is in simply words: “test everything”. For example this might be in case that you have some known specifications, but you were not testing software for long time, and noone can tell you in what shape it is today. The only way to check this is to “test everything”. When team added new risky feature, but integration tests were not done - what’s the impact of this feature on
Smoke testing - historically this came from testing of electronic circuits in its final shape - so it was checking if all critical parts are working (no smoke seen, that was a good sign, “magic smoke” ). In software testing this type of testing is to check crucial or the most important functions of software.
Sanity test - it is very simle and lightweight check if everything is working (shorter version of smoke test?), usually executed when you would like to gain confidence in produced build. This can be run for example after fixing a bug.
Of course I might be wrong…
Historically, I’ve only used “smoke test” when we’ve been in panic mode, had to retrofit a new build after finding a bug late in testing and against a set release date that was rapidly approaching (like, in the next 30 minutes or so), and it literally is a case of “Will it run without catching fire?”
A “sanity test” can take place anywhere in the development cycle and is intended to see if a proposed change is sensible. It may even refer to something where the devs just want to know if their latest change actually works in an environment other than their own. It almost always never represents a state of the product that’s anywhere near ready for release.
Right?! I get caught up in what it should be but at the end of the day it really doesn’t matter.