A Taxonomy of Bugs

(ruby0x1.github.io)

52 points | by lissine 2 months ago ago

25 comments

  • mannykannot 2 months ago ago

    Here's a step 0 for your debugging strategy: spend a few minutes thinking about what could account for the bug. Prior to its occurrence, you are thinking about what could go wrong, but now you are thinking about what did go wrong, which is a much less open-ended question.

    • marginalia_nu 2 months ago ago

      I've had large success by treating the bug as a binary search problem as soon as I identify an initial state that's correct and a terminal state that's incorrect. It seems like a lot of work, but that's underestimating just how fast binary searches are.

      Depends of course on the nature of the bug whether it's a good strategy.

  • alilleybrinker 2 months ago ago

    There's also the Common Weakness Enumeration (CWE), a long-running taxonomy of software weaknesses (meaning types of bugs).

    https://cwe.mitre.org/

  • marginalia_nu 2 months ago ago

    A subcategory of the design flaw I find quite a lot is the case where the code works exactly as intended, it's just not having the desired effect because of some erroneous premise.

  • readthenotes1 2 months ago ago

    I was such a bad developer that I realized I had to automate the re-running of parts of the system to find the bugs.

    Of course, the code I wrote to exercise the code I wrote had bugs, but usually I wouldn't make offsetting errors.

    It didn't fix all the problems I made, but it helped. And it helped to have the humility when trying to fix code to realize I wouldn't get it the first time, so should automate replication

    • bheadmaster 2 months ago ago

      > I had to automate the re-running of parts of the system to find the bugs

      Congratz, you've independently invented integration tests.

      • tough 2 months ago ago

        I don't always test but adding a lil test after finding and fixing a bug so you don't end up there again a second time is a great practice

        • bheadmaster 2 months ago ago

          Congratz, you've invented regression tests.

      • quantadev 2 months ago ago

        Congrats, you've found someone who failed to invoke a buzzword that you know.

        EDIT: But Acktshally `the code I wrote to exercise the code I wrote` is a description of "Unit Testing", not integration testing.

        • bheadmaster 2 months ago ago

          Unit/integration tests are anything but a buzzword. And my intentions were not to belittle, but to praise.

          Some actions simply make so much sense to do, that any sensible person (unaware of the concept) will start doing them given enough practice, and in process they "reinvent" a common method.

          • quantadev 2 months ago ago

            As far as you knew that guy was aware what Unit Testing was since well before you were born. lol. I'm sure he appreciates all your nice compliments.

            • readthenotes1 2 months ago ago

              I was aware of unit testing before it had a name ... Desperation is the mother of intervention

              • quantadev 2 months ago ago

                Yep, I "independently reinvent" the wheel every day I guess, because I, ya know...use wheels.

            • bheadmaster 2 months ago ago

              Good thing he has knights in shining armor like you to defend him from my nasty insults.

              • quantadev 2 months ago ago

                Good thing you can admit what you were doing.

                • bheadmaster 2 months ago ago

                  Good thing you can understand sarcasm.

                  • quantadev 2 months ago ago

                    but your sarcasm was truthful.

                    • bheadmaster 2 months ago ago

                      but it wasn't.

                      • quantadev 2 months ago ago

                        Well in that case...Congratz, you've invented sarcasm.

                        • bheadmaster 2 months ago ago

                          Congratz, you've invented obnoxiousness.

                          • quantadev 2 months ago ago

                            Not "independently reinvented" ?

          • keybored 2 months ago ago

            > And my intentions were not to belittle, but to praise.

            With the stock eyeroll dismissal phrase.

  • Animats 2 months ago ago

    The Third-Party Bug

    Is the party responsible for the bug bigger than you? If yes, it's your problem. If no, it's their problem.

  • 2 months ago ago
    [deleted]
  • djmips 2 months ago ago

    John Carmack uses a debugger