Test uzmanları tarafından Yazılım Testi Yaşam Döngüsünde (STLC) gerçekleştirilen temel etkinliklerden bir tanesi test senaryolarını yazmaktır. Etkili test senaryosu yazmak önemlidir ve test senaryolarının yazılacağı uygulamanın derinlemesine incelenmesiyle yapılabilir. Başarılı test senaryoları yazmaya yönelik yaklaşımın adımlarını; gereksinimleri belirlemek, tanımlamak ve analiz etmek olarak sıralayabiliriz.
Test Senaryosu Nedir?
Test senaryosu test uzmanlarının izleyeceği planlardır, bu nedenle açık, eksiksiz ve doğru olmalıdırlar. Ayrıca bir test uzmanının test edilen bir sistemin gereksinimleri karşılayıp karşılamadığını ve doğru çalışıp çalışmadığını belirleyeceği bir dizi koşullar olarak da tanımlayabiliriz.
Test senaryoları küçük ve birbirinden bağımsız olmalıdır. Test senaryoları kolay anlaşılabilmeli, hızlı bir şekilde yürütülebilmeli ve birbirinden bağımsız başarılı ve başarısız olarak sonuçlanabilmelidir. Ayrıca test senaryosunun beklenen sonucu tanımlanmış olmalıdır.
Test Senaryoları Tasarım Dokümanında Bulunması Gereken Alanlar
Test senaryoları Excel kullanılarak yazılabilir. Excel yerine çeşitli açık kaynaklı veya ücretli test senaryoları yönetim araçlarını da seçebiliriz. Piyasada Quality Center, Test Director veya TestLink gibi farklı test senaryosu yönetim araçları bulunmaktadır. Bu araçlar Excel içe aktarma özelliğini destekler, böylece Excel’e yazılı test senaryolarını kolayca içe aktarabiliriz.
Test senaryosu yürütüldükten sonra, test senaryosunun sonucu işaretlenmelidir. Birçok araç, test senaryosunun adım adım yürütülmesini sağlar. Excel kullanıyorsak, test senaryosunun durumunu kolayca işaretleyebiliriz. Sonuç başarısız olursa, test senaryosuna bir hata kaydı eklenmelidir. Böylelikle, test ilerlemesini izlemek ve uygulamanın kalitesini ölçmek kolaylaşacaktır.
Etkili Test Senaryoları Yazmanın Faydaları
- Test senaryo dokümantasyonu ile testlerimizin kapsamını arttırabiliriz.
- Hata düzeltmelerini azaltabilir ve gelecekteki maliyetleri düşürmeye destek olabiliriz.
- Test senaryoları, mevcut ve gelecekteki projelerde tekrar kullanılabilir.
- Yazılımın kalitesini ve kullanıcı deneyimini iyileştirebiliriz.
Etkili Test Senaryoları Nasıl Yazılır?
Etkili ve iyi test senaryoları yazmak için aşağıdaki bazı adımları izlememiz gerekir.
- Testin Kapsamı ve Amacı Belirlenmeli
Etkili test senaryoları yazmaya başlamadan önce en önemli nokta, test edilebilir gereksinimleri belirlememiz gerektiğidir. Testin amacını, özelliklerini ve kullanıcı gereksinimlerini anlamamız gerekir. Tüm gereksinimlerin üzerinden eksiksiz bir şekilde geçtiğimizden emin olmalıyız. Bu aşamada aşağıdaki soruları sorabiliriz:
- Neler kapsam dahilinde test edilmeli?
- Neler kapsam dışında bırakılmalı ve test edilmemeli?
Örneğin; bir uygulamaya kayıt olurken doldurmamız gereken isim alanı için, isimler özel karakterler içeremez şeklinde bir gereksinimimiz olsun. Eğer bu gereksinime dikkat etmezsek ve geliştirme sırasında da özel karakter girilememesi için bir kısıt eklenmemişse özel karakter içeren isimler kaydedilebilecektir. Dolayısıyla testin kapsamı, amacı yetersiz olacak ve gereksinimleri karşılamamış olacağız.
- Test Faaliyetlerinin Nasıl Gerçekleştirileceği Tanımlanmalı
Etkili test senaryolarını tanımlamaya başlamak için bir uygulamanın fonksiyonel gereksinimlerini daha iyi anlamalıyız. Dolayısıyla, test senaryolarının ve test adımlarının etkili bir şekilde yazılabilmesi için tüm fonksiyonel gereksinimlerin bilinmesi gereklidir. Genel olarak test senaryoları çeşitli bileşenlerin işlevselliğini, uyumluluğunu, kullanıcı ara yüzünü ve hata toleransını kapsamalıdır.
Para hesaplamalarının çok kritik olduğu bankacılık uygulamalarında bir para ödeme işlemini ele alalım. Gereksinimlerde belirtilmiş olmasına rağmen gerçekleşecek olan işlemde ondalık kısımların hesaba katılmaması durumunda hesaplamalarda yanlışlıklar ortaya çıkacaktır.
- İşlevsel Olmayan Gereksinimler Belirlenmeli
Fonksiyonel gereksinimler ile birlikte, fonksiyonel olmayan gereksinimler de eşit derecede önemlidir. Temel olarak işletim sistemi, donanım gereksinimleri, güvenlik özellikleri, performans özellikleri gibi fonksiyonel olmayan gereksinimler ve ayrıca test verilerinin hazırlanması gibi test için gerekli ek ön koşullar tanımlanmalıdır.
Örneğin, ekrana kullanıcı bilgilerinin girildiği bir senaryo düşünün, bu durumda kullanıcı bilgilerini uygulamaya girerken zaman aşımına uğramamasını sağlamak için geliştirici tarafından uygun zaman aşımı tanımlanmalıdır. Aynı zamanda kullanıcı birkaç kez boşta kalırsa, uygulama güvenliğinin ihlal edilmediğinden emin olmak için önceden belirlenen gecikme süresinden sonra sistem otomatik olarak oturumu kapatmalıdır.
- Uçtan Uca Veri Kontrolleri Sağlanmalı
Testler sırasında yazılım modüllerinin detaylarını daha net bir şekilde görebilir ve daha kolay anlayabiliriz. Dahili modüllerle entegrasyonun önemi de daha anlaşılır olacaktır. Bu nedenle, daha iyi test senaryoları yazmak için modülleri en iyi şekilde anlamalıyız ve her modülün öneminin ayrı ayrı farkında olmalıyız.
Örneğin; banka müşterileri arasında gerçekleşen para transferi örneğini ele alalım, bir müşteri başka bir müşteriye para transferi gerçekleştirdikten sonra para gönderen müşteriye ait hesabın güncellenmesi gerekmektedir. Testler sırasında gerekli kontroller veri tabanı üzerinden sağlanabilir.
Test Senaryolarını Daha Etkili Yazmak İçin Önemli Noktalar:
- Test Senaryoları şeffaf, kolay anlaşılabilir olmalı ve basit adımlardan oluşmalıdır
Test senaryolarındaki adımlar konu ile ilişkili ve ayrıntılı olmalıdır, böylece farklı bir test kullanıcısı test senaryolarını kolaylıkla yürütebilir. Test senaryolarının amacı ve kapsamı, test senaryosunda iyi tanımlanmalıdır, yani test senaryoları kendi kendini açıklayıcı olmalıdır. Ayrıntılı adımların yanı sıra, tüm ön gereklilik test verileri, test senaryosunun kendisinde belirtilmelidir.
Test senaryoları ekip üyeleri tarafından gözden geçirilebilir.
Yönetici paneline giriş yapmaya ait bir test senaryosunu örnek olarak inceleyecek olursak, yönetici paneline giriş yapılabilmeli senaryosu yerine, yönetici paneline sadece yönetici statüsüne sahip bir kullanıcı ile giriş yapılabilmeli şeklinde hangi kullanıcıların giriş yapabileceği net bir şekilde belirtilmelidir.
- Test Senaryoları Geçerli, Kısa ve Öz Olmalıdır
Test senaryoları yalnızca geçerli ve elzem adımlara sahip olmalıdır. Gerçekleştirilecek çok fazla test adımına sahip tek bir test senaryosu varsa, bu test senaryosu amacını kaybedebilir. Bu nedenle, her bir test senaryosunun beklenen bir sonucu olmalı ve çok fazla beklenen sonucu kapsamaya çalışmamalıdır. Son kullanıcıların bakış açısı düşünülerek Test senaryosu oluşturulmalıdır. Test senaryoları tekrarlanmamalıdır, aynı adımların yürütülmesi gerekiyorsa ön koşul olarak belirtilmelidir.
Yine aynı yönetici paneli örneği ile devam edecek olursak, yöneticilerin hem yönetici paneline hem de kullanıcı paneline giriş yapabileceği bir gereksinim olsun. Yöneticilerin, yönetici paneline girişi ve kullanıcı paneline girişi ayrı senaryolar olarak ele alınmalıdır.
- Test Senaryoları İzlenebilir Olmalıdır
Her bir test senaryosu izlenebilir olmalı ve gereksinimlerin %100’ünü kapsayacak şekilde test senaryoları yazılmalıdır. Testler sırasında hiçbir gereksinimin kaçırılmadığını garanti etmeliyiz. Gereksinimlerden herhangi birinin değişmesi durumunda etki analizini kolayca yapabilmeliyiz ve etkilenen test senaryolarını güncellemeliyiz.
Yukarıdaki örnekte olduğu gibi yöneticilerin hem yönetici paneline hem de kullanıcı paneline giriş yapabileceği bir gereksinim olsun. Bu gereksinimi 2 farklı senaryo ile ele almamız gerektiğini belirtmiştik. Bu gereksinime ek olarak yönetici paneline giriş sırasında sms doğrulaması gereklidir şeklinde ek gereksinim eklendiğini varsayalım. Tüm senaryoları yeniden yazmak yerine sadece yönetici paneline giriş senaryosunun güncellenmesi yeterli olacaktır.
- Test Teknikleri Uygulanmalı
Test senaryoları yazılırken denklik sınıfları, sınır değer analizi gibi birkaç test senaryosu tasarım yöntemi kullanılmalıdır. Koddaki en olası kusurları keşfetmemize yardımcı olabilecek başarısızlık koşulları, hata yönetimi yöntemlerini de göz önünde bulundurmalıyız.
- Test Senaryolarının Çeşitliliği İçin Test Verilerinin Hazırlanması
Tüm senaryoları karşılayacak şekilde gerekli tüm verilerin hazırlanması gerekmektedir. Örneğin, pozitif test senaryolarını test etmek için geçerli veriler, negatif test senaryolarını test etmek için geçersiz veriler gereklidir. Yukarıdaki maddelerde vermiş olduğumuz örnek ile ilerleyecek olursak, yönetici kullanıcısının sisteme giriş yapabildiği pozitif senaryo dışında yönetici olmayan kullanıcı ile de yönetici paneline giriş denenmeli ve giriş yapılamadığı görülmelidir.
Kaynakça: