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?
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.
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.
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.
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:
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).
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With