Bug je anglický výraz pro jakoukoli nepředvídatelnou nebo nechtěnou chybu, nedostatek nebo anomálii ve funkčnosti softwaru. Důsledkem takové chyby jsou nesprávné nebo neočekávané výsledky produkované programem/systémem. Bugy můžou být způsobeny nesprávnými algoritmy, logickými chybami, nekonzistencemi ve vstupních datech a dalšími faktory.
Programové chyby jsou chyby v kódu softwaru, které vedou k neočekávanému chování nebo selhání aplikace, grafické chyby mohou zahrnovat zobrazení nesprávných grafických prvků, nekonzistentní rozložení, nebo jiné vizuální anomálie, výkonové chyby zahrnují pomalé odezvy, neočekávané výpadky či přetížení aplikace a bezpečnostní chyby mohou umožnit neoprávněný přístup k systému, únik citlivých dat a jiné bezpečnostní hrozby.
K tomu, aby byl software vyčištěn od bugů, slouží testing (někdy i beta testing), který probíhá už během samotného vývoje. Tester by měl chyby vyhledat a odstranit. Ne vždy však testing odhalí všechny bugy. Když se na ně přijde až po zprovoznění softwaru, je často odstranění bugů součástí aktualizací.