45

What's the word for a software bug that reoccurs after being fixed?

I'm embarking on some test-driven development (TDD) for a project, and I want to use the right term but have forgotten the word.

It's not reversion, but I think it sounds similar.

Though I've used it many times I can't recollect the term right now, and Google isn't helping me.

Addition 1: The bug is imaginary in this case. It only reappears once, after I fixed, because of a new change I introduce. I'm not talking about something that that keeps on popping up.

Addition 2: The correct answer popped up 7 minutes after asking. The amount of bikeshedding the keeps on coming after that is hilarious.

  • 11
    Gremlins. Clearly something is immanent in the code and keeps getting reborn. – John Lawler Sep 12 '14 at 13:56
  • 23
    Unfixed... – Hugo Sep 12 '14 at 15:48
  • 3
    reopened. – jxh Sep 12 '14 at 17:18
  • 7
    If the bug is still there then, by definition, it wasn't fixed. – David Richerby Sep 12 '14 at 20:54
  • 3
    At that point, we generally call it a feature. – JohnP Sep 12 '14 at 21:12
102

You're looking for "regression".

  • 14
    Regression refers not uniquely to bugs that occur again after fixing. Though the OP was probably looking for this word without knowing its actual meaning. – Vilmar Sep 12 '14 at 13:38
  • 20
    I think of regression as meaning a bug that was introduced as part of new changes (matching e.g. en.wikipedia.org/wiki/Regression_testing and en.wikipedia.org/wiki/Software_regression), which is not quite the word the OP is looking for. en.wiktionary.org/wiki/regression does define it as the OP's word (almost the same terms, even!), though, so there are multiple definitions. – Tim S. Sep 12 '14 at 15:34
  • 2
    Happy to add that regression was definitely the word I was looking for. Also very cool that this answer came within 7 minutes after posting. All the rest is mere fluff. Nice fluff though, especially mandelbug. – guaka Sep 12 '14 at 16:12
  • 2
    For all the commenters who are troubled by "regression", let me offer "relapse" ;) – Dan Bron Sep 12 '14 at 19:31
  • 3
    The meaning is not mixed up. One common meaning of the word "regression" is exactly what the OP asked for. Definitions like "a bug that was introduced as part of new changes" are simply alternate, related meanings. – Kevin Krumwiede Sep 13 '14 at 16:19
26

Such bugs may simply be called recurring bugs. There are even papers on such bugs:

Previous research confirms the existence of recurring bug fixes in software systems...

  • 2
    "Recurring bug fixes" is ambiguous. Is it the bug that recurs, or is it the fix? – Walter Mitty Sep 12 '14 at 20:35
  • 1
    @WalterMitty: Syntactically it is "recurring {bug fix}" (with recurring modifying bug fix, rather than recurring bug modifying fix), but semantically the ambiguity is not that great anyway, since a bug fix can only recur if the bug did, and a bug cannot really "recur", per se, if it isn't fixed in between. Almost the only real difference is that *"{recurring bug} fix" might not imply that the same fix was used each time the bug recurred. – ruakh Sep 13 '14 at 4:56
  • 1
    @WalterMitty Lol. Well you can't have a bug fix without a bug, so saying recurring bug fixes implies recurring bugs. – michaelsnowden Sep 13 '14 at 16:51
19

The bug was reintroduced by a subsequent change, resulting in a regression.

  • 2
    Regression doesn't mean the same thing to a statistician and to a child psychologist. – Walter Mitty Sep 13 '14 at 10:24
  • @WalterMitty which does not invalidate the answer in any way, just two different uses for the same word, plenty of examples of that. If talking about a bug regression the context is 100% clear. – nico Sep 15 '14 at 10:09
  • Fair enough. "regression" is short for "bug regression". Works for me. – Walter Mitty Sep 15 '14 at 10:54
10

UNFIXED.

And that is not the same as regression error. If you try to fix something, deploy it, and it turns out not to be fixed, then it was never fixed! period.

Regression error is when the fix attempt BROKE SOMETHING ELSE THAT PREVIOUSLY WORKED, hence that "something" has regressed.

  • I don't think you read the question (or maybe it was edited?) ... the question clearly indicates that the bug was fixed and then recurs. – GreenAsJade Sep 13 '14 at 7:19
  • 1
    Well, if it was really fixed then it wouldn't occur again. It was being fixed, someone has tried to fix it, even though he or she had fixed it, but eventually the bug hasn't been fixed. – dzieciou Sep 14 '14 at 8:14
  • I say this is the answer for the version of the question I see. If you tried to fix it but just recently found a new set of circumstances that causes the same issue, it was either an unfixed bug or an attempt at fixing a bug that did not fix the issue. – ps2goat Sep 15 '14 at 4:06
  • Someone wrote the faulty code the first time and that lead to some particular symptom. That particular code got fixed. Then someone writes some more code which contains a new bug, but which causes the same symptom. The behavior of the software has regressed. The idea is that the regression test that was created with the original bug fix catches this regression in behavior. See regression testing: "it is … good coding practice, when a bug is located and fixed, to record a test that exposes the bug and re-run that test regularly". – Joshua Taylor Sep 15 '14 at 4:21
  • It's also possible to come up with a fix that conceals the symptom, but doesn't really fix the underlying problem. When that is done, the symptom is likely to show up again, in a slightly different context. – Walter Mitty Sep 15 '14 at 10:53
