• Sonuç bulunamadı

3. ULUSLARARASI YAZILIM TEST YETERLİLİK KURULU’NUN YAZILIM TESTİ

3.3 Yazılımda Test Nedir?

3.3.3 Yazılım test seviyeleri

Yaşam döngüsü modelinde kaliteli test yapmak için birçok karakteristik vardır. Her yazılım geliştirme aktivitesine karşılık gelen bir test aktivitesi vardır ve her test seviyesi için o seviyede uygulanan test hedefleri vardır. Belirlenen test seviyesi için yapılan test analiz ve tasarımının geliştirme ile eş zamanlı yürütülmesi gerekir. Testçilerin geliştirme aşamasında taslaklar hazır olduğu anda sürece dahil edilmesi gerekmektedir.Test seviyeleri projenin akışına ve sistemin mimarisine göre birleştirilebilir ya da yeniden yapılandırılabilir. Her test seviyesi için genel hedefler, test senaryosu oluşturmak için referans verilmiş ürünler, bulunan tipik

29

hatalar, test koşturma esnasındaki istekler ve araç destekleri gibi özel yaklaşımlar ve sorumluluklar vardır.

a) Bileşen testi

Bileşen testi aynı zamanda birim, modül ya da program testi olarak da adlandırılabilir. Bileşen testi test edilebilir olan program, modül ve sınıfların(class) işlevlerini doğrular ve hataları bulmak için arama yapar. Sistemin ve geliştirme aşamasının durumuna göre sistemin geri kalan kısmından ayrı uygulanması gerekir.

Bileşen testi temel işleyiş sağlamlık ve yapısal testler gibi hem fonksiyonel hem de fonksiyonel olmayan karakteristikleri kapsamalıdır. Test senaryoları, bileşenlerin sözleşmede yazılmış olan yazılım tasarım ve veri modellerine göre belirlenmelidir.

Bileşen testi, test edilmiş olan kodun kullanımıyla ve geliştirme çevresinin desteğiyle birlikte yürür. Uygulamada ise bileşen testine kodu yazan programcı dahil olur. Hatalar bulundukları anda düzeltilir. Bileşen testine başka bir yaklaşım ise test senaryolarının kod yazılmadan önce hazırlanmasıdır. Bu yaklaşıma ilk test yaklaşımı ya da test öncelikli geliştirme denir. Bu yaklaşım, test senaryolarının geliştirme sürecinden sonra kodun küçük parçalar halinde inşa edilip birleştirilmesine ve bileşen testlerinin testler geçene kadar uygulanmasına dayanır.

b) Entegrasyon testi

Entegrasyon testi, bileşenler arasındaki arayüzleri, dosya sistemi donanım gibi sistemin farklı parçalarının birleştirilmiş hallerini test etme amacıyla tasarlanır. Entegrasyon testinin birden fazla aşaması vardır. Bileşen entegrasyon testi, bileşen testleri yapıldıktan sonra ve bileşenler entegre edildikten sonra bileşenlerin aralarındaki etkileşimi görmek için yapılan testtir. Sistem entegrasyon testi ise farklı sistemleri ya da yazılımla donanım arasındaki etkileşimleri görmek için yapılan testtir ve sistem testinden sonra yapılması gerekir. Bu aşamada geliştiriciler arayüzün sadece bir tarafını görürler ve bu riskli olabilir. Bu yüzden çoklu platformlar geliştirilmelidir. Hataları bileşenlerden ve sistemlerden izole etmek çok daha zordur, risk artacak ve daha çok zamana ihtiyaç durulacaktır.

30

Sistematik entegrasyon stratejileri sistem mimarisine, fonksiyonel görevlere, işlem dizilerine ya da sistemin ya da bileşenlerin bazı farklı yönlerine dayanmaktadır. Sırasıyla hata izolasyonunu kolaylaştırmak ve hataları erken bulabilmek için entegrasyon arttırılabilir olmalıdır. Fonksiyonel test kadar fonksiyonel olmayan test de entegrasyon testi içerisinde yapılabilir.

Testçiler entegrasyon mimarisini anlamalı ve entegrasyon planına dahil olabilmelidirler. Eğer entegrasyon testleri bileşenlerden önce ve sistem inşa edilmeden önce planlanırsa, bu bileşenler sırasıyla daha etkili test edilerek inşa edilebilirler.

c) Sistem testi

Sistem testi sistemin ya da ürünün genel davranışıyla ilgilidir. Test ortamı üretim ortamına olabildiği kadar uygun olmalıdır. Böylece test sırasında görülemeyen çevreye bağlı hataların oluşma olasılığı azalacaktır.

Sistem testleri risk odaklı, anlaşmadaki gereksinimleri, iş süreçlerini, sistem davranışlarını açıklayan dokümanları, sistemin işletim sistemleriyle etkileşimlerini kontrol edebileceğimiz test durumları içermelidir.

Sistem testleri, sistemin fonksiyonel olan ve olmayan gereksinimlerini ve veri kalite karakteristiklerini kontrol etmelidir. Testçiler tamamlanmamış ve dokümana yansıtılmamış gereksinimlerle de ilgilenmek durumunda kalacaklardır. Fonksiyonel gereksinimler için olan sistem testleri, sistemin görünen anlaşmada kararlaştırılmış tekniklerinin test edilmesiyle başlar. Altyapı tabanlı teknikler ise daha sonra yapısal bir elemanla alakalı olarak testin titizliğini göstermek için yapılabilir.

d) Kabul testi

Kabul testi müşterilerin ya da kullanıcıların sisteme karşı olan güvenilirliklerini arttırır. Kabul testinde amaç sisteme karşı ya da sistemin bir parçasına ya da sistemin fonksiyonel olmayan karakteristiklerine karşı güven oluşturmaktır. Kabul testinde amaç hata bulmak değildir sistemin piyasaya çıkmaya ve kullanılabilirliğe hazır olduğunun göstergesidir. Kabul testi yazılım döngüsünün farklı zamanlarında ortaya çıkabilir. Bir bileşenin kullanılabilirliğini test etmek için kabul testi birim testi esnasında yapılabilir ya da yeni fonksiyonel bir iyileştirme için kabul testi sistem testinden önce yapılabilir.

31

Kabul testinin bileşenleri aşağıda listelenmiştir:

Kullanıcı testi

Sistemin uygunluğu ve özel bir iş için yapılandırılan sistemin kullanılabilirliği çalışanlar tarafından kontrol edilir.

İşletim testi

Sistemin kabulü, destek testi, acil durum kurtarma, kullanıcı yönetimi, bakım görevleri, veri yükü ve güvenlik için periyodik kontrollerini içerecek şekilde sistem yöneticisi tarafından yapılır.

Sözleşme ve düzenleme testleri

Sözleşme kabul testleri müşteriye yönelik geliştirilmiş yazılımlarda sözleşmenin güvenilirliğine karşılık yapılan testlerdir. Kabul kriterleri sözleşme esnasında belirlenir. Düzenleme kabul testleri ise devletle anlaşmalı, legal ya da güvenlik düzenlemeleri gibi sözleşmelerde yapılması zorunlu olan testlerdir.

Alfa ve Beta testi

Yazılım satışa sunulmadan önce yazılımcılar potansiyel müşterilerden geri besleme almak isterler. Alfa testi sadece geliştiricilerin kendi yerlerinde uyguladığı bir testtir. Beta testi ise potansiyel müşteriler tarafından kendi ortamlarında kullanılır.