Software Testing Tutorial #23 - What is Regression Testing

Software Testing Mentor
19 Nov 202016:23

Summary

TLDRThis tutorial covers regression testing, a crucial type of software testing performed to ensure that new code, defect fixes, or added functionality do not affect existing features of an application. The instructor explains the differences between regression testing and retesting, providing examples like an e-commerce website's registration functionality. Key topics include when to perform regression testing (e.g., after bug fixes, new features, or code refactoring), techniques for conducting it, and methods for selecting test cases, such as focusing on critical, high-priority, and integration test cases. The video concludes with tips on creating an effective regression test suite.

Takeaways

  • 🔄 Regression testing is a widely used software testing type done in every release, especially when a new feature or defect fix is introduced.
  • 📜 The purpose of regression testing is to ensure that the existing functionality of an application works as expected after code changes or bug fixes.
  • 🔍 Regression testing is different from retesting, though retesting is a part of regression testing. Retesting focuses on verifying fixed defects, while regression ensures overall functionality.
  • 🛒 Example: In an e-commerce website, if a Facebook registration bug is fixed, regression testing ensures that other registration options (email, Google, etc.) are unaffected.
  • 🔧 Regression testing is necessary when a defect is fixed, new functionality is added, or code refactoring is done to improve performance or maintainability.
  • ⚙️ Configuration changes in the application may also necessitate regression testing to ensure no unintended impacts on existing functionality.
  • 💡 Techniques for regression testing include selecting all test cases, selecting specific test cases based on impacted areas, or prioritizing critical test cases.
  • 📊 Critical, frequently used functionalities should be included in regression testing to ensure core application features work post-changes.
  • 🧩 High-priority test cases and integration test cases should be part of regression test suites to cover key aspects and integrations of the application.
  • 🔄 Test case selection should consider the module being changed, analyzing which parts of the application may be impacted and adjusting the regression test cases accordingly.

Q & A

  • What is regression testing in software development?

    -Regression testing is a technique used to ensure that existing functionality of a software or application works as expected after new code, bug fixes, or additional features have been introduced.

  • How is regression testing different from retesting?

    -Regression testing ensures that new code changes do not negatively affect the existing functionality, while retesting focuses on verifying whether specific defects have been fixed. Retesting is a part of regression testing, but their purposes differ.

  • When should regression testing be performed?

    -Regression testing should be performed after any defect fix, new functionality addition, code refactoring, or configuration changes to ensure that the existing functionalities are not impacted by these changes.

  • What is an example of regression testing in an e-commerce website?

    -In an e-commerce website, if a developer fixes a bug related to registration via Facebook, regression testing would involve checking other registration methods (e.g., via email or Google account) to ensure they were not affected by the Facebook registration fix.

  • What are the main techniques for conducting regression testing?

    -The main techniques for regression testing include: 1) selecting all test cases, 2) regression test selection (choosing only relevant test cases), and 3) prioritizing test cases based on critical functionality.

  • What is the 'regression test selection' technique?

    -Regression test selection involves analyzing which parts of the application are impacted by a change and executing only the test cases related to those modules, instead of running all test cases.

  • Why is selecting all test cases for regression testing uncommon in manual testing?

    -Selecting all test cases for regression testing is uncommon in manual testing because it requires significant effort to manually execute all test cases. This approach is more feasible when there is a fully automated regression suite.

  • How does prioritization help in regression testing?

    -Prioritization helps by allowing testers to focus on the most critical functionalities of an application, ensuring that essential features are thoroughly tested after any change.

  • What are some key criteria for selecting regression test cases?

    -Key criteria for selecting regression test cases include frequently used functionalities, high-priority test cases, integration test cases, and module-specific test cases.

  • What is the role of integration test cases in regression testing?

    -Integration test cases play a crucial role in regression testing by ensuring that the application continues to function properly with external systems and other integrated components after any code changes.

Outlines

plate

This section is available to paid users only. Please upgrade to access this part.

Upgrade Now

Mindmap

plate

This section is available to paid users only. Please upgrade to access this part.

Upgrade Now

Keywords

plate

This section is available to paid users only. Please upgrade to access this part.

Upgrade Now

Highlights

plate

This section is available to paid users only. Please upgrade to access this part.

Upgrade Now

Transcripts

plate

This section is available to paid users only. Please upgrade to access this part.

Upgrade Now
Rate This

5.0 / 5 (0 votes)

Related Tags
Regression TestingSoftware QualityBug FixesTesting TechniquesSoftware DevelopmentCode ChangesTest CasesE-commerce TestingSoftware ProjectsDefect Fix