Difference between revisions of "Software bug"
Jump to navigation
Jump to search
(New page: '''Software bugs''' are errors in computer software. Some computer programmers distinguish between coding errors and design flaws, often using the half-joking justification...) |
(→External links: that seems oddly specific. Most major companies have report options at this point.) |
||
| (17 intermediate revisions by 7 users not shown) | |||
| Line 1: | Line 1: | ||
| − | '''Software | + | A '''Software bug''' is an errors in [[computer software]]. These are errors which are introduced accidentally while writing or altering code. |
| + | |||
| + | ==Levels of severity== | ||
| + | |||
| + | There are levels of bugs: | ||
| + | #Crashes the operating system - you lose all your unsaved work in all programs | ||
| + | #Crashes the program - you lose your unsaved work in that program | ||
| + | #Feature stops working or works wrong | ||
| + | #Feature is hard to find ("Can't get there from here") - feature exists, but poorly documented, so you can't find it. | ||
| + | |||
| + | ==Other ways to classify bugs== | ||
| + | * Some [[computer programmer]]s distinguish between [[coding error]]s and [[design flaw]]s, often using the half-joking justification, "That's not a bug. It's a [[feature]]!" | ||
| + | * Often the distinction between a coding error, a design flaw and a feature request is disregarded. Indeed, [[Sun Microsystems]] maintains a [http://bugs.sun.com/ bug parade] for their [[Java]] platform which lets everyone in the world vote for a bug fix or feature request. | ||
| + | |||
| + | ==The need for vigilance== | ||
| + | |||
| + | Speaking of one particularly embarrassing software bug, world class [[Java]] expert [[Joshua Bloch]] wrote: | ||
| + | * The general lesson that I take away from this bug is humility: It is hard to write even the smallest piece of code correctly, and our whole world runs on big, complex pieces of code. We programmers need all the help we can get, and we should never assume otherwise. Careful design is great. Testing is great. Formal methods are great. Code reviews are great. Static analysis is great. But none of these things alone are sufficient to eliminate bugs: They will always be with us. A bug can exist for half a century despite our best efforts to exterminate it. We must program carefully, defensively, and remain ever vigilant. [http://googleresearch.blogspot.com/2006/06/extra-extra-read-all-about-it-nearly.html] | ||
| + | |||
| + | |||
| + | |||
| + | [[Category:Computers]][[Category:Software]] | ||
Latest revision as of 23:00, December 1, 2020
A Software bug is an errors in computer software. These are errors which are introduced accidentally while writing or altering code.
Levels of severity
There are levels of bugs:
- Crashes the operating system - you lose all your unsaved work in all programs
- Crashes the program - you lose your unsaved work in that program
- Feature stops working or works wrong
- Feature is hard to find ("Can't get there from here") - feature exists, but poorly documented, so you can't find it.
Other ways to classify bugs
- Some computer programmers distinguish between coding errors and design flaws, often using the half-joking justification, "That's not a bug. It's a feature!"
- Often the distinction between a coding error, a design flaw and a feature request is disregarded. Indeed, Sun Microsystems maintains a bug parade for their Java platform which lets everyone in the world vote for a bug fix or feature request.
The need for vigilance
Speaking of one particularly embarrassing software bug, world class Java expert Joshua Bloch wrote:
- The general lesson that I take away from this bug is humility: It is hard to write even the smallest piece of code correctly, and our whole world runs on big, complex pieces of code. We programmers need all the help we can get, and we should never assume otherwise. Careful design is great. Testing is great. Formal methods are great. Code reviews are great. Static analysis is great. But none of these things alone are sufficient to eliminate bugs: They will always be with us. A bug can exist for half a century despite our best efforts to exterminate it. We must program carefully, defensively, and remain ever vigilant. [1]