Regression Testing - Falmouth-Games-Academy/comp350-research-journal GitHub Wiki

Regression testing is making sure the new changes you've made to a program still works with the older program. There are a series of tests written to ensure the newer version still works with the older one before pushing out updates. When new code is added it can break the already existing code, hence why regression testing is used 1(https://searchsoftwarequality.techtarget.com/definition/regression-testing). Regression testing should be used after any changes are made to the code as well as after any bugs have been fixed to ensure they are actually fixed 7(https://airbrake.io/blog/what-is/regression-testing). A study done showed that regression testing saved up to 60% time in bug fixing and 40% money 8(https://www.guru99.com/regression-testing.html), this is because it is able to detect the bugs easily which saves time hence saves money.

Regression Testing [6] 6(https://www.guru99.com/regression-testing.html)

Techniques used for regression testing are :

Corrective

Corrective testing is used when there are no new changes made to the product, the already existing test cases can be reused to conduct desired tests [3]

Retest all

The retest-all technique is time-consuming because it requires reusing all tests which result in the execution of avoidable cases. This method should only be used if a lot of the code is changed, it is very inefficient if only a small part of the code has been changed as it involves testing all aspects of an application. [4]

Selective

Selective testing is used to analyze the impact of new code added to the existing code of the software. This technique reduces the retesting and effort cost by utilising a subset of the current experiments. For example, a test unit will be re-run if there is a change implemented into the program entities such as functions and variables. [3]

Progressive

Progressive testing, also known as incremental testing, involves testing modules in an incremental order. This means we start by completely testing one module, then test this module and the next module together as one module, and so on. The purpose of this type of testing is to give feedback after implementing one new module. [5]

Complete

Complete regression testing is a good technique to use when multiple changes have been made to the existing code. This type of testing is especially useful when the new change has an impact on the root code of the application. Complete testing is also very useful for identifying unexpected bugs and issues. Once this testing is done, the system can be made available to the user. [3]

Regression test selection

Test case prioritization (General prioritization and version specific prioritization)

Hybrid 2(https://en.wikipedia.org/wiki/Regression_testing)

3 Main software Regression

Local - This is when a problem is found within the program that was updated.

Remote - This is when a problem is found within different software than the one updated one.

Unmasked - When the problem was already there but it had no effect before an update. 7(https://airbrake.io/blog/what-is/regression-testing)

[1] - https://searchsoftwarequality.techtarget.com/definition/regression-testing

[2] - https://en.wikipedia.org/wiki/Regression_testing

[3] - https://www.testbytes.net/blog/types-of-regression-testing/

[4] - https://reqtest.com/testing-blog/regression-testing-types-techniques-tools/

[5] - http://www.softwaretestingandistqb.com/what-is-progressive-testing/

[6] - https://www.guru99.com/regression-testing.html

[7] - https://airbrake.io/blog/what-is/regression-testing

[8] - https://www.guru99.com/regression-testing.html

💯