Topic: bugs

topics > computer science > programming > Group: debugging

bug tracking system
consistency testing
debugging by usage rules
design errors
error checking in robot programming
exceptions and undesired events
numerical error
preventing accidental errors
quality assurance
software review
specification errors
spelling errors
usability errors


A bug is an unintended phenomenon, a breakdown of the program's structure. Bugs occur in even the most carefully programmed and tested software. But bugs are often very simple things: a typographical error, a misplaced comma, forgetting to initialize a variable, calling the wrong procedure, or using the wrong arguments. Simple bugs like these should be preventable or at least detectable. Design flaws will always exist, but if most new software can be built from old, these flaws will rarely occur. (cbb 5/80)
Subtopic: bugs as natural up

Quote: design flaws are inevitable; use defense-in-depth to avoid, find, and survive mistakes [»colwRP_2006]
Quote: programming is difficult because it is almost impossible to avoid blunders; main difficulty in using computers [»glenAE2_1953]
Quote: everyone makes dumb mistakes; a huge number of bugs are just one step away from a syntax error; e.g., typing || instead of && [»hoveD12_2004]
Quote: it is easy to make expensive programming errors; the EDSAC group developed techniques to avoid or detect errors before execution and to locate errors after execution [»wilkMV_1951]
Quote: errors occur frequently in numeric tables; corrections to the Nautical Almanac were themselves in error [»babbC_1864, OK]
Quote: system accidents naturally occur in systems with interactive complexity and tight coupling; e.g., nuclear power plants [»perrC_1984]
Quote: the cards for the Analytical Engine may contain errors; but once developed, they are valid for an infinite number of particular cases [»menaLF10_1842, OK]
Quote: running the web crawler generated a fair amount of e-mail and phone calls; need to solve problems as they occur [»brinS4_1998]
Quote: the New York Times contains about one mistake per thousand; similar to programmers [»holzGJ11_2002]
Quote: experimentally derived protocols for TCP/IP and Sockets identified many behavioural anomalies and explicit OS version dependencies [»bishS1_2006]

Subtopic: what is a bug up

Quote: a software error is unintended phenomenon in either the specification or program [»hamiM_1978]
Quote: a lot of debugging is knowing which structures are intact; i.e., a bug is the breaking of some structure [»cbb_1973, OK]
Quote: a software error is a combination of illegal actions, incorrect paths, and wrong results [»abboRJ3_1990]
Quote: in a digital device, changing a single bit can have drastic consequences; a radical novelty of computers [»dijkEW12_1989]
Quote: a decomposition error occurs when a programmer makes a false assumption about some other part of the program
Quote: software errors often occur when information is lost because it is not part of the program [»howdWE1_1990]

Subtopic: bug sighting up

Quote: report all sightings of bugs; incidents that could have a bug as its cause; a validation engineer attempts to reproduce it [»colwRP_2006]

Subtopic: nasty bugs up

Quote: identifying a misconfiguration of a fully-racked, benchmark machine took nearly a week, full-time, around the globe [»cantB2_2006]

Subtopic: bugs vs. change up

Quote: change is the primary agent of faults; large, recent changes are the most likely to fail; frequency of change is a better predictor of faults than size of module or number of developers [»eickSG1_2001]

Subtopic: bugs vs. files up

Quote: faults tend to concentrate in a few files; by Release 13, faults in 4% of files; partially due to file size and system growth [»ostrTJ7_2002]
Quote: in every release, as many post-release faults were in files with no late-pre-release faults as were found in files with late-pre-release faults [»ostrTJ7_2002]
Quote: moderate evidence that files with many faults in one release remain high-fault files in later releases [»ostrTJ7_2002]

Subtopic: release vs. pre-release up

Quote: fixing a release bug is twice as difficult as fixing pre-release bug

Subtopic: bugs vs. complexity up

Quote: studied bug history of NAG library; bugs proportional to logarithm of complexity [»hattL3_1997]

Subtopic: bugs vs. size up

Quote: smaller components have disproportionally more bugs; best may be 200-400 lines of code
Quote: larger files had lower fault densities [»ostrTJ7_2002]

Subtopic: bugs vs. language up

Quote: C++ bugs took twice as long to correct as C bugs; C++ failure may be a long way away from the error [»hattL5_1998]

Subtopic: bugs in non-deterministic software up

Quote: difficult to test non-deterministic software because of limited observability and limited controllability [»holzGJ11_2002]
Quote: use static analysis, symbolic interpretation, reachability, and logic model checking for non-deterministic software; but bugs will still remain

Subtopic: making bugs visible up

Quote: PL.8 optimizer bugs produce catastrophic results since optimizer applies to all code; regression test of 150 self-checking programs [»auslM6_1982]
Quote: visually inspect every bit of analysis and code; most errors are obvious [»roycWW8_1970]
Quote: with enough testers and developers, every problem can be identified and fixed easily; debugging is parallelizable, unlike development [»raymES3_1998]

