Yazılım Test 101

Elif İ. Eser
Nettsi Bilişim Teknoloji A.Ş.
3 min readApr 17, 2020

Bu yazı dizisi daha çok konuya giriş niteliğinde olacaktır. O yüzden test hakkında genel konulara değineceğim. “Test Nedir?”, “Test Nasıl Ortaya Çıkmıştır?”, “Test Neden Önemlidir?” ve “Tarihteki Yazılım Felaketleri Nelerdir?” gibi soruların cevaplarından bahsedeceğim.

Test nedir, Nasıl ortaya çıkmıştır ve Neden önemlidir?

Gelişen teknoloji ile beraber yazılımın ağırlıklı olduğu bir endüstri ortaya çıkmaya başlamış ve yazılımların ön planda olduğu projelerde karşılaşılan hatalara karşı yazılım test süreçleri kritik bir öneme sahip olmuştur. Gelin hep birlikte ilk hata nasıl ortaya çıkmış ona bir göz atalım.

Harvard Mark 1 bilgisayarının ilk programcılarından biri olan Tümamiral Grace Murray Hopper 9 Eylül 1947 yılında tarihin ilk hatasını bulmuştur. Bilgisayarın hatalar verdiğini keşfeden Hopper, bilgisayarın donanımını açtığında içerisinde bir güve(bug ismi buradan gelmektedir) ile karşılaşmış, bu güvenin bilgisayarın tüm aksamına zarar verdiğini görmüş ve hatayı raporlamıştır. Bu şekilde tarihin ilk hatası keşfedilmiştir. Aslında Thomas Edison 1800’lü yılların sonuna doğru ilk hatayı bildirse de yazılımsal olarak ilk hatayı Hopper tanımlamıştır.

İşte bu şekilde hataları azaltmak veya ortadan kaldırmak için yazılım test serüveni ortaya çıkmıştır. Yazılım testi nedir, neden test yapılmaktadır ve önemi nedir biraz da bunlardan bahsedelim.

Yazılım testi nedir?

Yazılım testi, bir sistemin belirlenmiş gereksinimlerinin karşılandığının doğrulanması ve beklenen ile gözlenen sonuçlar arasındaki farkların belirlenmesi sürecidir. Yazılım yaşam döngüsü sürecinin en önemli parçalarından biridir. Ürün (yazılım) var olduğu sürece yazılım test süreci devam eder.

Peki yazılım testi neden yapılır?

Geliştirilen yazılımlarda, hataları bulmak, yazılım gelişimine mümkün olan en büyük katkıyı sağlamak, hatanın giderildiğinden emin olmak ve hataları erken bulmak için yazılım testleri gerçekleştirilir.

Gelelim en çok sorulan sorulardan birine, yazılım testi neden bu kadar önemli?

Tarih boyunca geliştirilen yazılımlarda çeşitli sebeplerden ötürü hatalar ortaya çıkmıştır. Yazılımın geliştirildiği sektöre göre bu hatalar para, ün, müşteri hatta can kaybına sebep olmuştur. Aşağıda yazılım testinin önemini gösteren 3 faklı örnekten bahsetmek istiyorum.

  1. Ariane 5 Roket Kazası

Avrupa Uzay Ajansı ve Havacılık dairesi tarafından 4 Temmuz 1996 yılında uydu taşıma amaçlı uzaya fırlatılan Ariane 5 roketi fırlatıldıktan 37 saniye sonra kontrol yazılımındaki hatadan dolayı infilak etti. Kaza sonucu ortaya çıkan raporda Ariane 4 yazılımında kullanılan bir modülün düzgün test edilmeden yeniden kullanıldığı için Ariane 5 ile uyum sağlayamadığı ortaya çıktı. Aslında sorun çok büyük değildi ama test edilmeyen küçük bir ayrıntı ile Ariane 5 roketinde 64 bitlik ondalıklı sayı 16 bitlik işaretli ondalıklı sayıya çevrilirken bulunan sonuç kontrol sisteminin devre dışı kalmasına ve uzay aracının infilak etmesine sebep olmuştur.

2.Therac 25

AECL(Atomic Energy Canada Limited) şirketi tarafından üretilen bir bilgisayar kontrollü radyasyon makinesidir. 1985–1987 yılları arasında hastalara aşırı dozda radyasyon verdiği için hastaların ölümüne sebep olmuştur. Sistemden kaynaklanan tekrarlanan hata mesajlarından dolayı operatörün hastalara birkaç defa elektron vermesiyle hastalar yüksek oranda radyasyona maruz kalmış, bu yüzden hastalara normalden 100 kat daha radyasyon verilmiş ve 6 hastanın ölümüne sebep olunmuştur.

3.Boeing 737 Max

29 ekim 2018 tarihinde Boeing 737 Max’in düşmesiyle 189 kişinin hayatını kaybettiği kazada kazanın sebebinin yazılımsal olduğu raporlanmıştır. Açıklanan rapora göre yazılımda meydana gelen hata ile sistemin hatalı hücum açısı bilgisi okuması sonucu düştüğü ortaya çıkmıştır.

Bu tür kazalar sonucunda yazılımsal olarak ortaya çıkan küçük bir hatanın çok büyük felaketlere yol açtığı görülmüş ve yazılım test süreçleri yazılım geliştirme döngüsünün en önemli adımlarından biri haline gelmiştir.

Kısacası sizlere bu yazıda hata nedir, ilk hata nasıl ortaya çıkmıştır, test nedir, neden önemlidir ve son olarak tarihte testi gerçekleştirilmeyen projelerin sebep olduğu kazalardan bahsettim. Gelecek yazımda test süreci nedir, test süreci aşamaları, manuel ve otomasyon testleri arasındaki farklar nelerdir onlardan bahsedeceğim.

Umarım faydalı bir yazı olmuştur. Bir sonraki yazımda görüşmek üzere…

Kaynaklar

1. https://www.nationalgeographic.org/thisday/sep9/worlds-first-computer-bug/

2. https://en.wikipedia.org/wiki/Software_bug

3. https://www.forbes.com/sites/taylorarmerding/2018/11/20/hard-questions-raised-when-a-software-glitch-takes-down-an-airliner/#7a495d4e7b1d

4. Bozkurt Asiye, Çüçen Adem, Adıgüzel Ahmet “Yazılım Test Rehberi” Şeçkin Teknik, Haziran 2016, 2.baskı

--

--

Elif İ. Eser
Nettsi Bilişim Teknoloji A.Ş.

"Knowledge should not be confined within the walls of academia."