Unutulmayan Yazılım Hataları ve Sonuçları
Bir yazılım geliştirirken dikkat edilecek en önemli husus, yazılımın en az derecede hata içermesi ve kendinden beklenenleri en üst seviyede karşılamasıdır. O yüzden dolayıdır ki yazılım test eylemleri, yazılım geliştirme sürecinde en erken safhalarında başlar.

Testçiler, muhtemel hataları yazılım geliştirme sürecinin en erken safhalarından itibaren bulmayı ve bulunan hataların düzeltilmesini amaçlarlar.

Geçtiğimiz günlerde #ÜniversiteTercihleri hashtag’ inin altında Yazılım Mühendisliği ile ilgili olan makalemizi yayınlamıştık. Bu makalede yazılım geliştirme süreçlerini kapsamlı bir şekilde incelemiştik. Dileyen arkadaşlar buradan ilgili yazıya ulaşabilirler.

Bilgisayar sistemleri hatalar barındırır. Bu hatalar insan (geliştirici, analist vb.) veya donanım kaynaklı olabilir. Oluşan hataların maddi ve prestij kayıplarına sebep olmaması için yazılım test sürecinin, proje döngüsüne katılması sağlanmıştır. Bu sayede kayıpların en aza indirilmesi amaçlanmaktadır. Burada unutulmaması gereken şey mükemmel bir yazılım olmadığı ve bir yazılımın asla %100 test edilemeyeceğidir.

Yazılım testi ilk ortaya çıktığı sıralarda yalnızca hata ayıklama amacıyla yapılmaktaydı. Sonra testler yazılımın doğru çalıştığını göstermek amacıyla yapılmaya başlandı. Daha sonraları testlerin yapıcı olmaktan çok, yıkıcı bir şekilde yapılmasının daha iyi sonuçlar verdiği görüldü.

Unutulmayan En Büyük Yazılım Hatalarına Birkaç Örnek

  1. Kara Pazartesi 1987: Hisselerin otomatik satış talimatlarını yanlış zamanda tetikleyen yazılım, gün içerisinde borsanın ilk açıldığı yer olan Hong Kong’dan başlayıp bir günde Dow Jones’u %23, S&P 500′ü %20 düşürerek hala kırılmamış bir rekora imza atmıştır. (1987)

  2. Therac-25 Tedavi Cihazındaki Hata: Cihazın Hata mesajı verdiği durumda sinyalin hastaya uygulanmamış olması gerekirken yüksek güçlü radyasyon hastalara uygulanmıştı. Operatörün işlemi birkaç kere tekrar etmesiyle hastalar çok büyük oranda radyasyona maruz kalmışlardır. Cihazdaki hata sonucu 1985-1987 yılları arasında 6 kişi hayatını kaybetti.

  3. Patriot Füze Hatası (1991): Tarafına atılan füzeleri vurmak için tasarlanan Patriot Füzeleri 1. Körfez savaşı sırasında yazılımındaki bir yuvarlama hatası nedeniyle hedeflerinin tamamını vurmaktan uzak kalmıştır. (Yuvarlama hatası: Ondalıklı bir sayının, virgülden sonraki kısmının bir üst veya tam sayı kısmına devredilmesi/yuvarlanmasıdır. )

  4. Mars Uydusu Mars’a Çakıldı (1998): NASA’nın belirlediği standartların dışında (metrik) uzunluk ölçüsü kullanmayan bir yazılım taşeronu Mars’ın yörüngesinde dönmesi gereken 125 milyon $’lık Mars uydusunun gezegene çakılmasına sebep oldu.

  5. Ariane 5 Roket Kazası (4 Haziran 1996): Ariane 5 roketi fırlatıldıktan 40 sn sonra parçalandı. Zarar yaklaşık yarım milyar dolardı. Ariane 4’ te kullanılan bir modül düzgün test edilmeden yeniden kullanılmıştı ve Ariane 5’e uyum sağlamamıştı. Parçalanmanın sebebi bir yazılım hatasıydı. 64 bitlik ondalıklı sayı, 16 bit işaretli tam sayıya çevrilirken bulunan sonuç beklenenden büyük çıkıyordu. Tarihteki en pahalıya mâl olan yazılım hatalarından biridir!

  6. Mars Climate Orbiter Hatası (23 Eylül 1999): Gezegenler arası ilk iklim uydusu olarak 1997’de fırlatılan Mars Orbiter, 1999’da kaybold. Kazanın bir yazılımda İngiliz ölçü birimlerinin metrik sisteme yanlış çevrilmesinden kaynaklandığı belirtildi. NASA ekibi hesaplarında İngiliz ölçü birimini (inç, feet), projeye katılan  diğer ekipse metrik (mm, cm, m)  sistemi kullanmıştı. 125 milyon dolarlık uydu yörüngeye sabitlenmeye çalışırken Mars’a olması gerekenden fazla yaklaştı. Uydunun, Mars’ın atmosferinde imha olduğu düşünülüyor. 

  7. İntel İşlemci Bölme Sorunu (1993): İntel İşlemcilerin ondalık sayıların bölüm sonuçlarında 0.006′lık bir sapma ile hata yapması sattığı 5 milyon chip için 475milyon$’ına mâl oldu. Intel bu hatanın çip başına neye mâl olduğunu hesaplamaya çalışırken hatayı da düzeltmiştir. (Toplam Maliyet / Chip Sayısı)

  8. L.A. Havaalanı (2007): Network kartındaki ufak bir hatadan dolayı 8 Saat boyunca kimse LA Havaalanı’ndan Amerika’ya giriş çıkış yapamadı.

  9. Toyota Prius (2014): Toyota 160.000 Prius Hybrid Aracını bir motorunu zamansız durduran yazılım hatasından dolayı geri çağırdı. Bu otomobil tarihindeki ilk büyük yazılım kökenli geri çağırmadır.

Kaynaklar
http://www.teakolik.com/tarihin-en-buyuk-10-yazilim-hatasi-ve-olumler/
http://guzelblog.com/2012/09/04/tarihin-en-buyuk-yazilim-hatalari/
https://tr.wikipedia.org/wiki/Kategori:Yaz%C4%B1l%C4%B1m_hatalar%C4%B1

Görsel Kaynaklar
Kapak Görseli: Ariane 5 Füzesi patlama anı (ESA)
Görsel1:  http://www.penaakademi.com/ileri-seviye-yazilim-test-uzmani-teknik-test-analisti-egitimi/
Görsel2:   http://muhendislikvehersey.blogspot.com/2015/05/yazilim-testinin-onemini-biliyor-muyuz.html

Melih Hilmi ULUDAĞ
Fırat Üniversitesi / Yazılım ve Mekatronik Mühendisliği - Mühendis

0 yorum