DEĞERLER KULÜBÜ ORG

... ŞAHSİYETLİ BİR NESİL İÇİN

  • Yazıtipi boyutunu arttır
  • Varsayılan yazıtipi boyutu
  • Yazıtipi boyutunu azaltır
Ana Sayfa Bilgi, Teknoloji Yazılım Kalitesi

Yazılım Kalitesi

Yazdır

Yazılım Kalitesi Nedir?

Kaliteli yazılımlar, kabul edilebilir düzeyde hatasız, planlanan bütçe ile zamanında bitirilip dağıtılabilen, gereksinimleri ve/veya beklentileri karşılayabilen ve sürdürülebilir özelliklere sahip yazılımlardır. Ancak, kalite terimi kişilere göre oldukça değişebilen bir terim olup müşterisinin kim olduğuna ve tasarımda hedeflenen unsurlara bağlı olarak farklılıklar gösterebilmektedir. Doğal olarak, her kişinin kalite hakkında bireysel eğilimleri veya tercihleri söz konusu olmasına karşın kaliteyi ortaya koyan nesnel yöntemler yansız değerlendirmeleri olanaklı kılmaktadır. Aşağıda, çok kısa şekilde yazılım kalitesi ve yazılım kalite testleri üzerine bilgiler verilmiştir.

Yazılım Testi Nedir?

'Yazılım testi', bir sistem veya uygulamanın denetlenebilir koşullar altında çalıştırılması (veya işletilmesi) ve elde edilen sonuçların değerlendirilmesidir. Denetlenebilir koşulların hem normal hem de anormal koşulları kapsaması gerekir. Yani testin, bilinçli şekilde hatalı şeyler yaparak olabilecek şeyleri önceden belirlemeye yönelik olması gerekir. Şöyle ki, olması gereken şeylerin olmadığını veya tam tersi olmaması gereken şeylerin olduğunu denemek ve ortaya çıkartmak testin amacı olmalıdır.

Yazılım Testi Niçin Yapılır?

  • Müşteriye sunulmadan önce ürün kalitesinden emin olmak,
  • Yeniden çalışma (düzeltme) ve geliştirme masraflarını azaltmak,
  • Geliştirme işleminin erken aşamalarında yanlışları saptayarak ileri aşamalara yayılmasını önlemek, böylece zaman ve maliyetten tasarruf sağlamak,
  • Müşteri memnuniyetini arttırmak ve izleyen siparişler için zemin hazırlamak.

gibi genel amaçlar için yapılır.

YAZILIM TESTİ TÜRLERİ

Kara-kutu Testi
Bu tür testlerde yazılımın programatik yapısı, tasarımı veya kodlama tekniği hakkında herhangi bir bilgi olması gerekli değildir. Yazılımın gereksinme duyulan şeylere yanıt verip veremediği ve işlevselliği sınanmaktadır.

Beyaz-kutu Testi
Bu tür testler, uygulama kodunun iç mantığı üzerindeki bilgiye bağlıdır. Yazılım kodundaki deyimler, akış denetimleri, koşullar vb elemanlar sınanır.

Birim Testi
Mikro ölçekte yapılan bu testte, özel fonksiyonlar veya kod modülleri test edilir. Bu test, test uzmanlarınca değil programcılar tarafından yapılır ve program kodu ayrıntılarına ve içsel tasarım biçiminin bilinmesi gereklidir. Uygulama kodu çok iyi tasarlanmış bir mimaride değilse oldukça zor bir testtir.

Artımsal Tümleşim Testi
Uygulamanın yeni işlevsel elemanları eklendikçe sürekli test edilmesidir. Bu testte uygulamamanın tüm parçaları tamamlanmadan önce yeni eklenen parçanın işlevselliğin öncekilerden yeteri ölçüde bağımsız şekilde çalışıp çalışmadığı sınanmaktadır. Test uzmanları ve/veya programcılar tarafından yapılan bir testtir.

