Bug (Böcek), donanım veya yazılımla ilgili olarak meydana gelen herhangi beklenmeyen sorunu tanımlamak için kullanılan bir terimdir. Bu hatalara böcek denilmesinin birçok farklı nedeni olmasına karşın, halk arasında en yaygın bilinen nedeni bir zamanlar ilk bilgisayarlardan birinin bozulmasına bir böceğin neden olduğu hadisedir.
Donanım Kaynaklı Bug
Günümüzde artık donanım kaynaklı bugların ortaya çıkma sayısı düşünülenin çok daha altındadır. Tüm kompleks yapısına karşın geçirdiğimiz yıllar içerisinde bilgisayarlar üreticileri bilgisayarları oldukça iyi tahlil edilmiş ve hangi durumlarda donanımların hatalara sebep olabileceği ince hesaplar sonucunda ulaşmıştır.
Bu nedenle donanım kaynaklı yapılan hatalar günümüzde artık neredeyse hiç denecek kadar az görülmektedir. Donanım üzerinde meydana gelen buglar ilk aşamada yazılımlarla giderilmeye veya optimize edilmeye çalışılır. Yazılımsal olarak sorunun giderilemediği taktirde hatalı olan donanımların işlem görmesi veya yenisiyle değiştirilmesi gerekir.
Yazılım Kaynaklı Bug
Bugların birçoğunun meydana gelmesinin nedeni çoğunlukla yazılımların hazırlanması aşamasında yazılımcılar tarafından yapılan veya gözden kaçan hatalardır. Çoğunlukla her kullanıcının yaşadığı yazılımsal bug'ların giderilmesi son derece basittir. Herhangi bir yazılımda Bug bulunduğunda bunu giderecek üretici veya yazılımcıya erişilir. Yazılımcı kaynak kodları arasında bir inceleme gerçekleştirdikten sonra hataya neyin neden olduğunu çözümler ve bu hatanın çözümü için son kullanıcıların yapabileceği işlemleri aktarır veya daha otomatikleştirilmiş bir çözüm olarak yama/patch yayınlar. Bu yamayı bilgisayarlarına yükleyen kullanıcılar kodlar üzerinde hiçbir değişiklik yapmasına gerek kalmaksızın değişiklikler otomatik olarak yapılır ve sorun çözüme ulaştırılır.