What does regression test mean?

36,716

Solution 1

Regression test is a test that is performed to make sure that previously working functionality still works, after changes elsewhere in the system. Wikipedia article is pretty good at explaining what it is.

Your unit tests are automatically regression tests, and that's one of their biggest advantages. Once those tests are written, they will be run in future, whenever you add new functionality or change existing functionality. You don't need to explicitly write regression tests.

Solution 2

Notwithstanding the old joke, "Congress" is not the opposite of "progress;" "regress" is. For your code to regress is for it to "move backward," typically meaning that some bad behavior it once had, which you fixed, has come back. A "regression" is the return of a bug (although there can be other interpretations). A regression test, therefore, is a test that validates that you have fixed the bug, and one that you run periodically to ensure that your fix is still in place, still working.

Solution 3

The word regression as coined by Francis Galton means

Regression: The act of going back

I.e. it is the phenomenon/technique in software testing to check any change / bug fixes hasn't impacted the existing functionality of the system. Thus the intent of regression testing is to ensure that a change, such as a bug fix should not result in another fault being uncovered in the application.

Regression Testing is required when

  • there is a change in requirements and code is modified according to the requirement
  • a new feature is added to the software
  • defects are fixed
  • a performance issue is fixed

Regression testing can be done both manually and automated.

These are some tools for the automation approach:

  • QTP
  • AdventNet QEngine
  • Regression Tester
  • vTest
  • Watir
  • Selenium
  • actiWate
  • Rational Functional Tester
  • SilkTest

Solution 4

During a regression test, testers run through your application testing features that were known to work in the previous build.

They look specifically for parts of the application that may not have been directly modified, but depend on (and could have residual bugs from) code that was modified.

Those bugs (ones caused by bugs in dependent code even though they were working before) are known as regressions (because the feature was working properly and now has a bug...and therefore, regressed).

Solution 5

Regression testing is a part of testing activity, which can be start after
modification has been made to check the reliability of each software released.
It's nothing but an impact analysis to check wheather it not affecting critical
area of the software.

Share:
36,716
never_had_a_name
Author by

never_had_a_name

Updated on August 01, 2022

Comments

  • never_had_a_name
    never_had_a_name almost 2 years

    Could anyone explain the word regression test in an understandable way?

  • Gishu
    Gishu almost 14 years
    The intent of regression testing is to provide a general assurance that no additional errors were introduced in the process of fixing other problems. -- from the wiki.
  • never_had_a_name
    never_had_a_name almost 14 years
    but if the code passes all tests i write prior i wrote them. shouldn't it be safe? why do i still have to write regression tests?
  • Brian MacKay
    Brian MacKay almost 14 years
    You don't - the unit tests are automatically regression tests. :)
  • KlausCPH
    KlausCPH almost 11 years
    +1 Great with an explanation of what the wording of the term actually means!
  • Ben
    Ben over 10 years
    -1 This definition is extremely broad. Every test makes sure working functionality still works - that's the general point of testing. Regression tests are tests written during debugging to make sure the code does not regress.
  • Ben
    Ben over 10 years
    This is right on. stackoverflow.com/questions/520064/… has a good explanation too.
  • Igor Zevaka
    Igor Zevaka over 10 years
    @Steve - I give you +1 for your comment of "Regression tests are tests written during debugging to make sure the code does not regress" - for being wonderfully circular and non-specific.
  • Ben
    Ben over 10 years
    @Igor - you're right. stackoverflow.com/questions/520064 explains it better than I did: A test that was written when a bug was fixed. It ensure that this specific bug will not occur again. The full name is "non-regression test".
  • Escape Velocity
    Escape Velocity over 10 years
    Can't we say that we also have regression (moved backward) when some functionality has disappeared or is broken?
  • flow2k
    flow2k about 7 years
    @EscapeVelocity Yes. Regression or moving back can have two meanings: 1) moving back in time, as the Carl indicates, or 2) moving back in quality, i.e. becoming worse, in function or performance. See merriam-webster.com/dictionary/regressing and en.wikipedia.org/wiki/Software_regression
  • Marco Altieri
    Marco Altieri over 6 years
    I do not think that non-regression tests can be written only after fixing a bug. Igor's definition looks correct to me.
  • halfer
    halfer almost 5 years
    Hi Raj. I appreciate you want to attract users to your service, but we do not allow signatures and promotional links here, and link shorteners are prohibited as well (I assume hubs.ly is not yet known by Stack Overflow as a shortening service - the editor stops a number of them entering the database). You may add a link in your profile and your profile description though.