Regression Testing: Ensuring Software Fixes Don't Become ProblemsAny time new software is developed, it has to go through may phases of testing. There is a different test for almost every step of the software development. One important type of software testing is regression testing. Regression testing is a type of software testing performed with the goal of discovering regression bugs. Regression bugs develop or occur in software that has performed as it was supposed to, and then unexpectedly stopped working as it previously did. Regression bugs usually pop up because of some type of program change in the software. Regression testing is also considered as specific retesting of software that has been changed to ensure that no new bugs have resulted or any previous bugs are fixed. It is also to make sure that any functions that were working prior to a recently made change to the software are still working. Often when changes are made to software, it affects different parts of the functioning program. Regression testing is to make sure this does not happen. 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 wasn't 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. In the development of software, it is very common for certain faults or malfunctions to reemerge after certain parts of the software have been fixed. One reason may be that the fix can be delicate in that it fixes one area but not another or the fix may just become lost through human error, inadequate revision control or any number of reasons. Many times a new feature has been added to software and for some reasons; new bugs will develop after the addition of the new feature. There are a few different types of automated regression testing such as local, which occur when changes to the software bring new bugs; unmasked which happen when a change to the system brings about previous bugs; and remote, which occurs when the change to one part of the software will break down another different part of the program. Regression testing is not just used to correct a problem in the program, but also as a means of tracking the output. |