Hata Ayıklama

Bu ünitede, hata kavramının ortaya çıkışından başlanarak hata türlerinden örnekleriyle birlikte bahsedilmiştir. Hata ayıklama prensiplerinden ve yaklaşımlarından da söz edilmiştir. Çalışma zamanında oluşan hataların ayıklanması için geliştirilen istisnai durum yönetimine de değinildikten sonra hata ayıklayıcı programlarda kullanılan araçlar incelenmiştir.

Hata (bug), bir bilgisayar sistemi tarafından üretilen beklenmeyen ya da doğru olmayan sonuçtur.

Söz dizim (syntax) hatası, programlama dilinin yazım ve gramer kurallarının ihlal edilmesidir. Bu tür hatalar derleyici tarafından tespit edilip işaretlenir.

Noktalı virgül hatası, tanımlanmamış değişken, kapatılmayan parantez, bitmeyen blok, bitmeyen metinsel ifade, return eksikliği, parametre uyuşmazlığı ve tip uyuşmazlığı söz dizimsel hatalara örnek verilebilir.

Anlam bilimsel hatalar, dil bilgisi hatası barındırmadığı için derleyiciler tarafından tespit edilememektedir.

Anlam bilimsel hatalar çalışma zamanı hataları ve mantık hatalarıdır. Çalışma zamanı hataları programın çakılmasına, mantık hataları ise yanlış sonuçlar veya çıktılar üretilmesine sebep olmaktadır.

Hata ayıklama, teşhis algoritması ve hata düzeltme algoritmalarının birleşiminden oluşur.

Hatanın teşhis edilmesinde insan düşüncesini ve şuuraltını devreye sokabilir; hatayı başkasına anlatabilir veya deneme yanılma yoluna gidebilir.

Hatanın izi yani belirtisi hatanın kendisi olmadığından, izini kaybetmekle hata düzeltilmiş olmamaktadır.

Hata düzeltme sonrasında programın yeniden test edilmesi ve başka hataların ortaya çıkmadığından emin olunması gerekmektedir.

Hata ayıklama yaklaşımları; brute force yaklaşımı, tümevarım yöntemi, tümden gelim yöntemi, geriye doğru hata ayıklama ve test ederek hata ayıklamadır.

Test, üç aşamalı olarak uygulanabilir: Dahili test, harici test ve kullanıcı testi

Test aşamalarının başarısını etkileyen en önemli faktör, veri setlerinin doğru seçilmesidir. Veri setleri, bütün hata durumlarını içermelidir.

Anlam bilimsel hataların ayıklanmasında üç yöntem kullanılmaktadır: El ile izleme, program izleme ve sistem etkileşimli hata ayıklama

Çalışma zamanı hatalarını tespit edip müdahale edebilmek için gelişmiş derleyicilerde, istisnai durum yönetimi bulunmaktadır. İstisnai durum yönetiminde her bir hata durumu bir sınıfa karşılık gelmektedir.

Program “Debug” modda derlendiğinde dosyalarda hata ayıklama bilgisi yer alır; ancak optimizasyonlar kapalıdır.

Kesme noktası, program çalışırken ilgili satırda çalışmanın durdurulmasını sağlar. Böylece programın akışı takip edilebilmekte ve değişken değerleri anlık olarak takip edilebilmektedir.

Geçici bir kesme noktası eklemek için “İmlece Git” (Ctrl + F10) uygulanabilir.

Kesme noktasına koşul eklendiğinde sadece bu koşul sağlandığında program akışının durdurulması sağlanabilmektedir.

Bir programın hatasızlığı ve doğruluğu, kilitlenmelerin bulunmaması, yürütme işinin deterministik olması ve hata töleransı gibi bazı özelliklerin olması ile tanımlanmaktadır.