SE401 · Regression Testing · Annotated SlidesRegression Testing
Original
Overview

Regression Testing

Software evolution and why changes break things, what regression testing is, reasons for it, its problems (test-suite maintenance, obsolete and redundant tests, cost), and selecting and prioritizing regression tests (code-based, specification-based, prioritized rotating selection).

How to read this page

Every original slide is shown unchanged. Yellow marks on a slide point to a numbered note: hover or tap a mark to jump to its note, and hover a note to see its marks. Questions tagged Past exam appeared on a real paper; Prediction questions are likely angles, not confirmed. Pick an answer to each question: a wrong pick tells you why it is wrong, so you can try again.

All 17 slides
  1. 1 Slide 1
  2. 2 —–Ž‹‡
  3. 3 ‘ˆ–™ƒ”‡˜‘Ž—–‹‘
  4. 4 ‡‰”‡••‹‘‡•–
  5. 5 ‡‰”‡••‹‘‡•–‹‰
  6. 6 ‡‰”‡••‹‘‡•–
  7. 7 ‡‰”‡••‹‘‡•–‹‰
  8. 8 ‡‰”‡••‹‘‡•–
  9. 9 ‡ƒ•‘•
  10. 10 ƒ•‹ ”‘„އ•‘ˆ‡‰”‡••‹‘‡•–
  11. 11 ‡•–ƒ•‡ƒ‹–‡ƒ ‡
  12. 12 „•‘އ–‡ƒ†‡†—†ƒ–
  13. 13 ‡Ž‡ –‹‰ƒ†”‹‘”‹–‹œ‹‰‡‰”‡••‹‘‡•–ƒ•‡•
  14. 14 ‘†‡ƒ•‡†‡‰”‡••‹‘‡•–‡Ž‡ –‹‘
  15. 15 ’‡ ‹ˆ‹ ƒ–‹‘ƒ•‡†‡‰”‡••‹‘‡•–‡Ž‡ –‹‘
  16. 16 ”‹‘”‹–‹œ‡†‘–ƒ–‹‰‡Ž‡ –‹‘
  17. 17 —ƒ”›
Slide 1 / 17

Slide 1

Slide 1: Slide 1
Slide 2 / 17

—–Ž‹‡

Slide 2: —–Ž‹‡
Slide 3 / 17

‘ˆ–™ƒ”‡˜‘Ž—–‹‘

Slide 3: ‘ˆ–™ƒ”‡˜‘Ž—–‹‘

Notes

  1. Changes (fixes, new features, refactoring, new environments) can break unchanged parts, uncover old bugs or reintroduce fixed ones.

Slide 4 / 17

‡‰”‡••‹‘‡•–

Slide 4: ‡‰”‡••‹‘‡•–

Notes

  1. Regression test: re-test a previously tested program after modification to make sure no new defects were introduced in unchanged areas.

Exam angle

PredictionQ1

Regression testing is performed:

Slide 5 / 17

‡‰”‡••‹‘‡•–‹‰

Slide 5: ‡‰”‡••‹‘‡•–‹‰
Slide 6 / 17

‡‰”‡••‹‘‡•–

Slide 6: ‡‰”‡••‹‘‡•–

Notes

  1. Keep a test suite, run it after every change, compare with previous results, add new tests as needed.

Slide 7 / 17

‡‰”‡••‹‘‡•–‹‰

Slide 7: ‡‰”‡••‹‘‡•–‹‰
Slide 8 / 17

‡‰”‡••‹‘‡•–

Slide 8: ‡‰”‡••‹‘‡•–
Slide 9 / 17

‡ƒ•‘•

Slide 9: ‡ƒ•‘•
Slide 10 / 17

ƒ•‹ ”‘„އ•‘ˆ‡‰”‡••‹‘‡•–

Slide 10: ƒ•‹ ”‘„އ•‘ˆ‡‰”‡••‹‘‡•–

Notes

  1. Problems: maintaining the test suite, and the cost of re-testing (proportional to product size, not change size).

Slide 11 / 17

‡•–ƒ•‡ƒ‹–‡ƒ ‡

Slide 11: ‡•–ƒ•‡ƒ‹–‡ƒ ‡
Slide 12 / 17

„•‘އ–‡ƒ†‡†—†ƒ–

Slide 12: „•‘އ–‡ƒ†‡†—†ƒ–

Notes

  1. Obsolete test: no longer valid for the changed system. Redundant test: doesn’t differ significantly from others.

Slide 13 / 17

‡Ž‡ –‹‰ƒ†”‹‘”‹–‹œ‹‰‡‰”‡••‹‘‡•–ƒ•‡•

Slide 13: ‡Ž‡ –‹‰ƒ†”‹‘”‹–‹œ‹‰‡‰”‡••‹‘‡•–ƒ•‡•

Notes

  1. Selection: run only the tests relevant to the change. Prioritization: run the most important ones first when time is short.

Slide 14 / 17

‘†‡ƒ•‡†‡‰”‡••‹‘‡•–‡Ž‡ –‹‘

Slide 14: ‘†‡ƒ•‡†‡‰”‡••‹‘‡•–‡Ž‡ –‹‘

Notes

  1. Code-based selection: only tests that execute changed or new code.

Exam angle

PredictionQ1

Selecting only the tests that execute modified code is:

Slide 15 / 17

’‡ ‹ˆ‹ ƒ–‹‘ƒ•‡†‡‰”‡••‹‘‡•–‡Ž‡ –‹‘

Slide 15: ’‡ ‹ˆ‹ ƒ–‹‘ƒ•‡†‡‰”‡••‹‘‡•–‡Ž‡ –‹‘
Slide 16 / 17

”‹‘”‹–‹œ‡†‘–ƒ–‹‰‡Ž‡ –‹‘

Slide 16: ”‹‘”‹–‹œ‡†‘–ƒ–‹‰‡Ž‡ –‹‘

Notes

  1. Prioritized rotating selection: run all tests eventually, some sooner (round robin, track record of finding faults, structural coverage).

Slide 17 / 17

—ƒ”›

Slide 17: —ƒ”›