Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Regression-Test vs. Non-Regression-Test

Tags:

terminology

As a follow up to this answer and a discussion in the comments.

Is regression-test a misnomer for non-regression-test or are these different types of tests?

like image 870
participant Avatar asked Sep 09 '16 07:09

participant


People also ask

What is the difference between testing and regression testing?

Retesting is done to check that the initial bug which was found and fixed is working as it should, while regression testing is used to sweep the application for defects that may have arisen from the change or other unknown residual bugs.

What is difference between regression testing and functional testing?

The purpose of functional testing is to determine how closely the developed application matches the desired requirements. Whereas, the purpose of regression testing is to check that any change in the application or systems have not led to code break and the system works fine.

What is a regression test and when is it used?

Definition: Regression testing refers to a type of software testing that is used to verify any modification or update in a software without affecting the overall working functionality of the said software. Description: Regression testing is performed when there is a code change in a software application.


2 Answers

See this post: https://medium.com/@paulochf/thoughts-about-non-regression-testing-and-why-i-used-it-in-a-pr-for-scikit-learn-f64133abf4b0

I have summarized the conclusion from this post in the graph below: enter image description here

like image 115
Ng Sek Long Avatar answered Oct 03 '22 07:10

Ng Sek Long


I've just found this in the Wikipedia article's talk.

1) The "Regression and non-regression testing" section seems to mischaracterize regression testing. This statement: "the intent of regression testing is to assure that a software bug has been successfully corrected by retesting the modified software" is wrong (see regression testing, the aim of regression testing is to ensure that correcting the bug has not introduced any errors in existing functions, not to test if the bug itself has been fixed). Once you remove that incorrect statement the whole paragraph falls apart and I can't see the difference between NRT and RT. I suspect this article should be removed or simply redirected to regression testing as they are the same thing. Meritw (talk) 17:46, 2 August 2013 (UTC)

2) I am not sure completely if the content of NRT is valid or not(yet to read through it), but RT and NRT are quite separate. RT tests existing functionality and NRT will include new functionality testing and would become part of RT at a later point of time depending on lot of variables. In short say an application exists which has a functionality set of X. An RT group exists to cover X. A new code change occurs on the application to make the functionality as (X+Y). The RT will still test X until it evolves at a later point of time to include Y. But to cover the extra changes based on Y, a NRT has to be conducted which most of the times is a manual process until the RT evolves to cover both X+Y. A m i t 웃 18:29, 2 August 2013 (UTC)

So I noticed:

1) the definitions really are somewhat confusing

2) non-regression tests become regression ones after the improvements it checks are successfully certified.

Althought they're semantically different, they can relate to the same object (code that has the commands which tests the main program).

like image 23
paulochf Avatar answered Oct 03 '22 05:10

paulochf