Bug, herhangi bir bilgisayar programında veya bir donanım sisteminde bir hata, arıza veya kusur anlamına gelir. Bir hata, beklenmeyen sonuçlar üretir veya bir sistemin beklenmedik şekilde davranmasına neden olur. Kısacası, bir programın veya sistemin aldığı ancak yapmak üzere tasarlanmamış herhangi bir davranış veya sonuçtur.
9 Eylül 1947’de, ABD Donanması tarafından işletilen Mark II bilgisayarındaki bir hata, iki elektrik rölesi arasında sıkışan bir güveden kaynaklandı. Onu bulan operatör William Burke, o kadar eğlendi ki, güveyi aldı ve “İlk gerçek hata bulundu” açıklamasıyla bir kayıt defterine yerleştirdi. Bu bir kelime oyunuydu ve kesinlikle bu kelimenin hataları belirtmek için kullanıldığı ilk sefer değil. Kayıt defteri şimdi, Smithsonian Enstitüsü’nün Ulusal Amerikan Tarihi Müzesi’nde sergileniyor ve güve hala takılı durumdadır.
“Bug” teriminin ilk olarak bir şeydeki hataları belirtmek için ne zaman kullanıldığı açık değildir. 19. yüzyıl mucidi Thomas Edison, bir ortağına yazdığı mektupta, hataların buluş sürecinde daha sonra ortaya çıktığını ve ürünün ticarileştirilmesinden önce düzeltilmesinden daha fazla zamana ihtiyaç duyulacağını belirtti.
Hatasız çalışma üretmek genellikle herhangi bir yazılım geliştiricisinin veya tasarımcının hedefidir. Gerçekte, hatasız bir ürün elde edilmesi çok zor (ve pahalı) bir iştir. Bazı hatalar önemsiz rahatsızlıklara neden olabilir, ancak diğerleri ciddi zararlara ve hatta ölüme neden olabilir ve olmuştur. Gelişmiş tasarım ve uygulama teknolojilerinin çoğu, hataların sayısını ve ciddiyetini önlemeyi ve söz konusu kusurların üretim sürecinde mümkün olduğunca erken tespit edilip ortadan kaldırılmasını amaçlar. Bu hataları kaldırma işlemine hata ayıklama denir.