Yazılım yaşam döngüsünde her bir sürecin ayrı uzmanlık alanı olmasının yanı sıra her projede test ekipleri konumlandırılamamaktadır. Bu aşamada iş yine iş analistlerine düşmektedir. İş analistlerinin diğer yetkinlikleriyle beraber ortalama bir test uzmanı kadar test bilgilerini taze tutması önemlidir.
İş analistlerinin test süreçlerini doğru bir şekilde yürütebilmeleri için test edilecek ürünün test ihtiyaçlarını belirleyebilecek bilgi birikiminde olmaları gerekmektedir. Tüm sistemi test etmenin hiç bir zaman bitmeyecek bir süreç olduğunu kabul ederek, testin ne zaman bitirileceğine karar verebilmek yine biz iş analistlerine düşecektir.
Bu yazı iş analistlerinin yazılım geliştirme yaşam döngüsündeki test süreci hakkında sorularına yanıt bulabilmesi amacı ile hazırlanmıştır.
Test Nedir?
IIBA® (International Institude of Business Analysis) ve ISTQB® (International Software Testing Qualifications Board) gibi uluslararası otoritelere göre, test bazı hedeflere sahip olmalıdır.
Bu hedefler:
- Hataları bulmak
- Kalite düzeyi hakkında güven kazanmak
- Karar vermek için bilgi sağlamak
- Hataları önlemek
Yukarıdaki amaçlar doğrultusunda, testin kısa bir tanımını yaparsak; “Ürünün kullanıcının ihtiyaçlarını ne kadar karşıladığını belirlemek için yapılan bir hata tespit işlemi” olduğunu söyleyebiliriz.
Temel Test Süreci Nedir?
Yazılım Testi Yaşam Döngüsü (STLC) beş ana faaliyeti temel alır, bu faaliyetlerin bazı çıktıları (dokümanları) vardır. İdeal dünyada test çıktılarının test ekibi tarafından oluşturulması hedeflenmektedir, test ekiplerinin yer almadığı projelerde bu belgelerin iş analistleri tarafından oluşturulması gerekir.
1. Planlama ve Kontrol (Planning & Control)
Planlama, test yaşam döngüsü boyunca devam eden, test hedefleri ve özelliklerine karar verilen bir aktivitedir.
Planlama adımı, testin kapsamı, riskleri, yaklaşımı, ortamı ve çıkış kriterleri gibi önemli faaliyetlerin karar verildiği adımdır.
Kontrol adımı, test sonuçlarının analiz edilmesi, bilgi ve karar verilmesi gibi bazı faaliyetlere sahiptir.
Planlama ve kontrol adımının çıktısı, ‘Ana Test Plan Belgesi (Master Test Plan)’ dokümanıdır.
2. Analiz ve Tasarım (Analysis & Design)
Test temellerinin analizi, test tasarımı, test koşullarını tanımlama faaliyetlerini içerir. Analiz ve tasarım adımının çıktıları ‘Test Tasarım Özellikleri (Test Design Specifications)’ ve ‘Test Case Özellikleri (Test Case Specifications)’ dokümanlarıdır. Bu dokümanlar gereksinimleri, test tasarımını, mimariyi, arayüzleri ve testin risklerini kapsar.
3. Uyarlama ve Uygulama (Implementation & Execution)
Test Case’lerinin koşulması ve test sonucu karşılaştırma faaliyetlerinin gerçekleştirildiği adımdır.
Çıktısı, ‘Test Prosedürü (Test Procedure)’ dokümanıdır.
4. Çıkış Kriterinin Değerlendirilmesi ve Raporlama (Evaluating Exit Criteria and Reporting)
Çıkış kriteri, testi durdurma kararına yardımcı olmak için test etkinliğinin yeterliliğini ölçer.
Çıktısı, ‘Test Raporu (Test Report)’ dokümanıdır.
5. Kapatma (Closure)
Test faaliyetinin tamamlanma veya iptal kararının tanımlandığı adımdır. Test hedefine ulaşıldığı, tüm test gereksinimlerinin karşılandığı veya projenin iptal edildiği durumlarda test aktivitesi sonlandırılmalıdır.
Test Seviyeleri ve Türleri Nelerdir?
Test seviyeleri dört temel aşamadan oluşur:
1. Kullanıcı Kabul Testi (UAT)
Sistemin iş gereksinimlerine uygunluğunun değerlendirilmesidir. Test senaryosu, müşteri (kullanıcı) tarafından hazırlanır. Test uzmanları tarafından gerçekleştirilir.
2. Sistem Testi
Tüm sistemin hedeflere dayalı doğrulanmasıdır. Test uzmanları ve yazılım mühendisleri tarafından geçekleştirilir.
3. Entegrasyon Testi
Sistem bileşenlerinin aralarındaki etkileşimin doğrulanmasıdır.
4. Birim Testi
Sistemin ufak parçalarının (kod parçacığı, fonksiyon vs..) test edilmesidir. Yazılım mühendisleri tarafından geçekleştirilir.
İş Analistlerinin Bilmesi Gereken Temel Test Türleri Hangileridir?
Fonksiyon Testi (Functional Testing):
Ürünün fonksiyonel gereksinimlerinin doğrulandığı testtir. Pozitif ve negatif fonksiyon testi olmak üzere ikiye ayrılır.
Pozitif Fonksiyon Testi: Test çıktılarını doğrulamak için geçerli girdiler kullanılarak.
Negatif Fonksiyon Testi: Test çıktılarını gözlemlemek için geçersiz girdiler kullanılarak yapılır.
Fonksiyonel Olmayan Test (Non-Functional Testing):
Sistemin hızı, taşıma kapasitesi, güvenliği, kullanılabilirliği, güvenilirliği gibi fonksiyonel olmayan özelliklerinin test edilmesidir.
Kara Kutu Testi (Black Box Testing):
Bir çeşit fonksiyon testi olarak bilinir. Sisteme verilen girdilere göre beklenen çıktıların test edilmesidir. İş analistleri ve test uzmanları tarafından gerçekleştirilir. Programlama bilgisi gerektirmez.
Beyaz Kutu Testi (White Box Testing):
Kodun açılarak okunması ile yapılan bir test çeşidi olduğu için programlama, uygulama veya sistem bilgisi gerektirir.
Test Birimleri Nelerdir?
Çok fazla test terimi vardır. Aşağıda iş analistlerinin bilmesi gereken en temel test terimlerinden bazıları bulunmaktadır.
Validasyon (Validation): ‘Doğru ürünü yaptık mı?’ sorusuna cevap verir. Ürünün, kullanıcının ihtiyacı olan tüm fonksiyonlara cevap verdiği doğrulanır.
Verifikasyon (Verification): ’Ürünü doğru yaptık mı?’ sorusunun cevabını verir. Gereksinimler doğrultusunda hazırlanan ürün fonksiyonlarının beklenen davranışı gösterdiği doğrulanır.
Error – Mistake: Üründe doğru olmayan bir sonuç üreten eylem.
Defect – Bug – Fault: Ürünün işlevini gerçekleştirmesini engelleyen hata. Sistem çalışırken (runtime) ortaya cıkarsa arızaya neden olabilir.
Failure: Son kullanıcıya yansımış olan hata.
- BA-Works’ün İş Analistleri İçin Yazılım Test Eğitimi hakkında buradan ayrıntılı bilgi alabilirsiniz.
Fitnat BUDAK
Danışman, BA-Works