Presentation is loading. Please wait.

Presentation is loading. Please wait.

Regression testing is a type of software testing that seeks to uncover new software bugs, or regressions, in existing functional and non-functional areas.

Similar presentations


Presentation on theme: "Regression testing is a type of software testing that seeks to uncover new software bugs, or regressions, in existing functional and non-functional areas."— Presentation transcript:

1 Regression testing is a type of software testing that seeks to uncover new software bugs, or regressions, in existing functional and non-functional areas of a system after changes such as enhancements, patches or configuration changes, have been made to them. When to do regression testing? Reasonable amount of initial testing is already carried out. A good number of defects have been fixed Defect fixes that can produce side-effects are taken care of. Regression testing should be done periodically.

2 Methodology for RT Performing an initial “smoke “ or “sanity test

3 Smoke testing Smoke testing term came from hardware testing, when you get new hardware and power it ON if smoke comes out then you do not proceed with its testing. In software testing, a smoke test is run on application initial builds to ascertain application most critical areas are working correctly and application is ready for thorough testing. Sanity testing Once a new build is received after minor changes, instead of starting its complete testing sanity test is conducted to make sure previous defects has been fixed and new issues have not been introduces by these fixes. Sanity testing is a subset of regression testing.

4 2. Understanding the criteria for selecting test cases
Two approaches for selecting test cases Constant set of regression tests that are run for every build or change. Selecting test cases dynamically Selecting test cases requires knowledge of Defect fixes and changes made in the current build The way to test the current changes The impact that the current changes may have on other parts of the system and The ways of testing the other impacted parts.

5 Include test cases that have produced the maximum defects in the past.
Include test cases for a functionality in which a change has been made. Include test cases in which problems are reported. Include test cases which covers the mandatory requirements of the customer. Include test cases to test the positive test conditions. Include the area which is highly visible to the users NOTE:RT should focus more on the impact of defect fixes than on the critically of the defect itself.

6 3. Classifying test cases
It is important to know the relative priority of test cases for a successful test execution Fixing priority based on importance and customer usage Priority 0- These are called sanity test cases checks the basic functionality Run for accepting the build for further testing Run when a product goes through major changes It delivers a very high project values to – Development teams and the customers

7 Priority 1 It delivers a very high project values to – Development teams and the customers. Priority 2 It delivers moderate project values. ( it will be used for regression testing on a need basis)

8 4. Methodology for selecting test cases
Critical and impact of defect fixes Selection of test cases Additional test cases Low Few test cases from TCDB ( TEST CASE DATA BASE) - Medium All Priority 0 and Priority 1 test cases Test cases from priority 2 is desirable but not necessary High Subset of Priority 2 test cases

9 Critically Impact Low Medium High P0 Subset P1 P2 P0 All P1 P2 Very few P0 All P1 P2 Subset

10 If there is not enough time and the risk of not doing an impact analysis is low, then alternative methodology Regress all: P-0,1,2 test case are run- all test cases are executed. Priority based regression : P- 0,1,2 are run in order based on the availability of time- when to stop is based on availability of time. Regress changes: code changes are compared to the last cycle of testing and test cases are selected based on their impact on the code. Random regression: Random test cases Context based dynamic regression: Few P-0 test cases are selected

11 5. Resetting the test cases for regression testing
Selecting test cases based on test case result history – Information about test cases are recorded in each cycle is called TCRH. In many organization – Not all the types of testing nor all the test cases are repeated for each cycle. Test case history – what test cases and when?? Reset procedure : the method or procedure that uses tch to indicate some of the test cases be selected for regression testing is called reset procedure.

12 Points to be considered – Retesting
When there is major changes in the product. changes in the build procedure which affects the product Some of the test cases not executed for a long period When the product is in the final regression test cycle with a few selected test cases. expected result of the test cases is quiet different from the previous test cycle.

13

14

15

16

17 6. Concluding the results of regression testing

18 Best practices in regression testing


Download ppt "Regression testing is a type of software testing that seeks to uncover new software bugs, or regressions, in existing functional and non-functional areas."

Similar presentations


Ads by Google