Regression Testing
Regression Testing
Regression Testing
To Tu
Obsolete
Redundant
Tor Tr
Optimized Regression Tests
Regression
Tests
Major Regression Testing Tasks
Test revalidation (RTV):
◦ Check which tests remain valid
Test selection (RTS):
◦ Identify tests that execute modified portions.
Test minimization (RTM):
◦ Remove redundant tests.
Test prioritization (RTP):
◦ Prioritize tests based on certain criteria.
Automating regression testing
Build results
Test data for version x
Build tests
for version x
Run tests
Compare Verdict
for version x
Regression Testing
Does not belong to either unit test, integration
test, or system test.
◦ In stead, it is a separate dimension to these three forms
of testing.
Regression testing (RT)is the running of test suite:
◦ after each change to the system or after each bug fix
◦ ensures that no new bug has been introduced due to the
change or the bug fix.
Regression tests assure:
◦ the new system’s performance is at least as good as the
old system
◦ always used during phased system development.
Regression Testing
Regression testing is any type of software testing that
seeks to uncover new errors, or regressions, in the existing
functionality after changes have been made to the software,
such as functional enhancements, patches or configuration
changes.
It can also be defined as the software maintenance task
performed to instill confidence that changes are correct
and have not adversely affected the unchanged portions of
the program.
Progressive vs. Regressive Testing
All different types of testings like Unit Testing, Integration
Testing are Progressive testing or Developmental testing.
From verification to validation, the testing process progresses
towards release of the product.
But, the intent of Regressive testing is to assure that a change,
such as a bug fix, did not introduce new bugs. 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.
Regression testing cont…
A system under test (SUT) is said to regress if,
a modified component fails, or
a new component when used with unchanged component, causes
failures in the unchanged component by generating side effects.
Therefore the following versions will be there in the system:
Baseline Version: The version of a component that has passed a test
suite.
Delta Version: a changed version that has not passed a regression test.
Delta Build: an executable configuration of the SUT that contains all
the Delta & Baseline Components.
So, we can say that, most test cases begin as
progressive test cases and eventually become
regression test cases.
RT is not another testing activity; it is the re-
execution of some or all of the already developed
test cases.
Definition
IEEE Definition:
◦ It is the selective retesting of a system or component to verify that the
modifications have not caused unintended effects and that the system
or component still complies with its specified requirements.
It can also be defined as
◦ The s/w maintenance task performed on a modified program to instill
confidence that changes are correct and have not adversely affected
the unchanged portions of the program.
Importance of Regression Testing
Regression testing is performed in case of bug fixing or whenever there
is a need to incorporate a new requirement.
Importance of Regression Testing is due to following Reasons:
It validates the parts of software where changes occur.
It validates the parts of the software which may be affected by the
changes.
It ensures proper functioning of software before changes occur.
It enhances quality of software, as it reduces the risk & high risk bugs.
Regression Testability
Regression Testability refers to the property of a program,
modification, or test suite that lets it be effectively and
efficiently regression-tested.
It is a function of both the Design of the program and the
Test Suite.
Regression Number: Avg no. of affected test cases in the
test suite that are affected by modification to a single
instruction.
If Regression Testability is done at early stages it reduces
cost of development and maintenance of the Software.
Objectives of Regression Testing
T’’ new
test cases
P’
Program P
Changed feature
New feature