7

A mandelbug (named after Benoît Mandelbrot's fractal) is a bug whose causes are so complex that it defies repair, or makes its behavior appear chaotic or even non-deterministic.

Reference: http://en.wikipedia.org/wiki/Heisenbug

  • 3
    This is a true statement, but not an answer to the question. – GreenAsJade Sep 13 '14 at 7:18
  • 1
    It is very interesting that you link to an article that says that Heisenbug is the common term for this. Even in its title. – oerkelens Sep 15 '14 at 12:46
  • I've hear the term Mandelbug more commonly in my experience and is a better example of what the OP was asking for. Heisenbug, I feel, refers to a bug that can not easily be tracked down, where the Mandelbug has so many permutations, that a fix in one place causes similar breakage in other places. – stephenbayer Sep 15 '14 at 15:07
  • 1
    @oerkelens: no, the article defines "Heisenbug" and "Mandelbug" to be different things. It's just that for whatever reason they're part of a single article. – Steve Jessop Sep 15 '14 at 16:34
  • @SteveJessop - Having examined Wikipedia's protocols as part of my research I can tell you that the reason the two topics are part of a single article is because they have rules that prevent any subject from having its own article unless certain criteria are met, but allow closely related topics to be subjects within an existing page that has already met those criteria. Read this for a trip down the rabbit hole but be warned you probably will wish you had taken the blue pill. :) – O.M.Y. Aug 1 '16 at 1:52
5

I'm going to give the actual answer to the question:

(1) When you've thought you fixed a bug, but you had not fixed it: in answer to your question, there is no single, common word for this.

As others have suggested you would simply say it is unfixed, reopened, or "not yet fixed".

(2) it would seem you were trying to remember the word "regression".

(i) "regression" has utterly no connection to what you were asking about, but

(ii) nevertheless it's good that the word on the "tip of your tongue" has come to mind

Footnote: the two wikipedia pages are so silly, I mean .. well I'll click over to wikipedia and delete them. of course, you can spend days laughing at "examples of horrifically useless wikipedia pages" so no news there I guess.

  • 1
    +1 @JoeBlow, agreed. It's easy for a monkey "software engineer" to flag it as fixed when it isn't, especially when they don't have thorough test coverage or even use unit testing at all. In this case it did not "regress", i.e. 'revert to an earlier ... behavioral level' (Merriam-Webster) but rather, was never fixed. "Re-opened" seems to be the best description seeing as it was erroneously marked "fixed". – DaveBoltman Sep 13 '14 at 15:11
  • 1
    And, of course, if your code management is sufficiently rotten, you can get the fix removed from the latest code by a phantom code update. – Walter Mitty Sep 13 '14 at 21:40
  • 1
    The Wikipedia article on regression testing is better than the one on software regression, and while the bug isn't a regression (it's the behavior of the software that's regressed), it's a regression test that would catch it: "it is considered good coding practice, when a bug is located and fixed, to record a test that exposes the bug and re-run that test regularly after subsequent changes to the program." – Joshua Taylor Sep 15 '14 at 4:26
  • 2
    Also, from that same article: "Often, a fix for a problem will be “fragile” in that it fixes the problem in the narrow case where it was first observed but not in more general cases which may arise over the lifetime of the software. Frequently, a fix for a problem in one area inadvertently causes a software bug in another area. Finally, it may happen that, when some feature is redesigned, some of the same mistakes that were made in the original implementation of the feature are made in the redesign." Thus why OP thought of "regression", even though the bug itself isn't quite the regression. – Joshua Taylor Sep 15 '14 at 4:28
  • 2
    When you get rid of horrifically useless wikipedia pages, they seem to pop up again in a few days. ;) – Walter Mitty Sep 15 '14 at 10:51
1

One possible alternative, assuming the bug was seemingly fixed until a later change proved otherwise, would be to say the bug has reasserted itself.

protected by RegDwigнt Sep 13 '14 at 13:03

Thank you for your interest in this question. Because it has attracted low-quality or spam answers that had to be removed, posting an answer now requires 10 reputation on this site (the association bonus does not count).

Would you like to answer one of these unanswered questions instead?

Not the answer you're looking for? Browse other questions tagged or ask your own question.