Yazılım Testi

Merhaba Arkadaşlar,
Mobilhanem’de yepyeni bir yazı serisine başlıyoruz. Yazılım Testi yazı serimizde neden yazılımlar için test gereklidir, bu testler nasıl ve hangi araçlarla yapılır, Yazılım testi yapmanın önemi ve gerekliliği nedir gibi konuları ele almaya çalışacağız.

Yazılım Testi ve Önemi

Yazılımlar, kurumlarda kullandıklarımızdan tutun da(muhasebe, finans, vb…) günlük hayatımızın hemen hemen her yerinde (cep telefonları, televizyonlar, otomobil, vb…) yer alarak yaşamamızın ayrılmaz parçasıdırlar. Onları kullanırken de birçok kez problemler ile karşılaşırız. Hataları içeren ve beklentimizi karşılamayan birçok yazılım zaman, para ve prestij kaybına neden olur. Hatta bu hatalar bazen öyle bir boyuta ulaşır ki insanlar onlardan ötürü yaralanabilir ya da ölebilirler. Bu nedenle yazılım testi sürecinin doğru ve etkin bir şekilde uygulanması yazılım yaşam döngüsünde çok önemlidir. Konuyu pekiştirmek adına unutulamayan en büyük yazılım hatalarından biri olan Threac-25 yazılım hatasını ve sonucunu içeren hikayeyi sizlerle paylaşmak istiyorum.

Therac-25

Therac-25 Hatası - Yazılım Testi
Radyasyon Terapi Cihazı

 

1986’da Ray Cox omuzundaki radyasyon tedavisi için kliniğe gider. Teknisyen yanlışlıkla x-ışını demetini göndermeye neden olan “x” tuşuna basar. Hemen sonra x-ışını yerine elektron ışını göndermesi gerektiğini hatırlayarak hatayı fark eder. “x” i silip yerine “e” yi yazar ve “enter” a basarak makineyi başlatır. Bilgisayar “ışın hazır” sinyalini verir ve teknisyen ışını hastaya iletmek için “b” ye basar. Bu esnada bilgisayar bir hata mesajı gösterir. Mesaj içerisinde ışının iletilmediği yazıyordur. Teknisyen hata mesajını kapatarak işlemi tekrarlar ve Ray’e bir kez daha tedavi amaçlı ışını gönderir. Hata mesaj tekrar gözükür. Tam bu anda Ray, sırtındaki bıçak gibi sancıyı hisseder ve bunun normal tedavisinden çok farklı olduğunu farkeder. Üçüncü denemenin sonrasında teknisyenden işleme devam etmemesini ister ve makineden ayrılır.
İşin aslı her seferinde Ray’e ışın uygulanıyordu ve uygulanan ışının miktarı çok fazla idi. Makineden gelen ışın demeti 25 000 rad’lık bir patlamaydı-25 milyon elektron volt ile normalin 125 katından fazla olan maksimum ayar doz… Sonrasında Ray’in sağlığı daha da kötüye gitti ve 4 ay sonra majör komplikasyonlar yüzünden öldü.
 
Hikayenin farklı bir anlatımı için buradaki yazıyı okuyabilirsiniz. Bu konu hakkında yazılımış güzel bir yazıyı bu linkten okuyabilirsiniz. Bunun gibi onlarca yazılım hatalarını Google’dan aratarak sizler de bulabilirsiniz.
Bu tip hatalar para kaybına , zaman kaybına yada kullanılan yazılıma olan güvenin azalmasından ötürü kullanıcı kaybına , en kötüsü ise  yukarıdaki örnekte olduğu gibi can kaybına neden olabilir. Bu gibi durumların önüne geçmek için yazmış olduğumuz yazılımı test etmeliyiz ve minimum hata ile piyasaya sürmeliyiz.

Yazılım Testi Neden Yapılır?

Kişi yazılım sürecinde yanlış yapar ve bu yanlış programda bir kusura sebep olur. Kusur da yazılımın yapması gerekeni yapmamasına ya da farklı bir şey yapmasına neden olur. Bu da sistemde bir arıza oluşturur. Yazılım testi dikkatli bir şekilde uygulanırsa hataların arızaya dönüşmesini önlenir. Ayrıca yazılım testi sayesinde yazılımın fonksiyonel ve fonksiyonel olmayan gereksinimler anlamında kalitesi de belirlenir. Yazılım testi ile bulunan hataların sayısı ve önemi yazılıma olan güveni belirlemede de kullanılır. İyi tasarlanmış ve başarı ile sonuçlanmış yazılım testi doğru olmayan riskli yazılım algısının azalmasını sağlar. Testlerde bulunan hatalar giderildiğinde daha da kaliteli bir yazılım olduğu hissi oluşur. Bununla birlikte test sürecinde öğrenilmiş dersler ile yazılım süreçleri iyileştirilebilir ve hataları göz önünde bulundurarak geliştirme sürecinin ele alınması sağlanabilir. Bu gibi nedenlerden dolayı yazılım testi; yazılım geliştirme sürecinde kalite güvence aktivitelerinin bir parçası olarak mutlaka yer almalıdır.
Yaygın kanı testin sadece testlerin koşulmasından ibaret olduğudur. Testlerin koşulması testin önemli bir parçası olmakla beraber tüm test işi testlerin koşulmasından ibaret değildir. Testlerin koşulmasından önce ve sonra yapılan teste ait işler de vardır.
Bunlar :
  • Planlama ve Kontrol,
  • Test Koşullarını Seçme,
  • Test Senaryolarını Hazırlama ve Çalıştırma,
  • Sonuçları Kontrol Etme,
  • Çıkış Kriterini Değerlendirme,
  • Test Süreci ve Test Edilen Sistem ile İlgili Raporlama,
  • Test Kapanışı,
  • Testi Tamamlama

Ayrıca gereksinimleri, analiz dokümanlarını, kaynak kodları gözden geçirme ve statik analiz gibi işlemler de testin bir parçasıdır.

Testin yazılım geliştirme surecinin en başından düşünülmesi ve uygulanması gerekmektedir. Bu sayede hataların arızaya dönüşmesi ve hatta oluşması engellenmiş olur. 
Bir sonraki yazımız yazılım testinin altın onbiri hakkındadır.

Konu hakkında soru , cevap ve görüşlerinizi alt taraftaki yorum alanından veya Soru&Cevap sitemizden bizlere iletebilirsiniz.

Tüm Yazılım Testi dersleri için tıklayınız.

Sabri Mutluçağ

Test Engineer @Udemy

Yorum Yaz

Haftalık Bülten

Mobilhanem'de yayınlanan dersleri haftalık mail almak ister misiniz?