Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

The purpose of regression testing is to ensure that changes due to software enhancements, patches, configuration changes, etc. have not introduced errors. One of the main reasons for regression testing is to determine whether a change in one part of the software has a negative impact on other parts of the software. Regression testing usually means re-running previously completed tests and checking whether program behavior has changed in undesirable ways and whether previously fixed errors have re-emerged.

Tests may be run at different levels:

  • UI level testing - using tools such as Jasmine for Javascript UIs
  • Service level testing - using tools such as CasperJS
  • Unit level testing - using tools such as JUnit for Java code, PHPUnit for PHP code, ...

See Testing skill and proficiencyRegression testing can be performed to test a system efficiently by systematically selecting the appropriate minimum set of tests needed to adequately cover a particular change. The test pyramid (https://martinfowler.com/bliki/TestPyramid.html) suggests that one should have many more low-level unit tests than high level end-to-end tests running through a GUI.

Continuous integration (CI)

...