SE401 · Annotated SlidesRegression Testing — Regression Testing
Regression Testing · Annotated slides

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).

Slide text Study notes Highlight: key words Tips, tricks & traps Seen again elsewhere How it can come up
Slide 1: Slide 1
Exam weight Low
    Slide 2: —–Ž‹‡
    Exam weight Low
      Slide 3: ‘ˆ–™ƒ”‡˜‘Ž—–‹‘
      Exam weight Low
      1. Changes (fixes, new features, refactoring, new environments) can break unchanged parts, uncover old bugs or reintroduce fixed ones.
      Slide 4: ‡‰”‡••‹‘‡•–
      Exam weight High
      1. Regression test: re-test a previously tested program after modification to make sure no new defects were introduced in unchanged areas.
      🎯 How this can come up · 1 question
      MCQ

      Regression testing is performed:

      Slide 5: ‡‰”‡••‹‘‡•–‹‰
      Exam weight Low
        Slide 6: ‡‰”‡••‹‘‡•–
        Exam weight Low
        1. Keep a test suite, run it after every change, compare with previous results, add new tests as needed.
        Slide 7: ‡‰”‡••‹‘‡•–‹‰
        Exam weight Low
          Slide 8: ‡‰”‡••‹‘‡•–
          Exam weight Low
            Slide 9: ‡ƒ•‘•
            Exam weight Low
              Slide 10: ƒ•‹ ”‘„އ•‘ˆ‡‰”‡••‹‘‡•–
              Exam weight Low
              1. Problems: maintaining the test suite, and the cost of re-testing (proportional to product size, not change size).
              Slide 11: ‡•–ƒ•‡ƒ‹–‡ƒ ‡
              Exam weight Low
                Slide 12: „•‘އ–‡ƒ†‡†—†ƒ–
                Exam weight Low
                1. Obsolete test: no longer valid for the changed system. Redundant test: doesn’t differ significantly from others.
                Slide 13: ‡Ž‡ –‹‰ƒ†”‹‘”‹–‹œ‹‰‡‰”‡••‹‘‡•–ƒ•‡•
                Exam weight Low
                1. Selection: run only the tests relevant to the change. Prioritization: run the most important ones first when time is short.
                Slide 14: ‘†‡ƒ•‡†‡‰”‡••‹‘‡•–‡Ž‡ –‹‘
                Exam weight High
                1. Code-based selection: only tests that execute changed or new code.
                🎯 How this can come up · 1 question
                MCQ

                Selecting only the tests that execute modified code is:

                Slide 15: ’‡ ‹ˆ‹ ƒ–‹‘ƒ•‡†‡‰”‡••‹‘‡•–‡Ž‡ –‹‘
                Exam weight Low
                  Slide 16: ”‹‘”‹–‹œ‡†‘–ƒ–‹‰‡Ž‡ –‹‘
                  Exam weight Low
                  1. Prioritized rotating selection: run all tests eventually, some sooner (round robin, track record of finding faults, structural coverage).
                  Slide 17: —ƒ”›
                  Exam weight Low