Yazılım Testi ve Test Metodolojileri
Yazılım testleri ,yazılım geliştirme ve uygulama yaşam döngüsünün(ALM) önemli parçalarındandır. Madem öyle, önce uygulama yaşam döngüsünün(ALM) ne olduğu özetleyelim. Bir tester'ın yazılım sürecinin tamamı hakkında bilgi sahibi olması gerekli diye düşünüyorum.
Özetle, ALM bir yazılımın planlanmasını, doğuşunu, büyümesini ve gelişmesini, emekliliğini ve aramızdan ayrılmasını kontrol etmeyi amaçlar.
Uygulama yaşam döngüsü(ALM) ise aşağıda görüldüğü gibidir. Amaç özet olarak ALM yi anlatmak olduğu için maddeler ile ilgili detaylara yer vermiyoruz. Zaten okumayı sevmeyen bir milletiz.. =) Dilerseniz konu ile ilgili bir çok daha detaylı bilgiye google amca üzerinden kolaylıkla ulaşabilirsiniz.
Yazılım testleri ,yazılım geliştirme ve uygulama yaşam döngüsünün(ALM) önemli parçalarındandır. Madem öyle, önce uygulama yaşam döngüsünün(ALM) ne olduğu özetleyelim. Bir tester'ın yazılım sürecinin tamamı hakkında bilgi sahibi olması gerekli diye düşünüyorum.
Özetle, ALM bir yazılımın planlanmasını, doğuşunu, büyümesini ve gelişmesini, emekliliğini ve aramızdan ayrılmasını kontrol etmeyi amaçlar.
Uygulama yaşam döngüsü(ALM) ise aşağıda görüldüğü gibidir. Amaç özet olarak ALM yi anlatmak olduğu için maddeler ile ilgili detaylara yer vermiyoruz. Zaten okumayı sevmeyen bir milletiz.. =) Dilerseniz konu ile ilgili bir çok daha detaylı bilgiye google amca üzerinden kolaylıkla ulaşabilirsiniz.
- İhtiyaçların belirlenmesi.
- Ekibin oluşturulması ve projeye başlanması.
- Gereksinimlerin analiz edilmesi(Müşterilerden alınması ya da uygulama alanında yapılacak işin gereksinimlerinin analiz edilmesi)
- Teknik alt yapının ve gerekli ise tasarımın tamamlanması.
- Test ekibi tarafından test senaryolarının oluşturulması.
- Yazılım geliştiricilerin kod yazmaya başlamaları.
- Dışarıdan gelen/gelecek talepleri doğru analiz edilerek yönetilmesi.
- Kabul testinin yapılması.
- Projenin yayına alınması.
- Bakım destek alt yapısının oluşturularak sürdürülmesi.
- 11. Projenin yayından kaldırılması, kapatılması.
Şimdi gelelim asıl konumuz olan test olayına. Yazılım testleri,belirlenen ihtiyaçların karşılanıp karşılanmadığını, herhangi bir işlem sonucunda istenen sonucun oluşup oluşmadığını kontrol etmek olarak tanımlanabilir. Her hangi bir işlem için birçok test durumu ve stratejileri hazırlanabilir. Oluşturulan her bir test, test durumu ve stratejisi istenen sonucu en doğru/etkin şekilde elde etmeyi amaçlar.
Yazılım Test Metodolojileri
Black-Box Testi:
Sadece fonksiyonellik ve ihtiyaçlara yönelik test çeşididir. Black-box testleri, Closed Box, Fonksiyonellik testi,veya Opaque olarak da adlandırılır. Black-Box testleri, yapılacak işlemin fonksiyonelliğine uygun girdi(veri) seçimini ve bu girdinin yapılacak olan işlemin beklenen ya da beklenmeyen çıktı vermesini dikkate alır.
Black-Box testleri 2 başlık altında incelenebilir.
Kullanıcının Var Olmadığı Testler:
- Araştırma Testi: Test edilecek olan işlem ya da uygulamanın test öncesinde öğrenilmesi, hakkında fikir edinilmesini amaçlar.
- Ad-Hoc Testi: Genellikle yapılacak bütün testlerin sürelerinin belirlenmesini amaçlar.
- Yenilenme Testi:Uygulamanın herhangi bir hataya karşı ne kadar sürede eski haline geleceğini test eder.Sistem gereksinimlerine göre,tip ve yenileme hızı belirlenir.
- Seviye Testi: İşlemlerin yapılacağı sistemin uç noktasına kadar zorlanması ve bu uç noktanın belirlenmesi amaçlanır.Seviye Testi: İşlemlerin yapılacağı sistemin uç noktasına kadar zorlanması ve bu uç noktanın belirlenmesi amaçlanır.
- Fonksiyonellik Testi(FunctionalTesting): Adından da anlaşılacağı gibi uygulamaya ait fonksiyonların test edilmesidir. Beklenen çıktı alındığı sürece, test devam eder.
- Kullanılabilirlik Testi(Usability Testing): Özellikle arayüzünü bir çok kullanıcının kullanacağı ve arayüzün önemli olduğu uygulamalar için yapılması gereken bir test çeşididir.
- Stres Testi(Stress Testing): Aynı işlemin(Örn: Üye girişi) aynı anda yüksek adetlerde yapılması ve sonuçlarının izlenmesi olarak tanımlanabilir . Bu testte, yapılan işlemler karşısında sistemin verdiği tepki ve sistemin dayanıklılığı gözlenir.
- Yükleme Testi(Load Testing): Sistem performanslarını ölçmek amacı ile yapılır. Burada amaç, kullanılan sistemin nerede ve hangi koşullarda çökeceğini belirlemektir.
- Duman Testi(SmokeTesting) : Genel olarak mantık testi olarak bilinir. Duman testinden geçmiş bir uygulama, daha büyük testler için hazırdır. Yani küçük testler sorunsuz yapılmıştır.
- Kabul Testi(Acceptance Testing): Kullanıcıların sistemin beklentileri karşılayıp karşılamadığına yönelik yaptığı testlerdir.
- Alfa Testi(Alpha Testing): Kullanıcıların uygulama geliştirme merkezine çağrıldığı ve kullanıcının burada yapacağı işlemlere göre geliştiricilerin düzeltilmesi/değiştirilmesi gereken kısımları not aldığı testlerdir.
- Beta Testi(Beta Testing): Uygulamanın kullanıcılar tarafından test edildiği bir test çeşididir. Kullanıcılar için beta versiyonu yayınlanır. Ardından kullanıcılardan gelecek geri dönüşler doğrultusunda düzeltmeler yapılır.
White - Box testlerinde amaç kodun test edilmesidir. Kodun koşullarını,alanlarını ve açıklamalarını temel alır. White-Box testi,cam,açık kutu,temiz kutu olarak adlandırılmaktadır.Bu testte,testi yapan kişi sorunlu kısmı bulmak için kodu incelemelidir.
Avantajları
- Gereksiz kod yazılmasını engeller.
- Arayüz üzerinden görünmesi zor sorunların tespit edilmesini sağlar.
- Kod'un çalışma performansını arttırır
- Zor ve zaman alan bir işlemdir. Kodun satır satır okunması ve incelenmesini gerektirir
- Maliyetli bir işlemdir.
- Birim Test(Unit Testing): Genellikle yazılım geliştiriciler tarafından yapılır. Küçük kod blokları test edilir.
- Statik ve Dinamik Analiz(Static and Dynamic Analyzing): Statik analiz kodu sıralı bir şekilde inceler ve hataları araştırır.Dinamik analiz,kodun çalışmasını ve çıktıyı analiz eder.
- Açıklama Kapsamı:Kod içerisindeki açıklamalar test edilir. Bütün açıklamaların doğruluğu teyit edilir.
- Güvenlik Testi (Security Testing): Sistem güvenliğinin test edilmesidir. İzinsiz erişim v.b. konularda sistem açıklarının tespit edilmesi ve bu açıkların kapatılmasını amaçlar.
- Değişim Testi:Sistemde var olan bir sorun giderildikten sonra yapılan genel bir testtir.