A bug is a general term used to describe any unexpected problem with hardware or software. For example, Grace Hopper logged and taped a moth bug in a log book, as shown below, that caused issues with the Mark II after it was discovered in one of its components. Grace Hopper's moth is often considered the first use of the term bug. However, there are other earlier accounts of a bug being used to describe a problem with electrical circuits and hardware.
As complex as computers, hardware, and computer software is today, there is no such thing as bug-free software or hardware. When bugs are discovered, software bugs are fixed by running software patches and resolvable hardware bugs are fixed with firmware updates and drivers. In the case of more serious hardware bugs, the resolution may be to replace the hardware device.
The time it takes to resolve a bug depends on how complex a problem is that relates to the bug, how many developers are working on the problem, and how much time they're given. If you believe you've found a bug in a program or device, reporting the bug to the manufacturer is the best way of getting the bug resolved.
What is the difference between an error and bug?
An error is a message shown to the user of a program, and a bug is a problem in the code that is causing the error to be shown. See our error page for a full explanation and examples of computer errors.