Sanity Testing | Software Testing
Sanity testing is a type of software testing that aims to quickly evaluate whether the basic functionality of a new software build is working correctly or not. It is usually performed on builds that are in the initial stages of development, before the full regression testing is performed. Sanity testing is limited in scope and typically focuses on critical functionality and does not aim to uncover every possible error or bug in the system. It is a quick and lightweight way to ensure that the software is functioning as expected before further testing is conducted.
Sanity Testing is a subset of regression testing. Sanity testing is performed to ensure that the code changes that are made are working as properly. Sanity testing is a stoppage to check whether testing for the build can proceed or not. The focus of the team during sanity testing process is to validate the functionality of the application and not detailed testing. Sanity testing is generally performed on build where the production deployment is required immediately like a critical bug fix.
Functionality of Sanity Testing:
The functionality of sanity testing is to verify that the critical functionality of a software build is working correctly, without performing a comprehensive analysis of the entire system. Sanity testing typically involves testing the most important and frequently used features of the software to ensure that they are functioning as expected. The purpose of sanity testing is to quickly identify any major issues that would prevent the software from being used, rather than to uncover every possible error or bug in the system. Sanity testing may also include verifying the user interface, data input and output, and other key elements of the software. The scope of sanity testing is limited, and it is typically performed on builds that are in the early stages of development before full regression testing is conducted.
The major functionality of sanity testing is to determine that the changes or the proposed functionality are working as expected. If the sanity test fails, software product is rejected by the testing team to save time and money. It is performed only after the software product has passed the smoke test and Quality Assurance team has accepted for further testing.
Example of Sanity Testing:
In an e-commerce project, main modules are login page, home page, user profile page, user registration etc. There is a defect in the login page when the password field accepts less than four alpha numeric characters and the requirement mentions that this password field should not be below eight characters. Hence, the defect is reported by the testing team to the development team to resolve it. Then the development team fixes the reported defect and sends it to the testing team for clearance. Then the testing team checks whether the changes done are working fine or not. It is also determined if it does have an impact on other related functionalities. Now there is a functionality to update the password in the user profile page. As part of the sanity testing, login page is validated as well as the profile page to ensure that the checks are working fine at both the places.
Features of Sanity Testing:
- Subset of Regression Testing:
Sanity testing is a subset of regression testing and focuses on the smaller section of the application.
Most of the times sanity testing is not scripted.
- Not documented:
Usually sanity testing is undocumented.
- Narrow and deep:
Sanity testing is narrow and deep approach of testing where limited functionalities are covered deeply.
- Performed by testers:
Sanity testing is normally performed by testers.
Advantages of Sanity Testing:
- Sanity testing helps in quickly identify defects in the core functionality.
- It can be carried out in lesser time as no documentation is required for sanity testing.
- If the defects are found during sanity testing, project is rejected that is helpful in saving time for execution of regression tests.
- This testing technique is not so expensive when compared to another types of testing.
- It helps to identify the dependent missing objects.
- It is used to verify a small functionality of the system application whether it is still working or not even after a small change.
- It helps in the scenario when the time for testing of the product is limited or having less time to complete the test.
- Quick Feedback: Sanity testing is a fast process that provides quick feedback on the overall functionality of a software build, allowing teams to quickly identify and address any critical issues.
- Cost-effective: Sanity testing is less time-consuming and less expensive than other types of testing, making it a cost-effective solution for evaluating new builds.
- Early Detection of Issues: Sanity testing helps to identify major issues early in the development cycle, which can help to avoid costly rework later on.
- Increased Confidence: Sanity testing helps to increase confidence in the quality of the software, by ensuring that the most critical functions are working as expected before more comprehensive testing is performed.
- Improved Productivity: Sanity testing enables developers and testers to focus on more complex testing scenarios, improving overall productivity and reducing the time required for full regression testing.
Disadvantages of Sanity Testing:
- It focuses only on the functions and commands of the system application.
- It is not possible to cover all the test cases in test scenarios.
- It covers only few functionalities in the system application. Issues in the unchecked functionalities can’t be recovered.
- Sanity testing is usually unscripted. Hence, future references are not available.
- It doesn’t cover the design structure level and hence it will be difficult for development team to identify and fix the issues.
- Limited Scope: The limited scope of sanity testing means that it may not uncover all potential issues or bugs in the software. This means that more comprehensive testing will be required to thoroughly validate the software’s functionality.
- Incomplete Testing: Sanity testing is only a preliminary evaluation of the software, and it does not provide a complete picture of the software’s performance or quality.
- Potential for False Positives: Sanity testing is a quick process that may produce false positives, indicating that a particular feature or function is working correctly when it is actually broken.
- Dependence on Expertise: The success of sanity testing depends on the expertise and knowledge of the tester, who must have a deep understanding of the software’s critical functions in order to perform the tests effectively.
- Time Constraints: While sanity testing is faster than other forms of testing, it can still be time-consuming and may require a significant amount of time and resources to complete. This can be a disadvantage when time is a critical factor in the development process.
Please Login to comment...