12-04-2011, 04:27 PM
Presented By
Lalatendu Behera
[attachment=12128]
Definition
• Regression testing is any type of software testing that seeks to uncover software errors by partially retesting a modified program.
• One of the main reasons for regression testing is that it's often extremely difficult for a programmer to figure out how a change in one part of the software will echo in other parts of the software.
Why Use Regression Testing
• Manage risks of Change
A bug fix didn’t fix the bug
The fix had a side effect
Error in the build process
Faulty localization
Types of Regression Testing
Types of regression testing according to general point of view.
• Local
• Unmasked
• Remote
Regression testing can be differentiate from specification point of view.
• Corrective Regression Testing
• Progressive Regression Testing
• Different Test Classes
• Reusable Test Cases
• Retestable Test Case
• Obsolete Test case
• New Structural Test Case
• New Specification Test Case
General Test Approach
1. create a test case
2. run it and inspect the output
3. if the program fails, report a bug and try again later
4. if the program passes the test, save the resulting outputs
5. in future tests, run the program and compare the output to the saved results. Report an exception whenever the current output and the saved output don’t match.
• Example
Regression Approach
Identification of the changes in a program.
• Selection of the attributes (required elements) for regression testing, in accordance with changes.
• Selection of the subset of the original test cases to be used in regression testing.
• Application of this subset to the changed program, to check the results and to establish its correctness (in accordance with the modified program specification).
• If necessary, generation of additional tests cases (e.g., to test a new functionality).
• Application of this new test case set to the changed program, to check the results and to establish its correctness.
• Establishment of the modified program test case database.
• Example
Frame work for Analyzing Regression Testing Techniques
The different categories of framework used for regression testing techniques are:
• Inclusiveness :- It measures the extent to which regression test chooses modification revealing tests from T for inclusion in T’.
• Precision :- It measures the extent to which regression test omits tests that are non-modification-revealing.
• Efficiency
Inclusiveness
• Precision
• Precise (Contd…)
• Regression Testing Tools
• Winrunner
• QTP
AdventNet QEngine
• Regression Tester
• vTest
• Watir
• Selenium
• actiWate
• Rational Functional Tester
• SilkTest
Testing Vs Regression Testing
• Availability
• Scope of Test
• Time allocation
• Development information
• Completion Time
• Frequency
Conclusion
• Regression testing is an expensive testing procedure utilized to validate modified software.
• Regression test selection techniques attempt to reduce the cost of regression testing by selecting a subset of a program's existing test suite.
• The results indicate that safe regression test selection can be cost-effective, but that its costs and benefits vary widely based on a number of factors.
• Test suite design can significantly affect the effectiveness of test selection.