REGRESSION TESTING
- Definition: Regression testing is a type of software testing that ensures that previously developed and tested software still performs correctly even after it has been changed or interfaced with other software.
- Purpose: To ensure that the changes made to the software (fixes or enhancements) haven’t adversely affected the existing features.
- When to Perform: It is generally performed after the development of new functionality, after fixing a defect, or after applying patches or updates to the software.
- Techniques: There are different techniques used in regression testing, such as re-testing, re-execution of test cases, and automated test suites.
- Challenges: Time and resource-intensive, especially if the software is large and complex. It also requires a comprehensive understanding of the software’s functionality.
SMOKE TESTING
- Definition: Smoke testing is a type of software testing that ensures that the most crucial features of a program work correctly before proceeding with further testing.
- Purpose: To verify that the build is stable enough for further testing and to identify issues early in the development process.
- When to Perform: Smoke testing is typically performed after a build is released, but before a more comprehensive round of testing (like integration or system testing) begins.
- Techniques: It involves executing basic functionality tests that cover the most critical aspects of the software, focusing on the “smoke” escaping from the initial build.
- Challenges: There’s a risk of overlooking more subtle issues and not capturing defects that may surface in more complex scenarios
SANITY TESTING
- Definition: Sanity testing is a type of software testing that checks whether a new functionality added to the software, or bug fixes, have not impacted the existing functionalities of the application.
- Purpose: To quickly determine if the proposed changes or fixes have not caused any major issues with the existing functionality.
- When to Perform: After making minor fixes or changes to the software, or after introducing new features.
- Techniques: It typically involves running a set of basic tests on the affected area(s) to ensure that the core functionality remains intact.
- Challenges: It can be challenging to balance the depth of testing with the need for quick feedback, especially in a time-constrained environment. The limited scope can lead to a false sense of security.