Test, bir programın davranışını Statik ve Dinamik yöntemlerle, bir küme içinden seçilerek ve test durumlarını (Test Caseleri) kullanarak, beklenen davranışa uyup uymadığını tespit etme işlemidir.
Yazılım test süreçlerinin temeli olan test senaryosu hazırlamak ve Test Case'lerini işletmek, hem yazılımın kalitesini artırmaktadır hemde önceden çıkabilecek hataların önüne geçmeyi amaçlamaktadır. Test sayesinde yazılımın, hem fonksiyonel hem de fonksiyonel olmayan gereksinimlerin, kalite seviyesini belirlemek mümkündür.
Doğru şekilde tasarlanmış ve başarıyla tamamlanmış bir test, bir yazılımdaki genel risk algısının düşmesini sağlar. Buda Production ortamına daha az hatalı hatta hatasız ürün sunmak demektir. Test Case'ler ihtiyaca göre hazırlanan, input ve output parametrelerine göre beklenen sonucu kontrol etmeye yarayan (Steps) adımlardır.
Yazılımı ne kadar test etmek gerekir sorusunu açıklayacak olursak. İlk olarak Analiz dokumanı test öncesi baz alınacak içeriktir. İstenilen ürün tam olarak nasıl açıklanmışsa buna uygun özgün Test Case'ler yazılıp Step'ler ilerletilerek test edebilirsiniz. Analiz dokumanı dışında, analizde olmayan ama oluşabilecek durumlarda düşünülüp Test senaryonuzun içinde olmalıdır. Burada kapsam, zaman, maliyet gibi proje kısıtlarını göz önünde bulundurmak gerekir. Yedi test prensibinden biri olan; Yazılımı %100 test etmek imkansızdır. Bu yüzden bir yazılımın testini karalı yaparken gereğinden fazlada uzatmamak gerekir.
Test süreçlerine başlamadan önce yapılan Statik Test veya öz izleme yazılımın ürününe değil yazılımın ortaya çıkması için gerekli kod, gereksinim, mimari yapı, doküman gibi çıktıların test edilmesiyle ilgilidir.
* Birbirini tekrar eden Test Case'leri yazmamaya özen gösterin. Direk analiz dokümanından kopyala-yapıştır şekilde test senaryolarınızı hazırlamayın.
* Etki Analizi yapılmalıdır. Analizde değişen maddeler olduysa senaryo yenilenmelidir.Etki analizi (Impact Analysis), iş taleplerinde olası değişiklikler sonucunda başarılı bir gereksinim yönetimi gerçekleştirmek için iş analistleri tarafından yapılması gereken önemli bir çalışmadır.
* Test senaryonuz aşağıda anlatacağım gibi detaylı ve Teknik Analiz gibi olmalıdır. Eğer test yaptığınız yazılımın detaylı teknik test senaryosuna geri dönmüyor sanız o test senaryosunun bir amacı yoktur ve yazmanızın da çok anlamı kalmaz. Geri dönülme ihtiyacı hissedilen test senaryoları her zaman kalitelidir.
* Analiz dokümanını %100 kapsayacak test senaryosu hazırlanmamalıdır. Production ortamına ait Case'ler de test ortamından yapılan test senaryosu içinde olmamalıdır.
* Test stratejinizi belirleyip Master Test Planı doğrultusunda parça parça testlerinizi yapmanız daha iyi olacaktır.
* Test stratejinizi belirleyip Master Test Planı doğrultusunda parça parça testlerinizi yapmanız daha iyi olacaktır.
* Her senaryo dizini baştan sona o fonksiyon ve Widget'ın bütününü içermelidir. Test Case'leri buna göre hazırlanmalıdır.
Test senaryosu hazırlamak için birçok araç vardır. Biz en temel Tool olan Microsoft Excel aracını kullanacağız. Test senaryosu hazırlarken senaryo net ve anlaşılır olmalıdır. Temel bir test senaryosunda olması gerekenler Test senaryosunun adı, işletilecek test adımı ve beklenen sonuç şeklinde olmalıdır. Son olarak Step başarılı gerçekleştiyse durum kısmını başarılı veya başarısız olarak güncellemeli siniz.
Bir yazılımda bir fonksiyonu test ediyorsunuz, bu fonksiyona ulaşmak için hep yaptığınız Login-Giriş işlemlerini Step olarak yazmak zorunda değilsiniz. Bu senaryo sizin asıl test senaryonuz değildir bu yüzden fonksiyona ulaşana kadar ki süreci test senaryonuza yazmayın veya bir defa yazın. Genelde büyük ve karmaşık yazılımlarda testi yapılmış ve senaryoları belli ana Steplerin adımlar Test kütüphanesi (Test Library) içinde zaten olur.
Excel'deki Test Senaryosu Dokumanında olması gereken Title'lar;
* Test Case No: Test Numarası (Kesin Olmalıdır)
* Priority (Öncelik)
* Test Name: Test Senaryosu Adı (Kesin Olmalıdır)
* Test Step: (Test Adımı, Adımları (Kesin Olmalıdır)
* Result: Beklenen Sonuç (Kesin Olmalıdır)
* Status: Durumu, Done/Undone - Pass/Fail (Kesin Olmalıdır)
* Test Datası
* BUG (Hata) Sayısı yazılır
* Notes (Detay ve Notlar)
* Sprint No (Agile & Scrum Çalışmasında Kullanılır)
Aşağıda örnek senaryo anlatımı olarak Oracle Human Resources tablolarını kullanacağım. Üç katmanlı (Birçok katmanlı) test senaryosu nasıl yazılır bundan bahsedeceğim. Test senaryolarımızı Arayüz(Front-End), Veri Tabanı kontrolü Back-End(Database), Servis(Service) olarak ilişkilendirirdim. Database'de kolonların ve tabloların kontrolünden, Servis deki Output ve Input çıktılarına göre XML-Tag kontrolünü sizde test senaryonuzun içine yazabilirsiniz.
Burak AVCI - Update: 05.04.2022