“Software testing consists of the dynamic verification of the behavior of a program on a finite set of test cases, suitably selected from the usually infinite executions domain, against the expected(“specified and implied”) behavior”.
Burada anlatılmak istenen yazılım testinin; yazılımın sınırlı sayıda ve seçilmiş test senaryoları kullanılarak beklenilen davranışı gösterdiğinin dinamik olarak yani kodun çalıştırılarak doğrulanması aktivitesidir.
Test, bir doğrulama aktivitesidir. Yazılımın dinamik olarak geçerlemesidir aslında. Gereksinim, Tasarım, Kodlama gibi aktivitelerde yapılan statik geçerleme analizlerinin tamamlayıcısı sayılabilir. Test aşamasında bulunan bir hatanın düzeltme maliyeti, bakım aşamasında ortaya çıkan bir hatanın düzeltme maliyeti yanında oldukça düşük kalır. Bunun yanında, müşterinin bulduğu hataların size sadece maliyet olarak değil, güvensizlik ve pazardaki rekabeti düşüren bir faktör olarak geri dönmesi de kaçınılmazdır.
Elbette ki müşteriye teslim edilen versiyonda hiç hata olmaması mümkün değildir fakat kritik hataların müşteri tarafından bulunması projenin ne kadar başarısız olduğunun da bir göstergesidir.
Bir çok proje, test sürecinin belirsizliği ve test yönetiminin eksikliğinden dolayı olumsuz sonuçlanmaktadır.Test süreci, proje yaşam döngüsü içinde kurum ve yüklenici arasındaki güçlük derecesi en yüksek olan aşamadır.Projenin en son aşaması olarak yer alan "test süreci”, test planlaması ve yönetimi altında, projenin başından itibaren devreye alınarak, ürün kalitesini ve projede beklenen sonuçların elde edilmesini güvence altına almaktadır. Bence yazılımda iyi bir test sürecinin olması, yazılımın kalitesini etkileyen en önemli faktörleden birisidir.
Yazılım test süreçlerinde özellikle gereksinimlerin ve tasarımın anlaşılması çok önemlidir. Gereksinim bazlı testlerde, gereksinimlerin yanlış yorumlanması hatalı teste, bu da çalışmayan ya da hata vermesi beklenen bir sistemin onaylanmasına sebep olabilir. Test planı oluşturulurken de gereksinimlerin ve de projenin doğası, yapısı girdi olacaktır. Planda belirtilen yaklaşımlarla test tasarımları, durumları ve prosedürleri hazırlanır. Daha sonra hazırlanan bu dokümanlar gözden geçirilir. En sonda yapılıyor gibi görünmesine rağmen, test dokümanlarının hazırlanması aşamasına paralel olarak test ortam ve araçları, kullanılacak veriler hazırlanır. Hatta kullanılacak test ortamı test tasarımlarını ciddi anlamda etkiler, bu tip durumlar için test ortamı ne kadar erken hazırlanırsa o kadar iyi olur.
Günümüzde pek çok yazılım firmasında “Yazılım Test Mühendisliği” kavramı oturmamıştır. Birim testler, modül testleri ve entegrasyon testleri, en nihayetinde de müşteri kabul testleri halen projeyi geliştiren yazılım mühendisleri tarafından yapılmaktadır. Testlerin bağımsız kişiler tarafından yapılmasına gerek görülmemektedir.
Fakat son zamanlarda ülkemizdeki bazı firmaların emniyet kritik askeri projelerde yer alması ve bu projelerin de bir takım standardlara uyma zorunluluğu beraberinde bağımsız yazılım doğrulama aktivitelerinin gerçekleştirilemsine ve bu vesileyle yazılım geliştirme ekibinden bağımsız yazılım doğrulama ve geçerleme grupları oluşturulmasına ön ayak olmuştur.
Hiç yorum yok:
Yorum Gönder