1
EXE RANK
csbugra
Fexe Kullanıcısı
Hata ayıklama
bir bilgisayar programında ya da elektronik donanımda hataları bulmanın
kusurları düzeltmenin ve bütün bunların sayılarını en aza indirmenin yoludur. Hata ayıklama işlemi sonunda
bu işi uyguladığımız yazılımın ya da donanımın istediğimiz ve beklenen şekilde çalışması gerekir. Yanlız hata ayıklama işleminin çok dikkatli yapılması gerekir; çünkü diğerleriyle sıkı ilişkilendirilmiş bir programdaki küçük bir hatayı düzeltmek
diğer programda hiç beklenmedik bir hata yaratmaya sebep olabilir.
Şimdi bu terimin nasıl kullanılmaya başlandığına bir göz atalım. Aslında bu terimin ortaya çıkışı pek net olmamakla birlikte
ilk olarak
1945 yılında yayınlanan uçak motorunun test edilmesi konulu bir makalede kullanılmıştı. Bundan sonra Oxford'un sözlüğünde yer almaya başladı; fakat o zamanlar daha bilgisayar terimi olarak kullanılmıyordu. Nitekim bilgisayarlar onlarla ilgili özel terimler kullanılmaya başlanacak kadar yaygın değillerdi. 1950'lerin başında bu terim ilk kez bir yazılımdaki hatayı düzeltme anlamında kullanıldı. Ve bu ilk diğer ilklerden biraz daha farklıydı
Bu farkı kılan hikaye ise şöyle: Elektromekanik bilgisayarı için 1950'li yıllarda program geliştiren Grace Hopper isimli ünlü kadın programcı
hatalı çalışan programındaki problemi bir türlü bulamıyormuş. Uzun aramalar sonucunda
bilgisayarın röleleri arasında sıkışmış kalmış bir böcek ölüsünün bütün sorunların kaynağı olduğu anlaşılmış. Böylece bug kelimesi bilgisayar bilimine girmiş. Bundan sonra 1952'de yayımlanan ACM (Association for Computing Machinery)'nin üç makalesinde hata ayıklama terimi bilgisayar bilimine uygun kullanıldı. 1963'ten sonra daha da yaygın olmaya başladı. Hatta bu terim CTSS (Compatible Time-Sharing System)'nin el kitabında açıklama yapılmadan yer aldı. O zamandan beri de şu an kullandığımız haliyle bilgisayar biliminde yer almaya başladı.
Böcek temizlemenin tarihsel ve etimolojik anlamını inceledik
gelin şimdi hata ayıklamanın yöntemine bakalım. Hata ayıklama genel olarak karmaşık ve bir o kadar da yorucu bir iş. Fakat
bir programdaki hataları düzeltmek için harcadığımız efor
kullandığımız programlama diline göre değişiyor. Her dilin kendine özgü hata ayıklama programları var. Bu programlar bizim programın gidişatına göz atabilmemizi
istediğimiz yerde durdurup tekrar çalıştırabilmemizi
programa durma noktaları koyabilmemizi
değişkenlerin değerleriyle oynayabilmemizi sağlıyor. Örneğin
Java gibi üst seviye bir dilde hata ayıklamak; kural dışı durumları yakalama ve o durumda ne yapacağını bilme özelliği (exception handling) nedeniyle daha kolayken
C yada Assembly gibi daha eski dillerde hata ayıklama programları bazen bilgisayar hafızasındaki veri kaybına bile neden olabiliyor. Bu yüzden yapmamız gereken işlemleri iyi bilmemiz ve dikkatli olmamız gerekiyor. Yani başka bir deyişle
hata ayıklama işlemini kendimiz yapabilmek için birtakım aşamaları gerçekleştirmeye ihtiyacımız var. Genelleştirilmiş olarak bu aşamalar
bir problemimiz var demektir. Bu aşamada hatayı bulup
ne olduğunu teşhis etmemiz gerekir. İkinci aşamamız hatayı tekrarlamadır. Yani bulduğumuz hatayı kendimiz normal çalışan ortamlarda yaratmalıyız. Bu aşama hataya sebep olan şeyleri daha rahat analiz edebilmemiz açısından çok önemlidir. Yani
artık hataya giden aşamaları kendimiz rahatlıkla bulabiliriz. Kendimiz üretebildiğimiz bir şeyi düzeltmemiz
tabi ki daha kolaydır. Şimdi sırada hatayı anlama kısmı var. İlk iki aşamadan sonra hatayı iyice öğrenmiş olduk. Bundan sonra hatayı nerede aramamız gerektiğini de biliyoruz. Nereden kaynaklandığını düşünüyorsak
yazılımın ya da donanımın içinde hatayı bulmamız gerekir. Son olarak tek yapmamız gereken şey hatayı düzeltmektir. Artık hatanın yerini
hataya neyin sebep olduğunu bildiğimize göre; düzeltmek çok da zor olmamalıdır. Bütün bu aşamaları izlediğimizde hata ayıklama işlemini tamamlamış oluruz.
Peki hata ayıklama işlemi bize yazılım ve donanım geliştirmenin hangi aşamalarında yardımcı olur? Tek seferde hatasız olarak kod yazmamız
yazılım geliştirmemiz çok da kolay değildir. Mutlaka birtakım problemlerle karşılaşırız. Hataları ayıklama yöntemini kullanarak işimizi daha hızlı bir şekilde bitirebiliriz. Çünkü
yukarıda da bahsettiğim gibi hemen hemen her programlama diline uygun hata ayıklama programları var. Hata ayıklama işlemi için özelleşmiş bu programları kullanarak bu aşamaları çok daha hızlı ve emin adımlarla da yerine getirebiliriz. Bu programlar içinden en yaygın kullanılanı GDB (GNU Project Debugger) olup
bu programın kullanımı hakkında ayrıntılı bilgiyi Ekim 2007 sayımızdaki GDByazımızda bulabilirsiniz. Uzun uzun kodlar içine gömülmektense
hata ayıklama yöntemiyle direk hatanın olduğu yeri tespit edebiliriz. Bu da bize hem kolaylık sağlar
hem de zamandan tasarruf etmemize yardımcı olur. Ayrıca
düzeltene kadar izlediğimiz aşamalar da yaptığımız işi daha iyi irdelememizi sağlar. Böylece hata sayısını azaltmak ve hata oluştuğunda müdahale edebilmek için gerekli alt yapıyı hazırlamak
yazılım geliştirme aşamasında uygulamamızı daha başarılı kılmakla beraber
yazılım uzmanlığı konusunda deneyimimizi de arttırır.
Kaynaklar:










Böcek temizlemenin tarihsel ve etimolojik anlamını inceledik











- Hatayı tanımlamak
- Hatayı tekrarlamak
- Hatayı anlamak
- Hatayı düzeltmektir.






Peki hata ayıklama işlemi bize yazılım ve donanım geliştirmenin hangi aşamalarında yardımcı olur? Tek seferde hatasız olarak kod yazmamız








Kaynaklar: