Iâve had an interview question on TestGorilla where the following were expressed:
- Regression testing ensures the recent changes in the software code have not affected the unaltered sections.
- Retesting establishes that the failed test cases are passed after the defect is fixed.
- Regression testing includes no defect verification, retesting does.
True / False
Now searching about âretesting and regression testingâ on Google I get dozens of sites that mention similar statements.
But, in my head, I have so many issues with this, and itâs so strange because I find almost nothing stating otherwise or contradicting these.
Especially since these days a lot of interviews rely on popular questions that you find on a Google search, Iâm worried Iâm being left behind somewhat if I donât study that alternative path.
Here are my comments:
- âregression testing ensuresâ: it does not ensure anything, testing doesnât show the absence of bugs, but searches for their presence.
- âregression testing ⌠recent changes in the software codeâ: changes can happen without touching the code, the system, or the software - isnât testing that happens for those changes also regression testing? and what does recent even mean, how is a ârecent changeâ different from a âchangeâ - you donât do regression testing unless itâs recent?
- âhave not affected the unaltered sectionsâ - is regression testing not covering changed areas?
- âretesting establishes that the failed test casesâ - getting over the âtest casesââŚis retesting limited to the same ideas as before being blocked?
- âretesting ⌠after the defect is fixedâ - canât you retest without a defect fix? what if you want to study the area more deeply, with new tools, or vary the data, to uncover new defects?
- âretesting establishes - test case passed - after defect fixâ - itâs not âestablishedâ, as we wouldnât know if a developerâs defect fix actually fixed the problem or didnât introduce a new one in the same changed area; and the scope of retesting seems to be the setting of a test case to pass, and I wonder why itâs not to actually search for trouble; whatâs the technique used to test for âdefect fixâ if the scope for retesting is to establish the test case to âpassedâ after the defect fix?
- âregression testing includes no defect verification, retesting doesâ - so if I do regression testing and find bugs, my regression testing stops, I do retesting then, then again regression? isnât regression testing repeating testing(retesting?); retesting can include no defect verification as well in case I do it for different reasons;
Bach and Kaner in a 1999 paper(Paradigms of Black Box Software Testing) mention this:
- Regression testing: Repeat testing after changes
- Goal: Manage the risks that (a) a bug fix didnât fix the bug or (b) the fix (or other change) had a side effect.
- Paradigmatic cases: Bug regression, old fix regression, general functional regression
Another large paper on Regression testing from Kaner:
I like Kanerâs and Bachâs views very much and itâs what Iâm thinking of when repeat testing(retesting) and regression testing pop up.