Академический Документы
Профессиональный Документы
Культура Документы
Regression Testing
By
Syed Usman Ahmed
Lessons in Section 4
• What is regression testing?
• Automating regression tests.
• Process of automating regression test.
• Run all regression test
• Improving the regression test
• Bug Fixing
What is regression testing?
Regression testing is testing done to check that a system update does not re-
introduce errors that have been corrected earlier.
All – or almost all – regression tests aim at checking
• Functionality – black box tests.
• Architecture – grey box tests
What is regression testing?
Since they are supposed to test all functionality and all previously done changes,
regression tests are usually large.
Thus, regression testing needs automatic
• Execution – no human intervention
• Checking. Leaving the checking to developers will not work.
What is regression testing?
Since they are supposed to test all functionality and all previously done changes,
regression tests are usually large.
Thus, regression testing needs automatic
• Execution – no human intervention
• Checking. Leaving the checking to developers will not work.
Automating regression tests
We face the same challenge when doing automating regression test as we face
when doing automatic test checking in general:
Which parts of the output should be checked against the oracle?
This question gets more important as we need to have more version of the
same test due to system variability.
Build tests
for version x
Run tests
Compare Verdict
for version x
Run all regression tests
Since a regression test is large, it is always a need to identify which parts of the
regression tests need to be run after a change – e.g. an error correction.
Thus, traceability – which components are used to realize which functionality
or requirement – is important info for two reasons:
• Save execution time. Fast and cheap hardware is, however, steadily reducing
this need.
• Know which tests to change when we change functionality.
Improving the regression test
Once we have a regression test, it is important to update it each time we
• Fix a bug
• Add, change or remove functionality
• Change platform