質問

Just wonder what the difference is. I need some concise explanation.The wikipedia is a bit too verbose for me.

役に立ちましたか?

解決

Regression testing is actually a test suite that is supposed to test as much functionality of your application as possible.

The idea is that, when you make a change to your application as required for bug fixing or new functionality, regression testing will hopefully catch any problems (or regressions) with your changes.

It's called regression since the vast majority of tests have been added due to previous bugs hence, if they find a problem, you have regressed to a previous state (in which the problem once again exists).

In other words, regression testing tests your application.


Mutation testing is actually introducing small errors (called mutations) into your application (errors that are not supposed to fix bugs or provide new functionality) to see if your test suite picks them up.

The idea is that, if your test suite doesn't pick up the mutations, it is deficient and should have more test cases added.

In other words, mutation testing tests your test suite rather than your application.

他のヒント

Different purposes. Imagine you have a product, say version 1.0, with a bug #123. In version 1.01 of your application you solve that bug but adding a new feature you introduce a new bug, say #124. Now you have this situation:

  • Version 1.0: bug #123
  • Version 1.01: bug #123 solved, new bug #124.

Now imagine you release the brand new version 2.0. If, fixing the bug #124 or adding a new feature your bug #123 is active again then you have a regression.

  • Version 1.0: bug #123
  • Version 1.01: bug #123 solved, new bug #124.
  • Version 2.0: bug #123 active (REGRESSION!), bug #124 solved.

Regression testing is to find this kind if issues.

Muation testing is a "test" for tests. Imagine you have a test suite, how can you be sure your tests will find errors? You may want to introduce a small change (yes, a bug!) in your code to see if your tests will find it. This is mutation testing.

Major difference between Re-Testing and Regression Testing If we conduct the testing on the modified build at the bug fixed area only is called Re-Testing.If we conduct the testing on modified build including all the major functionalists in the application is Regression Testing.

The first line of each Wikipedia page sums it up pretty well:

Regression testing is any type of software testing that seeks to uncover new software bugs, or regressions, in existing functional and non-functional areas of a system after changes, such as enhancements, patches or configuration changes, have been made to them.

Mutation testing (or Mutation analysis or Program mutation) is a method of software testing, which involves modifying programs' source code or byte code in small ways.

Mutation testing actually modifies the program for testing purposes, while regression testing simply tests how new code affects the program.

While others have given you a concise description of the difference between those two regression testing and mutation testing, please be aware while reading about mutation testing, that:

No, fuzz testing is still trying to check the program against the test cases, while mutation testing is checking the test cases against the different versions of the program.

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top