Tümleşim Testi
Bir uygulamanın farklı bileşenlerinin beraberce uyum içinde çalışıp çalışmadığını sınamak için yapılan bir testtir. Bileşenler, modüller, bağımsız uygulamalar, istemci/sunucu uygulamaları biçiminde olabilirler. Bu tür testlere, özellikle istemci/sunucu uygulamaları ve dağıtık sistemlerin testinde başvurulmaktadır.

İşlevsellik Testi
Bir uygulamanın işlevsellik gereksinmeleri üzerine odaklandırılan kara-kutu testidir. Bu tür testler, test uzmanları tarafından yapılır, ancak bu uygulama yayınlanmadan önce kodların programcılar tarafından incelenmeyeceği anlamına gelmez. Testin herhangi bir aşamasında program kodlarının da incelenmesi gerekir.

Yüzeysel Sistem Testi
Uygulamanının tanımlanan gereksinmelerin tümünü karşılayıp karşılamadığını sınamak için yapılan bir kara-kutu testidir.

Regresyon Testi
Uygulama ve uygulama ortamlarında gerekli değişiklikler ve sabitlemeler yapıldıktan sonra yeniden yapılan testlere çekilme (regresyon) testi denilir. Böylece, önceki testlerde belirlenen sorunların giderildiğinden ve yeni hatalar oluşmadığından emin olunur. Uygulamanın kaç kez yeniden test edilmesi gerektiğini belirlemek güçtür ve bu nedenle, özellikle uygulama geliştirme döneminin sonlarına doğru yapılır.

Kabul Testi
Son kullanıcı veya müşteri siparişi (veya isteklerine) dayanan son test işlemidir. Ayrıca, son kullanıcıların belli bir süre kullanımlarından elde edilen sonuçlar üzerinde de yapılabilmektedir.

Yük Testi
Uygulamanın çok ağır yükler (veya işlem yoğunluğu) altında test edilmesidir. Örneğin, bir Web sitesi için sistem tepkisinin hangi noktada azaldığı veya yanıt veremez olduğunu belirlemek için yapılan testler gibi.

Zorlanım Testi
Bu test, çoğu kez "yük testi" ve "performans testi" ile aynı anlamda kullanılmaktadır. Aynı zamanda, beklenmedik (normal olmayan) ağır yükler, belirli eylemler ve taleplerin çok fazla artışı, çok yoğun sayısal işlemler, çok karmaşık sorgulamalar vb. ağır koşullar altında olan bir sistemin işlevsellik testi (yani iş yapabilme testi) olarak ta kullanılmaktadır.

Verim (Performans) Testi
Yukarıda da belirtildiği gibi, bu test 'zorlanım' ve 'yük' testi ile eş anlamlı olarak ta kullanılabilmektedir. Ancak, yapılması gereken performans testinin ne olduğunun gereksinmeler veya kalite güvencesi veya test planlarında açıklanmış olmasıdır.

Kullanışlılık Testi
Tahmin edilebileceği üzere, kişisel yargılara göre değişen bir test olup hedeflenen son kullanıcı veya müşteri kitlesine bağlı olarak değişir. Kullanıcı yorumları, kullanıcı oturumlarından video kayıtları veya diğer teknikler kullanılabilir. Programcılar ve test uzmanları genellikle bu tür testler için uygun değildir, yani bu testlerin doğrudan son kullanıcılar üzerinde yapılması gerekir.

Bu test genellikle geliştirme sürecinin erken aşamalarında yapılır, böylelikle uygulamanın kullanıcı ara yüzlerinde önemli değişiklikler yapılması mümkün olur. Test yürütücüsünün hedeflenen kullanıcılar üzerinde test yapabilme yeteneği önemlidir.

Güvenlik Testi
Yazılımın, gerek iç ve gerekse dış kaynaklı yetkisiz erişimlere, kötü amaçlı kullanımlara karşı korunması ya da güvenliğini test etmek için yapılır. Çok karmaşık ve özel test tekniklerinin kullanıldığı bir test türüdür.

