12 Ocak 2010 Salı

Yazılım Test Teknikleri

• Fonksiyonel Test / Functional Testing
Fonksiyonel test, öncelikle sistemin yapması beklenen işlevlerine odaklanır. Tanımlı spesifikasyonların sağlanıp
sağlanmadığının kontrol edilmesinin yanısıra, tanımlı olmayan, düşünülmemiş durumları da incelenir. Özellikle,
beklenmeyen koşullar altında sistemin davranışı saptanarak, olumsuz durumların varlığı aranır.

Gerçek kullanıcılar için data kaybı, runtime hataların alınması gibi durumlar güvenilirliği etkileyeceğinden
fonksiyonel testlerin işletilmesi önem taşır. Test ekibi tarafından test altındaki uygulamanın
operasyonları çok yönlü olacak şekilde analiz edilerek gerekli test teknikleri geliştirilir. Uygulamanın test
kapsamının belirlenmesi, sistem noktalarının ortaya çıkarılması ile tüm fonksiyonel spesifikasyonların teste dahil
edilmesi sağlanır.

• Regresyon Testi / Regression Testing
Daha önce teste alınmış bir yazılımın; hataların çözüldüğünden emin olabilmek, hata düzeltme aktivitelerinde yapılan
değişikliklerin yeni hataları tetiklemediğini görebilmek, yeni eklenen özelliklerin hatalarını yakalayabilmek
amacıyla yürütülen testlerdir.

• Kullanıcı Arayüzü Testi / User Interface Testing
Uygulamanın fonksiyonel işleyişini sağlayabilmek için kullanıcı arayüzünün bu doğrultuda tasarlanması ve kodlanması
gereklidir. Uygulamadaki, ekranlar, menüler, butonlar, resimler, yazılar vs. kullanıcı arayüzü öğelerinin atlanmadan
test edilmesi, pozitif ve negatif test adımlarında davranışlarının değerlendirilmesi gerekmektedir. Manuel ya da
otomatik olarak test edilmesi ile gereksinimlerin karşılandığı görülüp, beklenmeyen sonuçların da ortaya çıkarılması
sağlanır.

• Test Otomasyonu / Test Automation
Test otomasyonu çeşitli tekniklerin dahil edildiği, başarı için sürdürülebilirliğin ve güvenilirliğin şart olduğu
bir alandır. Test otomasyonunun başarılı olabilmesi için öncelikle uygun best practice’lerin seçilmesine önem
verilmelidir.
Test otomasyonunun sağladığı yararları şöyle sıralayabiliriz;
o Zamandan tasarruf edebilmek
o Manuel testlerde harcanan insan gücünü azaltıp, proje maliyetlerini düşürebilmek
o Test edilebilirliği artırmak
o Tekrar test edilebilirliği sağlamak
Uygun test aracının seçilmesi önem taşıdığı için otomasyon projelerinde müşteri yazılımlarına göre
ihtiyacın belirlenmesi ve implementasyon gereksiminimlerinin ortaya net bir şekilde konması gerekir.
Bu sayede süreçlere bağlı, doğru test planlaması yapılarak testler hızlandırılabilir.

• Manuel Test / Manual Testing
Manuel testler, test ekibinin test senaryolarını belirleyerek, ihtimam ile test adımlarını işletmeleri ile
yürütülür. Sistematik yaklaşım ile yürütülen testler, her adımda gerekli detaylandırma yapılarak, otomasyon ile
test edilmesi uygun olmayan testlerde dahil edilerek yapılır.
Bir test mühendisi, her zaman çantasında taşıdığı, merak, sabır, çözüm takip edebilme erdemleri ile daha fazla hata
yakalayabilmeyi amaçlamalıdır.

• Performans Testi & Yük Testi / Performance Testing & Load Testing
Çeşitli iş yükleri altında sisteminizin performansınızı ölçmeniz gerekecektir. Beklenen işlevlerin yerine getirilip
getirilemediği, hangi noktalarda darboğazlar oluştuğu, başarısız senaryo adımları değerlendirilerek performans
analizi yapılmalıdır.

Test ekibi mevcut sistemin performans senaryolarını oluşturarak, client/server tarafında belirlenen metriklerin
değerlerini toplayıp, gerekli analiz sonuçlarını ilgili birimlere sunarak, tahminlere dayalı release
geliştirmemelerini sağlamalıdır.
Test mühendisleri, özel lisanslı/açık kaynak performans test araçlarını kullanarak, tanımlanan sayıda sanal
kullanıcılar ile gerçek ortam koşullarını simüle edebilmektedirler.
İhtiyaçları karşılayabilecek en uygun test aracının belirlenmesi ile test senaryoları çıkarılabilmektedir. Yük
tanımlarının işletilmesi ile de yük altındaki sistemin detaylı performans istatistikleri belirlenmektedir.

• Kullanılabilirlik Testi / Usability Testing
Uygulamanın her işlevi yerine getirdiğini spesifikasyonlara bağlı olarak doğrulayabilirsiniz, ancak kullanıcı ihtiyaçlarını gerektiği gibi karşılamayabilir. Kullanım kolaylığı düşünülmüş, kullanıcı arayüzü açık uygulamaların istenileni daha iyi sağladığını söyleyebiliriz.

• Lokalizasyon Testi / Localization Testing
Test altındaki uygulamanın farklı yönlerden belirgin bir kültür veya lokal odaklı testlerinin yapılabilmesi
gerekmektedir. Lokalizasyon testinde; desteklenmesi beklenen diller, kullanım durumları/alışkanlıkları, bölgesel
saat/tarih ayarları gibi öğelerin test kapsamına alınıp, dikkatli hazırlanacak test planları ile teste tabi
tutulması sağlanır.
Çeşitli pazarları hedefleyen müşteriler, bu testler sayesinde iş gereksinimlerinin karşılanıp karşılanamadığını
görebilmiş olur.

• Uyumluluk Testi / Compatibility Testing
Test kapsamında geliştirilen uyumluluk matrisi ile sürümlerin; farklı işletim sistemleri, tarayıcılar, sunucular,
veri tabanları, çeşitli donanımlar, çözünürlükler vs. belirlenmektedir. Tüm konfigürasyon seçenekleri ortaya
çıkarıldıktan sonra, test ekibi matriste belirtilen her bir öğe için testlerin detaylarını ve sürelerini
ortaya çıkararak yeni sürümlerde/versiyon geçişlerinde uyumluluk testlerini planlayabilmektedir.

Hiç yorum yok:

Yorum Gönder