Differences
1) Smoke Testing vs. Sanity Testing:
Smoke Testing:
Purpose: Smoke testing is performed to verify that the critical functionalities of the software application are working correctly and stable enough for further testing.
Scope: It is a shallow and broad test that covers the most critical features of the application.
Timing: Typically conducted after a new build is deployed to ensure basic functionality before further testing.
Depth: It is not exhaustive and does not delve into detailed functionality.
Outcome: If the smoke test fails, it indicates major issues that need to be addressed before further testing.
Sanity Testing:
Purpose: Sanity testing is performed to verify that the specific functionalities or areas of the software have been fixed or enhanced as per the requirements.
Scope: It is a narrow and focused test that targets specific areas or functionalities of the application.
Timing: Usually conducted after a specific change or fix is made to ensure that the related functionalities are still working as expected.
Depth: It is more detailed than smoke testing and may involve targeted test cases.
Outcome: If the sanity test fails, it indicates that the recent changes or fixes have caused regressions or unintended side effects.
2) Validation vs. Verification:
Validation:
Definition: Validation ensures that the software product meets the user's requirements and intended use.
Focus: It focuses on whether the right product is being built according to user needs and expectations.
Activities: Validation involves activities like user acceptance testing (UAT), beta testing, and demonstration to stakeholders.
Question: "Are we building the right product?"
Verification:
Definition: Verification ensures that the software product is being built correctly according to the specifications and requirements.
Focus: It focuses on whether the product is meeting the specified requirements and adhering to the design and development standards.
Activities: Verification involves activities like reviews, inspections, walkthroughs, and testing (e.g., unit testing, integration testing).
Question: "Are we building the product right?"
In summary, smoke testing and sanity testing serve different purposes in the testing process, with smoke testing verifying basic functionality and sanity testing targeting specific areas or changes. Similarly, validation focuses on ensuring that the right product is being built, while verification focuses on ensuring that the product is being built correctly according to specifications.