After a few years in software testing journey I have faced several testing types but when deal with manager's question like "Do we have to do Smoke/Sanity/Regression/Re-Test to ensure quality of application?" I still have some confusion.
Two type that I very clear is Re-test: mean that when bugs are fixed we do this type to ensure that bugs do not happened any more and Regression test: I test (if can) all previous features that have worked very well before to ensure that bugs fixed/new deploy feature do not affect those features.
For Smoke test this type need to run before we start any testing with build deployment and this test is just a "surface" level.
But how about Sanity test? I know that this type is for "check the new functionality / bugs have been fixed" or "to verify the "rationality" of the system in order to proceed with more rigorous testing" so what is its difference with Re-test?
And as my knowledge we should execute those tests in order like: Smoke -> Sanity -> Re-test -> Regression, is it right? Because I see in this article it says- "Re-testing is done before we start sanity testing".