29. Regression testing :
● Regression testing in software testing is a crucial quality assurance
process that involves Retesting a software application or system to
ensure that new code changes, enhancements, or bug fixes have not
adversely affected existing functionality.
● It aims to verify that the recent modifications have not introduced new
defects or unintended side effects into the software.
● Definition: Regression testing is the process of systematically
Retesting a software application after making code changes to
ensure that existing functionality remains intact and that new
changes do not introduce new defects.
30. Importance of Regression Testing:
● Maintaining Software Quality: It helps in maintaining the overall
quality and reliability of the software by preventing the introduction
of new defects.
● Safeguard Against Code Changes: As software evolves and is
frequently updated, regression testing acts as a safety net, ensuring
that new code changes do not harm the existing functionality.
● Supports Continuous Integration: In the context of continuous
integration and continuous deployment (CI/CD), regression testing is
essential to automatically validate code changes before they are
deployed to production.
31. Regression Testing Process:
Regression testing typically follows this process:
1. Selection of Test Cases: Choose a set of test cases that represent the
critical and frequently used features of the software.
2. Execution of Test Cases: Run the selected test cases on the updated
software to identify any deviations from the expected behavior.
3. Comparison: Compare the results of the new test runs with the
expected results (baseline results from previous test runs).
4. Defect Identification: If discrepancies are found, these are
documented as defects or issues.
5. Resolution: Development teams address and fix any issues or defects
that are identified.
6. Re-Testing: After fixes are implemented, the affected test cases are
re-run to ensure that the issues have been resolved without introducing
new problems.
32. Advantages:
1. Bug Detection: It helps detect and prevent the introduction of new bugs or
regressions with code changes.
2. Software Stability: Ensures that existing functionalities remain stable after
modifications.
3. Automation: Automation can significantly speed up the testing process.
4. Risk Reduction: Focuses testing efforts on critical areas to reduce the risk of severe
issues.
Disadvantages:
1. Resource Intensive: Requires time and resources, especially for manual testing.
2. Test Case Maintenance: Test suites need continuous updates as the software evolves.
3. Overhead: Running repetitive tests can slow down the development process,
particularly in rapid release cycles.