Software testing is a major step of software development. You know willingly or unwillingly, we test our software. We may create some automated tests or manually test our software. Testing is, your satisfaction that yap, I have developed a good software.
Ok today I would like to discuss a type of software testing, which is called regression testing. Regression testing is any 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.
Suppose you made some bugfixs of your software. Now you need to see that your current system is working properly. You are not fixing whole software right? The bug might be in some section or module of your software that you fixed. Now there some testing needs to see that the whole system is working properly. Now the test you will do to insure that your system is working well after these bug fixing is called regression testing.
A good strategy for regression testing is to run the good old tests! You have done some tests at the last stable release of your software, or the last state of your software before fixing bugs, so re run them after fixing bugs, it will reveal (if the test suite is good enough) if there any problem with you current system. Running old test is a good practice for regression testing.
You may call regression testing as a branch of testing, but actually it is either functional testing or unit testing or a combination of both. So I am still not sure you can say that regression testing is a type of testing. I am little bit confused on that!