Program errors, bugs, are logical errors within programs that cannot be found when the compilerchecks the syntax. They only appear during execution when the program reaches a certain state or has to process certain data constellations. Typical bugs are therefore runtime errors.
Programmers use special programs, the debuggers, to track down bugs in their own programs. In addition, automated software tests that can detect bugs without human assistance are becoming increasingly common.
The English term bug for technical errors was already used by Thomas Edison in the 19th century and experienced a renaissance in the 1940s, when actual insects caused malfunctions in the first mainframe computers, which were still working mechanically. When a bug is fixed by an update, it is called a bugfix or patch. Such a bug fix can correct errors and close existing security gaps.