• Author
  • #11281

    In simple words Retesting is to execute the test cases which failed in last build. Hence its verifying the fix only occurred in last build. while regression is checking the software once new change is implemented. So to fix software against new change is regression testing. Lets see few more facts to understand the topic in detail. I have found some valuable links that will help to understand and throw deep light on above topic:
    1) http://www.thinksys.com/blog/regression-testing-vs-re-testing-know-the-difference/
    2) http://www.testingeducation.org/k04/RegressionExamples.htm
    3) https://www.youtube.com/watch?v=_3xpKOncvSI

    Waiting for your comments…

    Profile photo of Ram

    Regression Meaning: return to former state, relapse or revision.

    Any Tests that we’ve performed before.

    Testing that we perform after a change in software to check that the change has impact or affects over other functions or functionalities of the software.

    one of the vital things in testing is to make sure software that have been working will work continuously without failure in Future too. To achieve this we have to perform Re-Testing, regression tests after every change occurred.

    I agree that regression tests is subset of Re-testing but there is more than that Regression Tests are the way to explore more about the risks and to understand the failure points, unpredictives and uncommon things of a Software.

    Heuristic: RCRCRC from Karen Johnson is my style of doing regression tests.

    R-recent (What has changed recently?)
    C-Core (What is common and critical?)
    Risk- (Which module or function is risky or core area to business, complex to Test)
    Repaired- (Did it really get fixed? did it introduce any new bugs?)
    Chronic- (patterns of problems and Bugs)

    Heuristic for Regression Testing
    James Bach views


    In my opinion and also what I follow & preach – Retesting is a subset of regression testing.
    Regression testing is not picking up a subset of functional (or new feature or system ) test cases and executing them to see if anything broke after a fix.
    Regression test should be developed separately that capture life-cycle scenarios of the product or application under test – that are mapped to business functionality or a matrix business scenarios – this ensures you cover all the paths or transactions that exist in the product – highly recommended to automate & use a varying the test data set – this again ensures your tests are not static.


    No, I think Regression Testing stands alone. It is checking nothing has been broken, it is a prime candidate for automation, so it can be run daily/nightly, weekly, or as needed so there are no nasty surprises pre-release


    Regression is many a time misunderstood. Regression is definitely done after the changes but even after the normal functional testing for a new functionality we do run regression suite. Re-testing could be related to defects that we encountered but regression could be encompassing more of the basic functionality. So I would ratehr say retest is kind of subset of regression not the number wise but the coverage\scope wise.

    Profile photo of Kim

    There are two things standing out in discussions like this.

    1) Can we first agree on a definition of either term before even asking the questions. People and organizations have different terminology for different things which is usually a sign of very different processes.

    2) is even more interesting for me: why would you classify tests as such? To make a call on when to run them? And can tests only belong to one or to multiple such classes? For many teams in my org, a tests is only considered a good one if it (a) find defects or checks for critical constraints, (b) is reliable (when it fails its a code defect), (c) is fast (usually a unitish like test with minimal external dependencies), and (d) if people understand what the tests is doing. Everything else is secondary.

    Back to the question: Re-testing for me is not even a class of tests, its a practice, When fixing a defect you want to run tests to verify that the defect is gone. That does not mean that the tests I run will be run from now on as check-in gate or likewise. Usually, you would use a specific regression test for the re-testing but there are other options. A regression test is a test case created to prevent a previous defect to be introduced again (please note that this refers usually to the fact that the same instance of a defect does not occur anymore–fine but essential difference). However, the regression test might have never failed in history as I introduced it after fixing the defect. For me the two terms have nothing in common as one is a practice and the second a test purpose category.


    Dear Ronan

    Now long retired but always fell back on http://softwaretestingstandard.org/ as a reliable source.

    More controversially always thought they should be a sensibly sized set of tests that cable run regularly to check a system is still behaving itself.

    Betty McCarthy


    I think @kimh is right. We might to agree to on a definition of either term before even asking the questions. There are a number of opinions here and I am not even sure myself.


    IĀ agree with Sujay – retesting is a subset of regression testing

Viewing 9 posts - 1 through 9 (of 9 total)

You must be logged in to reply to this topic.