Subtopic: types of bugs up

Quote: check sheets miss errors due to preconceived ideas, insufficient test cases, not checking alterations, or alternating check sheet but not the program [»turiA3_1951]
Quote: programs can be nonsense, illegal, almost working, fragile, suspicious, wrong, or correct [»scowRS3_1982b, OK]
Quote: a mild bug offends aesthetically: spelling error or misaligned printout
Quote: a disturbing bug refuses to handle legitimate transactions
Quote: an intolerable bug corrupts the database invisibly; the system should be shut down [»beizB_1984]

Subtopic: reproducible bug report up

Quote: short, anonymous error reports by symbolic execution of failed executions and an SMT solver of the path expression; Satisfiability Modulo Theory [»castM3_2008]

Subtopic: not reproducible up

Quote: if a bug sighting is not reproducible, move it to the anomalies list; remove from the sightings/bug database [»colwRP_2006]

Subtopic: latent bug up

Quote: use bug checkers for latent bugs; e.g., a covariant equals method works until someone adds the class to a map or set; another latent bug is hashcode/equals [»hoveD12_2004]

Subtopic: bug vs. errors up

Quote: should not call them 'bugs' because they are really errors; they don't maliciously sneak in [»dijkEW12_1989]
Quote: a program fails because of a new input sequence; so can talk about the failure rate of software [»parnDL6_1990]

Subtopic: bugs causing bugs up

Quote: an infectious bug corrupts other systems; e.g., a nuclear meltdown or causes a war [»beizB_1984]
Quote: structuring a program almost halves the frequency of ripple effect errors [»gibsVR3_1989]
Quote: for every bug ask: is it somewhere else, what bugs does this hide, how is this type of bug prevented [»vanvT7_1989]
Quote: identify erroneous changes by finding bug fixes that changed the same lines as another change [»puruR6_2005]
Quote: 40% of changes to fix errors introduced more errors [»puruR6_2005]

Subtopic: human error up

Quote: human errors are intrinsic to being human [»parnDL2_1986]
Quote: simulated SmartHelp messages had to be generated on the fly since users were too creative and quick in generating errors and misconceptions [»carrJM9_1988]
Quote: a capture error occurs when a frequently done activity captures an unfamiliar activity sharing the same initial stages [»normDA_1988]

Subtopic: hardware error up

Quote: software errors can always be attributed to transient hardware errors [»leveNG7_1993]
Quote: several techniques for delaying or dropping excessive interrupt requests; bounds the work, granularity, and rate of the interrupt context; e.g., the first moon landing nearly aborted due to interrupt overload [»regeJ6_2005]
Quote: early problems with the Therac-25 were blamed on the hardware
Quote: computers do not guarantee absence of hardware faults; breaks proof of soundness of link-time type-checking; e.g., cosmic rays or heat-induced faults [»goviS5_2003]
Quote: for hardware failures, 30% memory, 26% disk, 17% processor; for driver failures, 35% display, 13% anti-virus, 10% CD-burning, 9% audio, 9% modem

Subtopic: studies of bugs up

Quote: list of all corrections to TEX over 10 years [»knutDE7_1989]
Quote: fault analysis of the first 13 releases of an inventory tracking system; 500,000 lines of code, mostly Java [»ostrTJ7_2002]
Quote: CCured identified bugs in ks, compress, ijpeg, and go [»necuGC5_2005]
Quote: most bugs detected prior to beta release; 10 of 78 severity 1 faults detected after release [»ostrTJ7_2002]
Quote: assign one file per fault; if corrected by modifying n files, counts as n faults [»ostrTJ7_2002]
Quote: an experimental study of spreadsheets found 44% contained an error [»browPS7_1987]
Quote: the largest source of errors in nucleotide sequence data is transcription errors during publication
Quote: many operating systems will crash and require a complete restart; often due to incorrect coordination of concurrent activity; better now [»dennPJ_1980]
QuoteRef: boehBW5_1973 ;;57 manned space flight eg Apollo 14 18 errors found (non-fatal)
QuoteRef: boehBW5_1973 ;;57 French meteorological satellite lost 72 of 141 weather balloons cause of bug, early Mariner was lost
Quote: the Ballistic Missile System Early Warning System failed because of the rising moon

Related Topics up

Topic: bug tracking system (34 items)
Topic: consistency testing (60 items)
Topic: debugging by usage rules (41 items)
Topic: design errors (15 items)
Topic: error checking in robot programming (6 items)
Topic: exceptions and undesired events (29 items)
Topic: numerical error (19 items)
Topic: preventing accidental errors (37 items)
Topic: quality assurance (22 items)
Topic: software review (80 items)
Topic: specification errors (10 items)
Topic: spelling errors (18 items)
Topic: usability errors
(6 items)

Updated barberCB 11/05
Copyright © 2002-2008 by C. Bradford Barber. All rights reserved.
Thesa is a trademark of C. Bradford Barber.