What is Unit test, Integration Test, Smoke test, Regression Test?
- Unit test: Specify and test one point of the 
contract of single method of a class. This should have a very narrow and
 well defined scope. Complex dependencies and interactions to the 
outside world are stubbed or mocked.
- Integration test: Test the correct 
inter-operation of multiple subsystems. There is whole spectrum there, 
from testing integration between two classes, to testing integration 
with the production environment.
- Smoke test (aka Sanity check): A simple 
integration test where we just check that when the system under test is 
invoked it returns normally and does not blow up. It is an analogy with 
electronics, where the first test occurs when powering up a circuit: if 
it smokes, it's bad.
- Regression test: A test that was written when a 
bug was fixed. It ensure that this specific bug will not occur again. 
The full name is "non-regression test". It can also be a test made prior
 to changing an application to make sure the application provides the 
same outcome.
To this, I will add:
- Acceptance test: Test that a feature or use case
 is correctly implemented. It is similar to an integration test, but 
with a focus on the use case to provide rather than on the components 
involved.
- System test: Test that tests a system as a black
 box. Dependencies on other systems are often mocked or stubbed during 
the test (otherwise it would be more of an integration test).
- Pre-flight check: Tests that are repeated in a 
production-like environment, to alleviate the 'builds on my machine' 
syndrome. Often this is realized by doing an acceptance or smoke test in
 a production like environment\
 
 src : http://stackoverflow.com/questions/520064/what-is-unit-test-integration-test-smoke-test-regression-test
 
 
 
 
          
      
 
  
 
 
 
 
 
 
 
 
 
 
No comments:
Post a Comment