Topic: bug tracking system
Topic: consistency testing
Topic: debugging by usage rules
Topic: design errors
Topic: error checking in robot programming
Topic: exceptions and undesired events
Topic: numerical error
Topic: preventing accidental errors
Topic: quality assurance
Topic: software review
Topic: specification errors
Topic: spelling errors
Topic: usability errors
| |
Summary
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
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
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
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
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
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
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
Quote: fixing a release bug is twice as difficult as fixing pre-release bug
| Subtopic: bugs vs. complexity
Quote: studied bug history of NAG library; bugs proportional to logarithm of complexity [»hattL3_1997]
| Subtopic: bugs vs. size
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
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
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
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
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
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
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
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
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
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
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
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
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
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)
|