Yazılım hatası (bug), bir bilgisayar programının veya yazılım sisteminin yanlış veya beklenmeyen bir sonuç üretmesine ve istenmeyen şekillerde davranmasına neden olan bir hata, kusur ya da arızadır. Hataları bulma ve düzeltme süreci "hata ayıklama" olarak adlandırılır ve genellikle hataları saptamak için resmi teknikler veya araçlar kullanır. 1950'lerden bu yana bazı bilgisayar sistemleri, yapılan işlemler sırasında çeşitli bilgisayar hatalarını caydırmak, tespit etmek veya otomatik olarak düzeltmek için tasarlandı.[1][2]
Hataların çoğu, bir programın tasarımında, kaynak kodunda ya da bu tür programlar tarafından kullanılan bileşenlerde ve işletim sistemlerinde yapılan hata ve hatalardan kaynaklanır. Geri kalan kısmı derleyicilerin hatalı kod üretmesinden kaynaklanır. Çok sayıda hata içeren ve/veya işlevselliğini ciddi şekilde aksatan hatalar içeren bir programın "buggy" (arızalı) olduğu söylenir. Hatalar, dalga etkisi yapabilecek hataları tetikleyebilir. Hataların hemen fark edilmeyen etkileri olabilir veya programın çökmesine/bilgisayarın donmasına neden olabilir. Diğer hatalar güvenlik hataları olarak nitelendirilir ve örneğin, kötü niyetli bir kullanıcının yetkisiz ayrıcalıklar elde etmek için erişim kontrollerini atlamasını sağlayabilir.[3]
Orta İngilizce'de bugge kelimesi, yaratıklar için kullanılan terimler olan "bugbear" ve "bugaboo" kelimelerinin temelini oluşturmaktadır.[4] Kusurları tanımlamak için kullanılan "bug" ("böcek") terimi, elektronik bilgisayarlar ve bilgisayar yazılımlarından daha eskidir ve 1870'lerden beri mühendislik jargonunun bir parçasıdır; terimin ilk kullanım alanı, donanım mühendisliğindeki mekanik arızaları tanımlamak olarak tahmin edilmektedir. 1878'de Thomas Edison, bir iş arkadaşına yazdığı mektupta tekniksel bir işlev bozukluğunu anlatmak için "bug" kelimesini kullandı.[1][5][6][7]
Kaynakça