Sanity Testing in Manual QA
It ensures that core functionalities are still working properly and that the software has not been broken by recent changes.
To check whether the recent bug fixes have resolved the issues without affecting other parts of the system.
Check Core Functionality
Ensure that the critical functions of the application are still working after a change.
Save Time and Resources
Sanity testing is faster and less exhaustive compared to full regression testing. It helps decide whether to proceed with more comprehensive testing or release the build.
Quick Verification
Quickly verify that the build is stable enough for more detailed testing, like regression testing.
When a bug or issue is fixed, sanity testing is performed to confirm the fix works and hasn't introduced new issues.
During Patch Updates
When the system is patched or updated with minor changes, sanity testing is conducted to ensure the patch is functional.
Before Full Testing
If a new build or version is released, sanity testing can be a quick check to see if the application is stable enough for more extensive testing like functional or regression testing.
Sanity Testing
Typically focuses on checking a specific functionality or feature that has undergone changes or bug fixes. It is more localized and less exhaustive.
Smoke Testing
Involves checking the basic functionality of the entire application to ensure that the application is stable enough for more detailed testing. It’s often the first step in testing the build.
Example: Smoke testing might check whether the application opens and basic features work, while sanity testing checks whether a specific feature, like the checkout process in an e-commerce website, works after a bug fix.
Review the details of the recent change, bug fix, or patch to understand which features are affected.
Select Areas to Test
Focus on the areas or modules that have been modified or impacted by the change.
Create Straightforward Test Cases
Create straightforward test cases that validate the core functionality of the modified parts of the application.
Execute Test Cases
Run the test cases manually to verify that the impacted functionality works as expected.
Evaluate Results
If the tests pass successfully, the application can proceed to more extensive testing or be considered stable for release. If it fails, report the issues and fix them before proceeding further.
Report Results
Document and report the findings, including any issues found during sanity testing.
Sanity testing focuses on specific areas, making it quicker to execute compared to full regression testing or exhaustive functional testing.
Detects Critical Issues Early
By verifying that core functions work, sanity testing helps identify whether basic stability has been maintained after changes, preventing larger issues down the line.
Helps in Decision Making
It helps determine whether the build is stable enough to proceed with more comprehensive testing or whether it needs further work.
Reduces Testing Time
When a bug is fixed or a small change is made, sanity testing ensures the fix is effective, thus reducing the overall testing time required for verification.
Since sanity testing focuses on specific areas impacted by recent changes, it may miss bugs or issues in other parts of the application.
Requires Clear Understanding
Testers must fully understand the changes made to the software to know which areas to focus on during testing.
Might Overlook Edge Cases
Sanity testing typically does not cover edge cases, rare scenarios, or deep system interactions.
If only a small change or bug fix has been implemented, sanity testing verifies that this change hasn’t impacted other parts of the system.
Rapid Validation is Needed
In cases where time is limited, sanity testing allows testers to quickly confirm whether a build is stable enough for further testing.
Prior to Full Regression Testing
When a new build is deployed, sanity testing can ensure that the system is stable enough before running more extensive tests.
JIRA: For tracking bugs and reporting issues during sanity testing.
TestRail: For creating and managing test cases and tracking results.
Bugzilla: For logging defects that are found during sanity testing.
Trello or Asana: For managing tasks and organizing testing efforts.
Key Objectives of Sanity Testing
Validate Bug FixesTo check whether the recent bug fixes have resolved the issues without affecting other parts of the system.
Check Core Functionality
Ensure that the critical functions of the application are still working after a change.
Save Time and Resources
Sanity testing is faster and less exhaustive compared to full regression testing. It helps decide whether to proceed with more comprehensive testing or release the build.
Quick Verification
Quickly verify that the build is stable enough for more detailed testing, like regression testing.
When is Sanity Testing Performed?
After Bug FixesWhen a bug or issue is fixed, sanity testing is performed to confirm the fix works and hasn't introduced new issues.
During Patch Updates
When the system is patched or updated with minor changes, sanity testing is conducted to ensure the patch is functional.
Before Full Testing
If a new build or version is released, sanity testing can be a quick check to see if the application is stable enough for more extensive testing like functional or regression testing.
Sanity Testing vs. Smoke Testing
Though similar, sanity testing and smoke testing are different in purpose and scope:Sanity Testing
Typically focuses on checking a specific functionality or feature that has undergone changes or bug fixes. It is more localized and less exhaustive.
Smoke Testing
Involves checking the basic functionality of the entire application to ensure that the application is stable enough for more detailed testing. It’s often the first step in testing the build.
Example: Smoke testing might check whether the application opens and basic features work, while sanity testing checks whether a specific feature, like the checkout process in an e-commerce website, works after a bug fix.
Process of Sanity Testing
Understand the ChangesReview the details of the recent change, bug fix, or patch to understand which features are affected.
Select Areas to Test
Focus on the areas or modules that have been modified or impacted by the change.
Create Straightforward Test Cases
Create straightforward test cases that validate the core functionality of the modified parts of the application.
Execute Test Cases
Run the test cases manually to verify that the impacted functionality works as expected.
Evaluate Results
If the tests pass successfully, the application can proceed to more extensive testing or be considered stable for release. If it fails, report the issues and fix them before proceeding further.
Report Results
Document and report the findings, including any issues found during sanity testing.
Advantages of Sanity Testing
Time-EfficientSanity testing focuses on specific areas, making it quicker to execute compared to full regression testing or exhaustive functional testing.
Detects Critical Issues Early
By verifying that core functions work, sanity testing helps identify whether basic stability has been maintained after changes, preventing larger issues down the line.
Helps in Decision Making
It helps determine whether the build is stable enough to proceed with more comprehensive testing or whether it needs further work.
Reduces Testing Time
When a bug is fixed or a small change is made, sanity testing ensures the fix is effective, thus reducing the overall testing time required for verification.
Challenges of Sanity Testing
Limited CoverageSince sanity testing focuses on specific areas impacted by recent changes, it may miss bugs or issues in other parts of the application.
Requires Clear Understanding
Testers must fully understand the changes made to the software to know which areas to focus on during testing.
Might Overlook Edge Cases
Sanity testing typically does not cover edge cases, rare scenarios, or deep system interactions.
When to Use Sanity Testing
Minor Changes are MadeIf only a small change or bug fix has been implemented, sanity testing verifies that this change hasn’t impacted other parts of the system.
Rapid Validation is Needed
In cases where time is limited, sanity testing allows testers to quickly confirm whether a build is stable enough for further testing.
Prior to Full Regression Testing
When a new build is deployed, sanity testing can ensure that the system is stable enough before running more extensive tests.
Common Tools Used in Sanity Testing
While sanity testing is typically done manually, certain tools can aid in tracking and reporting defects found during the process:JIRA: For tracking bugs and reporting issues during sanity testing.
TestRail: For creating and managing test cases and tracking results.
Bugzilla: For logging defects that are found during sanity testing.
Trello or Asana: For managing tasks and organizing testing efforts.