Yazılım dünyasında sıkça duyduğumuz “bug” terimi, yazılım hatalarını ifade etmek için kullanılır. İlginçtir ki, bu terimin kökeni oldukça eski ve ilginç bir geçmişe dayanır. “Bug” kelimesi ilk kez Thomas Edison tarafından mekanik arızaları tanımlamak için kullanılmıştır. Edison, 1878 yılında Western Union Başkanı William Orton’a yazdığı bir mektupta telefon tasarımındaki bir sorundan bahsederken bu terimi kullanmıştır. Mektupta şöyle yazıyordu: “Bir noktada haklıydınız; cihazımda bir ‘bug’ buldum, ancak sorun telefonun kendisinde değildi. ‘Callbellum’ türü bir böcekti. Görünüşe göre bu böcek, telefonların çağrı mekanizmalarında kendine yaşam alanı bulmuş.” Bu mektup, “bug” teriminin teknoloji dünyasında sorunları tanımlamak için kullanıldığı en eski örneklerden biri olarak kabul edilir. Edison, bu terimi ayrıca laboratuvar notlarında ve dört kanallı telgraf tasarımında da kullanmıştır.
Yazılım dünyasında ise “bug” terimi, 1940’ların sonlarına doğru yeniden gündeme gelmiştir. O dönemde bilgisayarlar günümüzdeki kadar yaygın ve kullanıcı dostu değildi. Harvard Üniversitesi’nde geliştirilen Mark II adlı bilgisayar, dönemin en gelişmiş makinelerinden biriydi ve binlerce röle ile elektromekanik bileşen kullanarak işlem yapıyordu. Grace Hopper ve ekibi, bu devasa makinenin çalışmasını sağlamak ve bakımını yapmakla görevliydi.
9 Eylül 1947’de Grace Hopper ve ekibi, Mark II bilgisayarının görünürde bir arıza olmamasına rağmen çalışmadığını fark ettiler. Sorunun kaynağını bulmak için bilgisayarı incelediklerinde, bir rölenin içine sıkışmış bir böcek buldular. Bu böcek, bilgisayarın çalışmasını engellemişti ve bilgisayar tarihinde kaydedilen ilk “bug” olarak tarihe geçti. Grace Hopper, bu olayı günlüğüne “İlk gerçek bug vakası bulundu” notuyla kaydetti.
Hata Türleri
Yazılım dünyasında karşılaşılan hata (bug) türleri, genellikle yazılımın geliştirilmesi, çalıştırılması veya kullanılması sırasında ortaya çıkan çeşitli sorunlardan kaynaklanır. İşte başlıca hata türleri:
Mantık Hataları (Logic Errors)
Mantık hataları, derleme aşamasında fark edilmeyen, ancak program çalışırken beklenmeyen sonuçlara yol açan hatalardır. Kodun sözdizimi doğru olsa da, yanlış bir koşul ya da işlem, hatalı sonuçlar üretebilir.
Örneğin, BioAffix geçiş kontrol senaryolarından olan Global Antipassback kurgusunda tespit edilen bir mantık hatası, geçiş kontrol mekanizmasının doğru çalışmamasına ve belirlenen senaryolara uygun hareket etmemesine neden olmuştur. Bu hata, kurgunun saha senaryosu ile birleştirilerek daha verimli hale getirilmesiyle giderilmiştir. BioAffix sistemi, müşteri taleplerine göre geliştirilir ve bu esneklik, sistemin en önemli işlevlerinden biridir.
Çalışma Zamanı Hataları (Runtime Errors)
Çalışma zamanı hataları, programın çalışması sırasında ortaya çıkan ve beklenmedik şekilde sonlanmasına neden olan sorunlardır.
BioAffix Management Client yüklenirken karşılaşılan hatalar bu tür sorunlara örnektir. Kurulum sırasında, kodun Confuser (şifreleme) aşamasında hata meydana gelebilir ve kullanıcılar bazı bileşenlerin eksik ya da bozuk olduğunu fark edebilir. Bu sorunun çözümü için, şifreleme sırasında hata veren kod yeniden işlenerek hata düzeltilir.
Arayüz Hataları
Arayüz hataları, yazılımın beklenen kullanım biçimi ile kullanıcıların uygulamayı nasıl kullandığı arasında bir uyuşmazlık olduğunda ortaya çıkar.Bu hatalar, arayüzün düzgün çalışmamasına veya görsel uyumsuzluklara yol açabilir.
BioAffix Management’ta, “Kullanıcılar & Ziyaretçiler” ekranındaki “Personeller” sekmesine özel alanlar eklerken pencere ayarlarının bozulması, arayüzde bir görünüm bozukları yaratır. Bu bozulma, sekmenin orijinal düzeninin beklendiği şekilde çalışmadığını ve eklenen alanlarla uyumlu olmadığını gösterir. Arayüz hatalarının bu tür beklenmeyen davranışları, kullanıcı deneyimini olumsuz etkileyebilir. Arayüz hatalarıyla ilgili alınan geri bildirimlerle sorun hızlıca çözüme kavuşturulmaktadır.
Fonksiyonel Hatalar
Yazılım, tasarlandığı veya programlandığı şekilde çalışmadığında, çeşitli sebeplerden kaynaklanabilen ve farklı alanları etkileyebilecek geniş çaplı bir hata türü meydana gelir. Bu hatalar, yazılımın işleyişini aksatabilir, beklenmeyen sonuçlara yol açabilir ve sistemin performansını olumsuz yönde etkileyebilir.
Örneğin, BioAffix Management Client uygulamasında, “Kullanıcılar & Ziyaretçiler” sekmesinde, Ziyaretçiler ekranına yeni bir ziyaretçi eklenmeye çalışıldığında “kayıt etkilenmedi” uyarısı alınabilir veya kaydet butonuna basılmasına rağmen ziyaretçi bilgileri güncellenmeyebilir. Bu durumda, kaydetme işlemi başarılı görünse de verilerin sisteme düzgün bir şekilde işlenmediği ya da kaydedilmediği görülür. Bu sorunu çözmek için yazılımda kod revizyonu yapılarak, hatanın kaynağı tespit edilir ve gerekli düzenlemeler uygulanarak sistemin doğru çalışması sağlanır.
Donanım Bağımlı Hatalar (Hardware-Dependent Errors)
Yazılımın çalıştığı donanım yapılandırmalarına bağlı olarak ortaya çıkan hatalardır. Belirli donanım parçaları veya sürücüleri ile uyumsuz kodlar, yazılımın belirli sistemlerde doğru çalışmamasına neden olabilir. Bu durum, kullanıcı deneyimini olumsuz etkileyerek uygulamanın kullanılabilirliğini kısıtlayabilir.
BioAffix Secure I/O Plus Distributor 2G’nin geliştirme aşamasında bazı donanımsal hatalar tespit edilmiştir ve bu hatalar doğrultusunda gerekli revizyonlar yapılmıştır. Donanım tasarımı yapılırken kullanıcı odaklı çözümler yaratılarak geliştirmeler yapılır.
Ayrıca bknz:
İlk Bilgisayar Hatası: “Bug” Teriminin Doğuşu
Bug Hakkında Bilgi – Nedir, Ne Demektir? – Coderspace
Yazılımda Hata Türleri Nelerdir?
BioAffix E-Posta Bültenine Abone Olun
Dört ayda bir yayınlanan BioAffix elektronik posta bültenine abone olarak yeni gelişmeler hakkında bilgi sahibi olabilirsiniz.