
www.bilgisite.com
Bilgi Güçtü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
verimiş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?
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 genelllikle geliştirme sürecinin erken aşamalarında yapılır, böylelikle
uygulamanın kullanıcı arayüzlerinde önemli değişiklikler yapılması mümkün olur.
Test yürütücüsünün hefelenen 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.