Yazılım testini manuel ve otomasyon olarak ikiye ayırabiliriz. Manuel testte insan testçi bir son kullanıcı rolü üstlenir ve yazılımın vaat edilen özelliklerini çalıştırarak beklenen davranışları verip vermediğini inceler. Yazılım testi yapan testçi sıklıkla bir test planını takip eder. Test otomasyonu ise yazılım test aktivitelerinin otomatikleştirilmiş halidir. Daha genel bir ifadeyle, yazılım testi çeşitli özel yazılımlar kullanarak beklenen çıktılarla gerçekleşen çıktıların karşılaştırılmasıdır [1]. Manuel ya da test otomasyonu arasında karar vermek çeşitli faktörlere bağlıdır. Bunların en başında da daha önce manuel test yapan bir bireyi test otomasyonuna adapte edilmesi gelir. Bununla birlikte test otomasyonu tamamen manuel testin yerini alamaz ve personel giderlerinizi düşüremez. Test otomasyonunun hazırlanışı sırasında eğer senaryolar ve planlar uygun bir yaklaşımla, doğru içeriğe göre hazırlanmazsa hataya sebebiyet verebilir [2].
Tipik bir test süreci birkaç adımdan oluşur. Bunlar test özelliklerinin planlanması (test-case design), çalıştırma ve raporlamadır. Bunlardan bazıları manuel bazıları ise test otomasyonuyla yapılır. Test otomasyonunu daha iyi anlamak için test otomasyonunun şu altı adımını inceleyelim:
- Test vaka tasarımı (Test-case design): Arzu edilen kriterleri kapsamak için test vakaları ya da test gereksinimi listesinin tasarlanması, diğer mühendislik amaçları veya insan deneyimi.
- Test senaryosu: Manuel test senaryolarındaki test vakalarını ya da otomasyon test kodlarının dokümantasyonu.
- Test yürütme: test vakalarını test altındaki yazılımda çalıştırma ve sonuçları kaydetme
- Test değerlendirme: test sonuçlarını değerlendirme (başarılı veya başarısız), test hükmü olarak da bilinir.
- Test sonuç raporu: test sonuç hükümlerinin ve bozukluklarının geliştiriciye raporlanması. Örneğin; açık (arıza) takip sistemi aracılığıyla.
- Test yönetimi ve diğer test mühendisliği aktiviteleri: Test yönetimi planlama, kontrol, izleme ve performans değerleme adımları gibi adımları içerir. Diğer test adımları ise test paketi minimizasyonu ve regresyon testi seçme işlemleridir.
Bu adımları daha iyi anlamak için Şekil 1’e bakalım:
Şekil 1. Test otomasyonun genel görünümü [2]
Referanslar
- Taipale, J. Kasurinen, K. Karhu, and K. Smolander, “Trade-off between automated and manual software testing,” International Journal of System Assurance Engineering and Management, vol. 2, pp. 114-125, 2011.
- Vahid Garousi , Mika V. Mantyla , “When and what to automate in software testing? A multi-vocal literature review”, Information and Software Technology (2016).