Presentation is loading. Please wait.

Presentation is loading. Please wait.

REGRESSION TESTING Software Quality Engineering NC Zunaira Tariq Bese 19B Software Quality Engineering NC Zunaira Tariq Bese 19B.

Similar presentations


Presentation on theme: "REGRESSION TESTING Software Quality Engineering NC Zunaira Tariq Bese 19B Software Quality Engineering NC Zunaira Tariq Bese 19B."— Presentation transcript:

1 REGRESSION TESTING Software Quality Engineering NC Zunaira Tariq Bese 19B Software Quality Engineering NC Zunaira Tariq Bese 19B

2 We Will Discuss:  What is Regression testing?  Why do we Perform it?  When do we Perform it?  How do we perform it?  What is Regression testing?  Why do we Perform it?  When do we Perform it?  How do we perform it?

3 What is Regression Testing?  The selective retesting of a software system that has been modified to ensure that any bugs have been fixed and that no other previously working functions have failed as a result of the reparations and that newly added features have not created problems with previous versions of the software.

4 Why do we need it?  Because when you Fix one bug, you sometimes introduce several other bugs.

5 Types:  Regular Regression Testing : is done between test cycles to ensure that the defect fixes that are done and the functionality that were working with the earlier test cycle continue to work.  Final Regression Testing: performed to validate the build that hasn’t changed for a period of time. This build is deployed or shipped to customers.  Regular Regression Testing : is done between test cycles to ensure that the defect fixes that are done and the functionality that were working with the earlier test cycle continue to work.  Final Regression Testing: performed to validate the build that hasn’t changed for a period of time. This build is deployed or shipped to customers.

6 When to use it?  The change is in requirements and the code is modified according to the requirement.  Defect fixing.  New feature is added to the software.  Performance issue fix.  The change is in requirements and the code is modified according to the requirement.  Defect fixing.  New feature is added to the software.  Performance issue fix.

7 How to perform Regression Testing?  Performing an initial “Smoke” or “Sanity” test  Understanding the criteria to select the test cases for Regression Testing  Prioritization of test cases  Methodology for select test cases  Resetting the test cases for test execution  Concluding the result of a regression test cycle  Performing an initial “Smoke” or “Sanity” test  Understanding the criteria to select the test cases for Regression Testing  Prioritization of test cases  Methodology for select test cases  Resetting the test cases for test execution  Concluding the result of a regression test cycle

8 Step 1: Perform a Smoke\Sanity Test  Smoke tests done to demonstrate stability, not to find bugs.  Sanity tests done to check if the major functionality of the system is working or not.  Smoke tests done to demonstrate stability, not to find bugs.  Sanity tests done to check if the major functionality of the system is working or not.

9 Step 2: Choose test case selection criteria  Requires knowledge on the bug fixes and how it affects the system.  Includes the area of frequent defects.  Includes the area which has undergone many/recent code changes.  Includes the area which is highly visible to the users.  Includes the core features of the product which are mandatory requirements of the customer.  Requires knowledge on the bug fixes and how it affects the system.  Includes the area of frequent defects.  Includes the area which has undergone many/recent code changes.  Includes the area which is highly visible to the users.  Includes the core features of the product which are mandatory requirements of the customer.

10 Step 3: Prioritization of Test Cases  Priority-0: Sanity test cases. also run when a project goes through major changes. deliver a very high project value.  Priority-1: Uses the basic and normal setup and these test cases deliver high project value to both development teams and customers.  Priority-2: These test cases deliver moderate project value and are executed as a part of software testing life cycle and selected for regression on need basis.

11 Step 4: Test case selection methodology Several approaches:

12 Continued.. Alternative methodologies:  Regress All: For regression testing, all priority 0, 1, and 2 test cases are re-run.  Priority bases Regression: For regression testing, based on the priority, all priority 0, 1, and 2 test cases are run in order, based on the availability of time.  Random Regression: Random test cases are selected and executed.  Regress Changes: Code changes are compared to the last cycle of testing and test cases are selected based on their impact on the code.  An effective regression strategy is usually a combination of all of the above. Alternative methodologies:  Regress All: For regression testing, all priority 0, 1, and 2 test cases are re-run.  Priority bases Regression: For regression testing, based on the priority, all priority 0, 1, and 2 test cases are run in order, based on the availability of time.  Random Regression: Random test cases are selected and executed.  Regress Changes: Code changes are compared to the last cycle of testing and test cases are selected based on their impact on the code.  An effective regression strategy is usually a combination of all of the above.

13 Step 5: Resetting test cases for execution Resetting of the test cases need to be done with the following considerations:  When there is a major change in the product.  Where there is a situation, the expected results of the test cases could be quite different from previous cycles.  Whenever existing application functionality is removed, the related test cases can be reset.  When there is a change in the build procedure which affects the product.  Large release cycle where some test cases were not executed for a long time.  You are in the final regression test cycle with a few selected test cases. Resetting of the test cases need to be done with the following considerations:  When there is a major change in the product.  Where there is a situation, the expected results of the test cases could be quite different from previous cycles.  Whenever existing application functionality is removed, the related test cases can be reset.  When there is a change in the build procedure which affects the product.  Large release cycle where some test cases were not executed for a long time.  You are in the final regression test cycle with a few selected test cases.

14 Step 6: Concluding the Results In situations where the pass % is not 100, test manager looks at previous results:  If the result of a test case was PASS using the previously and FAIL in the current build, then regression failed. get a new build. start testing from scratch.  If the result of a test case was a FAIL using the previous builds and a PASS in the current build, then bug fixes worked.  If the result of a test case was a FAIL previously and a FAIL in the current build then result of this test case shouldn’t be considered for the pass %. such test cases shouldn’t be selected for regression. In situations where the pass % is not 100, test manager looks at previous results:  If the result of a test case was PASS using the previously and FAIL in the current build, then regression failed. get a new build. start testing from scratch.  If the result of a test case was a FAIL using the previous builds and a PASS in the current build, then bug fixes worked.  If the result of a test case was a FAIL previously and a FAIL in the current build then result of this test case shouldn’t be considered for the pass %. such test cases shouldn’t be selected for regression.

15 QUESTIONS?


Download ppt "REGRESSION TESTING Software Quality Engineering NC Zunaira Tariq Bese 19B Software Quality Engineering NC Zunaira Tariq Bese 19B."

Similar presentations


Ads by Google