Tuesday, October 21, 2008

Regression Testing

I had a blurred idea about Regression Testing for some time. Anyway, I had to handle an issue at work related to this, and this time I set the records straight.

Very quick and short understanding:
  • The verb regress: return to a previous state, usually worse state.
  • The noun regression: The act of getting back to a previous worse state.
  • Software Regression: The scenario where a previously solved bug reappear (i.e. regress) after some action taken on the software (e.g. a patch applied)
  • Software Performance Regression: The scenario where performance of a software goes back to a inferior state.
  • Regression Testing: A testing scheme aim to eliminate software regression. It involves testing the whole software for previously working features, even though they were not supposed to be affected.
Software Regression has 3 core types:
  • Local: a change introduces a new bug in the changed module or component.
  • Remote: a change in one part of the software breaks functionality in another module or component.
  • Unmasked: a change unmasks an already existing bug that had no effect before the change.
That's all for now. I will try to come back to this post.

No comments: