Smoke Testing:
In software industry, smoke testing is a wide and shallow approach whereby all areas of the application are tested, without getting into too deep. Smoke testing originated in the hardware testing practice of turning on a new piece of hardware for the first time and considering it a success if it does not catch fire and smoke. When a build is received, a smoke test is run to ascertain if the build is stable and it can be considered for further testing. Smoke testing is done by Developer or White box engineers.
Sanity Testing:
A sanity test is a narrow regression test that focuses on one or a few areas of functionality. Sanity testing is usually narrow and deep. Testing few functions/parameters and checking all their main features. In which one can perform testing on an overall application (all features) initially to check whether the application is proper in terms of availability and Usability. Sanity testing is done by Test engineer.
Soak Testing:
Soak testing involves testing a system with a significant load extended over a significant period of time, to discover how the system behaves under sustained use. For example, in software testing, a system may behave exactly as expected when tested for 1 hour. However, when it is tested for 3 hours, problems such as memory leaks cause the system to fail or behave randomly.
Adhoc Testing:
Adhoc testing is a commonly used term for software testing performed without planning and documentation. The tests are intended to be run only once, unless a defect is discovered.
Exploratory Testing:
Exploratory testing is a method of manual testing that is described as simultaneous learning, design and execution.
Exhaustive Testing:
Testing which covers all combination's of input values and preconditions for an element of the software under test.