První Murphyho zákon programování říká, že neexistuje program, který by byl zcela prost chyb. Dodatek k tomuto zákonu poté praví, že každé odstranění libovolné chyby zanese do programu chybu jinou, skrytou a zákeřnější. To znamená, že není možné vytvořit program, který by byl zcela bez chyb. Libovolný softwarový produkt (program, knihovna, ale i linuxová distribuce) bude vždy obsahovat nějaké chyby.
Softwarová chyba – (jiné názvy: defekt, bug, moucha)
O chybě hovoříme, když je splněna jedna nebo více z následujících pravidel:
- Software nedělá něco, co by dle specifikace měl dělat.
- Software dělá, něco, co by podle údajů specifikace neměl dělat.
- Software dělá něco, o čem se specifikace nezmiňuje.
- Software dělá něco, o čem se specifikace nezmiňuje, ale měla by se zmiňovat.
- Software je obtížně srozumitelný, těžko se s ním pracuje, je pomalý, nebo – podle názoru testera – jej koncový uživatel nebude považovat za správný.
Některé druhy chyb:
- algoritmická chyba
- chyba syntaxe
- chyba výpočtu a přesnosti
- chyba dokumentace
- chyba stresu nebo přetížení
- chyba kapacity nebo meze
- časová nebo součinnostní chyba
- chyba propustnosti nebo výkonu
- chyba zotavení
- chyba HW a systémového SW
- chyba nedodržení standardů a procedur
Fault – chyba (defekt):
1. Chyba v kódu, která může být příčinou jednoho nebo více selhání.
2. Náhodná podmínka, která způsobuje, že funkční jednotka selhává při plnění požadované funkce. (synonymum: bug)
Error – chyba (omyl) – nesprávná nebo chybějící akce uživatele, která zapříčiní chybu (defekt) v programu.