Uyumluluk Testi
Yazılımın özel bir donanım, yazılım, işletim sistemi, ağ veya ağ protokolü vb. ortamda beklenen şekilde çalışıp çalışmadığını sınamak için yapılan testlerdir. Örneğin, Almanca bir uygulama sürümünün Fransızca bir Windows 2000 platformu üzerinde düzgün şekilde çalışıp çalışmadığı; bir iletişim yazılımının en yaygın kullanılan 100 modemle sorunsuz çalışıp çalışmadığı; bir uygulamanın değişik sürümlerinin yaygım kullanılan platformlarda (AIX, NT, Linux vs) sorunsuz çalışıp çalışmadığı, ya da bir video uygulamasının değişik kartlar üzerinde çalışıp çalışmadığı gibi testler hep birer uyumluluk testi örneğidirler. Bu test için, test firmasının geniş bir donanım ve yazılım parkı ve birikiminin olması tercih edilmektedir.

Doyum Testi
Yazılımın, son kullanıcı veya müşteri tarafından beğenilip beğenilmediğini, ya da ihtiyaçlarını karşılayıp karşılamadığını belirlemek için yapılır.

Kurma/Kaldırma Testi
Bu test, yazılımın kurulması ve kaldırılması ile ilgili tüm seçenekler ve özelliklerin düzgün şekilde çalışıp çalışmadığını sınamak için yapılır. Kurulumda, tüm gerekli dizinler ve bunlarda yer alacak dosyaların (.dll, .cfg, .txt vb) oluşturulması gereklidir. Ayrıca yazılımın sistemden kaldırılması sırasında herhangi bir artık kalmamalıdır.

Ağ Testi
Çok kullanıcılı uygulamaların ağ ortamında gerçekten ağ üzerinde çalışabilme yeteneklerini ortaya koymak için yapılan bir testtir. İstenirse, farklı ağ işletim ortamları ve iletişim kuralları altında test yapılması tercih edilmelidir.

Alfa Testi
Bitirilme aşamasına yakınlaşmış olan bir uygulama için yapılan testtir. Bu test sonucunda ürün üzerinde küçük değişiklikler yapılabilir. Programcılar veya test uzmanlarınca değil, son kullanıcılar tarafından yapılır.

Beta Testi
Uygulamanın tamamlanması ve zorunlu testleri yapıldıktan sonra, son sürümü çıkarmadan önce hatalar ve/veya sorunları saptamak üzere yapılan testlerdir. Programcılar veya test uzmanlarınca değil son kullanıcılar tarafından yapılır.

Yazılım Testi Pahalıdır!

  • Yapılan çalışmalar yazılım firmalarında toplam proje zamanının yaklaşık %40'ının test için kullanıldığını ortaya koymaktadır. Bu ise yazılım geliştirmede çok önemli bir maliyet olup projenin karlılığını düşüren bir etmen durumundadır.
  • Geliştirilen her yazılım için kullanılabilecek ya da özelleştirilerek kullanılabilecek araçlar mevcut değildir.
  • Test uzmanlarının, bir proje bittikten sonra yeni bir projeye başlayıncaya kadar istimdah edilmesi ekonomik değildir.
  • Test uzmanlarını yeni yöntemler konusunda eğitmek ve eğitilmiş insan kaynaklarını elde tutmak zordur.
  • Test için Otomatik Araçlar'ı edinmek üzere yatırım yapmak çok pahalıdır.

Prof.Dr. Zeynel Cebeci
 

 

Rasulullah Sallallahu aleyhi ve sellem şöyle buyurmuştur;  "Kim bana bir kitapta/yazıda salâvat-ı şerife getirirse benim ismim bu kitapta/ yazıda olduğu müddetçe melekler ona istiğfar getirmekten hiç ayrılmazlar."