Software Regression Testing: Ensuring Software
Fixes Don't Become Problems
One of the important phases in the software development
cycle of software is the process of software testing. This
testing is conducted starting from the start of development of
the software until the software is ready to be shipped to the
market for sale. One type of software testing is functional
testing and regression testing is one type of functional
testing. One saying is that change is the only constant thing
in the world. This is true for software.
The existing software requires changes due to fixing
defects, enhancements etc. Regression testing is done to ensure
that enhancement, defect fixes or any other changes made to the
software have not broken any existing functionality.
Regression testing is very important wherever there is
iterative development of software. In iterative development,
the developer adds another module with some functionality to
the existing running module and one should make sure that
addition of this module does not break the existing
functionality. Regression testing is performed with the goal of
discovering regression bugs.
Whenever there are any changes in the software regression
testing is performed. This ensures that the changes have not
introduced any new bugs or affecting the previous functionality
of the software without the new module. By doing this test one
makes sure that functions that were performing satisfactorily
continues to perform well with the addition of the new module.
Many a times software change cause malfunctioning of the
existing software. Regression testing helps in locating and
eliminating the problem.
Regression is also known as verification testing and is used
after a software programmer has either fixed a problem or added
source code to the program. In certain cases, the addition of
source code to a program will initiate new errors. This type of
regression testing is a type of quality control to ensure that
that new changed code is still in compliance with the original
requirements and also that the unchanged code is not affected
by any corrections made to the software. A very common way of
regression testing is to just rerun tests that were previously
run to check for new or reemerging problems.
Regression testing is the method of verification. It
verifies whether the bugs are fixed and the newly added
features have not created any problem in previous working
version of software. Regression means retesting the unchanged
parts of the application. Test cases are re-executed in order
to check whether previous functionality of application is
working fine and new changes have not introduced any new bugs.
When an additional program module is added to the existing
running program it might cause new errors. The regression
testing tracks it and the bug can be fixed.
In any software development, you will come across errors and
bugs reemerging after certain codes in the application are
rewritten for fixing any bugs. There could be many reasons for
this. Most of them are due to human errors. Some of the reasons
for such errors are wrong coding, incorrect logic or not
understanding the customer’s requirements.
Some of the types of regression testing are as follows.
 |
local – this occurs when the changes made to the
software bring in new bugs |
 |
Unmasked – this happens when a change in the
software brings previous bugs |
 |
remote – occurs when a change to one part of
software causes malfunctioning to another part of
the same software |
Regression testing is not only useful in correcting a
problem in the program, but also to track the output.
|