Regression Testing: Part 1

This article is about Regression testing. We will first become familiar with the basic meaning of regression before this explanation of testing.

In the world of software, regression means a software bug which stops the functioning of any feature after the occurrence of any kind of change in that feature or in an application in which that feature belongs.

It may also be another case in the software, although works properly, but its perforamnce has degraded (running time rate is slow) or any other sort of irregularities will occur.

These regressions might occur while fixing other bugs in the software. A regression can be one of basically three types. One is in which any bug occurs due to any change in the module.

This is known as local regression. A kind of bug may also occur which is responsible for breaking the functionality of one part of any software; it also occurs after a change in the system.

This is known as remote regression. The other name in this list is Unmasked regression. As the name indicates, this refers to the state where an already existing bug reappears which was not significantly showing any effect (was masked) before the change.

                Regression Testing Automation

What is Regression Testing?
This is a kind of testing which is done to ensure that any new change in the software will have no negative effect on working of other parts of the software. It is to make sure that any modifications has not caused other bugs to appear. It is a part of the program development process.

In this testing, we re-run previous tests to ensure that the functionality of our software is not showing any unwanted changes. Regression testing should be linked with functional testing.

The test cases which are used in functional testing to check the functionality of an application should be used to re-run the application as a regression test. Under Regression testing, test cases are run and then a result is compared with the previously recorded results.

What is Behavioral Regression Testing?

Behavioral Regression Testing is actually a baseline test that captures the current functionality of the code. We run code base against a test suite; this is just to detect test suites from the baseline. We can add other test cases to improve it if we want to.

Why Regression Testing is Important?
The importance of Regression testing can not be neglected if we are aware of how often modifications in the software occurs. It is a very fast way to determine if the functionality of the program is broken.
Regression testing not only corrects the program but it also tracks the quality of its output. It has the ability to track the code size and simulation time.

Categories of Regression test:
1. Functional test
2. Unit test.

Functional testing is a type of black box testing which is used to test the complete program by providing various inputs. It includes identification of the function and then providing it input. In Functional testing we do not consider the internal programming. It is very rare to find if it is done internally.

The output obtained is compared to the expected result. While Unit testing do it on individual functions and subroutines.

Whereas Unit testing is a type of white box testing in which each part of the software is checked as an individual unit. Unit testing provides a living documentation of any system.

Conclusion: This is done to find whether the older application is still working after the changes or not. It is advisable that regression testing should be done every time when we bring any kind of change in the program.
Organizations usually avoid Regression testing because they think that it is too complicated to conduct; also its maintenance is difficult. But it is advised to not to neglect it as it prevents breaking the functionality of software which occurs after changes have been made to it.

Programmer's skill: white box testing
Functional Testing-Part 1
12 Important FAQ on VSTS testing