Minik Bir Yazılım Projesi Simülasyonu -5 — Test Başlıyor!
Eğer yazının ilk bölümünü okumadıysanız mutlaka buraya tıklayarak okuyun.
***
Minik yazılım projesi simülasyonumuzda “Bil Bakalım Kaç” oyunumuzun analizini bitirdik. Yazılım ve test uzmanlarımızla görüştük ve analizi onlara aktardık. Şimdi burada sıra test uzmanında. Test uzmanı analiz dokümanını alarak test senaryolarını oluşturacak ve ardından yazılımcının uygulamayı teste açmasıyla testleri gerçekleştirecek.
Buraya kadar analist rolündeydik. Bu başlıkta test uzmanı rolündeyiz.
***
Test Senaryolarının Oluşturulması
Test uzmanının yazılım projelerindeki görevi yazılımın kalitesini güvenceye almaktır. Yani müşteriye mümkün olduğu oranda hatasız bir yazılım teslim edilmesinden sorumludur. Bunun için gereksinimleri inceler ve geliştirilen yazılımın buna uygun olup olmadığını sınamak üzere testler gerçekleştirir.
Yapılacak testlerin eksiksiz olması ve bu sayede ürünün beklenen kalite seviyesine ulaşabilmesi için test uzmanı testleri gerçekleştirmeden önce test senaryoları hazırlar. Bu senaryolar testlerin nasıl gerçekleştirileceğini anlatan metinlerdir.
(Daha büyük projelerde test planları, test süitler, test case’ler oluşturulur. Gerektiğinde test otomasyonu yapılır. Biz burada çok basit bir projeyi, çok basit bir kapsamla ele aldığımız için test senaryolarıyla yetineceğiz.)
Test uzmanı test senaryolarını hazırlarken öncelikle gereksinimleri inceler ve kullanıcı perspektifinden bakarak neler yapması gerektiğini belirler.
Bu aşamada ilk yapacağımız şey neleri test edeceğimizi, yani test öğelerimizi bulmak. Neleri test edeceğiz?
- Kuklanın ekranın sol altında olup olmadığını. (Ekran gereksinime uygun olarak tasarlanmış mı?)
- Yazılımın 1–100 arasında rastgele bir sayı tutup tutmadığını.
- Geçersiz giriş yapılması durumunu.
- Tutulan sayıdan küçük bir sayı girilmesi durumunu.
- Tutulan sayıdan büyük bir sayı girilmesi durumunu.
Şimdi bu test öğeleri için test senaryomuzun ilk taslağını hazırlayalım.
***
Bil Bakalım Kaç v1 Test Senaryoları v1
1. TS-01 — Oyunda kukla olarak Scratch kedisi kullanıldığını doğrula.
2. TS-02- Yeşil bayrağa basıldığında oyunun başladığını, MSJ-1'in 3 saniyeliğine görüldüğünü ardından tahmin girilene kadar MSJ-2'nin görüntülendiğini ve tahmin giriş kutucuğunun ekranında altında aktif olduğunu doğrula.
3. TS-03- Oyun başladığında yazılımın 1–100 aralığında rastgele bir sayı tuttuğunu doğrula.
4. TS-04- 1–100 dışında geçersiz bir değer girildiğinde yazılımın önce MSJ-3 hata mesajını 3 saniyeliğine gösterdiğini sonra da MSJ-2'yi ve tahmin giriş kutucuğunu (ekranın altında) gösterdiğini doğrula.
5. TS-05- Kullanıcının yazılımın tuttuğundan küçük bir sayı girmesi durumunda yazılımın 3 saniyeliğine MSJ-5'i ve ardından MSJ-2'yi ve tahmin giriş kutucuğunu görüntülediğini doğrula.
6. TS-06- Kullanıcının tutulandan büyük bir sayı girmesi durumunda 3 saniyeliğine MSJ-6'nın ve ardından MSJ-2'nin ve tahmin giriş kutucuğunun görüntülendiğini doğrula.
7. TS-07- Kullanıcının tutulan sayıyı bilmesi durumunda yazılımın 3 saniyeliğine MSJ-4'ü gösterdiğini ve ardından oyunun sonlandığını doğrula.
***
Görüldüğü üzere 7 tane test senaryosu yazdık. Bunları yazarken neyi kontrol edeceğimizi ve kontrol sonucunda ne beklediğimizi yazdık. Örneğin TS-03'e bakalım.
TS-03- Oyun başladığında yazılımın 1–100 aralığında rastgele bir sayı tuttuğunu doğrula.
“Oyun başladığında yazılımın 1–100 aralığında rastgele bir sayı tutup tutmadığını kontrol et” değil. Böyle bir ifade de yanlış olmazdı belki ama bizim yazdığımız biraz daha açık ve net.
Ne zaman? Oyun başladığında. Peki oyun ne zaman başlıyor? Yeşil bayrağa basıldığında. Bu ifadeyi eklemeye gerek var mı? Cevabı duruma göre değişir. Biz yine de her ihtimale karşın ekleyelim.
TS-03- Oyun başladığında (yeşil bayrak tıklandığında) yazılımın 1–100 aralığında rastgele bir sayı tuttuğunu doğrula.
Bu arada çeşitlilik olması için bazı senaryoları farklı ifade biçimleriyle yazdım. Mesela TS-07.
TS-07 — Kullanıcının tutulan sayıyı bilmesi durumunda yazılımın 3 saniyeliğine MSJ-4'ü gösterdiğini ve ardından oyunun sonlandığını doğrula.
Aynı senaryoyu şu şekillerde de ifade edebilirdik:
- Eğer kullanıcının girdiği tahmin yazılımın tuttuğu sayıya eşitse…
- Eğer tutulanla tahmin eşitse…
- Eğer kullanıcı sayıyı bilirse…
- Eğer kullanıcı tutulan sayıyı bilirse…
- … 3 saniye boyunca 4 numaralı mesajın görüntülendiğinden ve ardından oyunun sonlandığından emin ol.
- … 4 numaralı mesajın 3 saniye süresince görüntülendiğini ve ardından oyunun sonlandığını gör.
- … MSJ-4'ü 3 saniye boyunca gör ve oyunun sonlandığını doğrula.
Buraya yapabileceğimiz bir ekleme de oyunun sonlanmasını doğrulamaya yönelik. Ne olunca oyun sonlanmış oluyor?
İlk olarak yukarıdaki şekilde de göreceğiniz üzere oyun çalışıyorken kırmızı durdurma düğmesi aktiftir ve yeşil bayrak seçili/basılmış şekilde görülür. Oyun çalışmıyorken ise durdurma ikonu daha gri tondadır, aktif değildir ve yeşil bayrak da seçili/basılmış olarak görülmez. Tabi test senaryosuna bu paragraf eklenmez. Test uzmanının bunu bilmesi ya da öğrenmesi beklenir.
Bunun dışında oyun durduğunda geri sayımın durması ve tahmin istenmiyor olması da gerekir. Şimdi bunları senaryoya ekleyelim.
TS-07 — Kullanıcının tutulan sayıyı bilmesi durumunda yazılımın 3 saniyeliğine MSJ-4'ü gösterdiğini ve ardından oyunun sonlandığını doğrula. (Geri sayım durmalı, yeni sayı girişi olmamalı ve oyun başlatma/bitirme butonlarının görünümü oyunun çalışmadığını doğrulamalı.)
Test senaryolarımıza son şeklini vermeden önce gereksinim listesiyle karşılaştırıp bir eksik olup olmadığına bakalım.
- Oyun bir Scratch projesi olarak geliştirilecek ve Scratch platformuna yüklenecektir. (Oyunu Scratch üzerinden test edeceğiz zaten.)
- Ekranda kukla olarak Scratch kedisi kullanılacaktır. (TS-01 ile test ediyoruz)
- Yazılım oyun başında rastgele bir sayı tutacaktır. Bu sayı 1 ila 100 arasında (1 ve 100 dahil) olacaktır. (TS-03 ile test ediyoruz.)
- Kullanıcı tahminini sisteme girecek, girdiği tahmin tutulan sayı ile karşılaştırılacaktır. Bu gereksinimi test etmek için 4 farklı şeyi kontrol etmemiz gerekecektir.
- Girilen sayı, yani tahmin, tutulan sayı ile aynıysa oyuncu oyunu kazanacak ve oyun sonlanacaktır. (TS-07 ile test ediyoruz.)
- Girilen sayı tahminden küçükse kullanıcıdan daha büyük bir sayı girmesi istenecektir. (TS-05 ile test ediyoruz.)
- Girilen sayı tahminden büyükse kullanıcıdan daha küçük bir sayı girmesi istenecektir. (TS-06 ile test ediyoruz.)
- Girilen karakter 1 ila 100 arasında değilse, sistem geçersiz giriş konusunda kullanıcıyı uyaracak ve yeniden giriş yapmasını isteyecektir. (TS-06 ile test ediyoruz.)
Bu gereksinimler içerisinde belirtilmemiş mesaj detaylarını da yine 2, 4, 5, 6 ve 7 no’lu test senaryolarıyla test ediyoruz.
Evet, şimdi test senaryolarımıza son şeklimizi vermiş olduk. Tekrar yeni versiyonuyla bir listeleyelim.
Bil Bakalım Kaç v1 Test Senaryoları v2
***
- TS-01 — Oyunda kukla olarak Scratch kedisi kullanıldığını doğrula.
- TS-02- Yeşil bayrağa basıldığında oyunun başladığını, MSJ-1'in 3 saniyeliğine görüldüğünü ardından tahmin girilene kadar MSJ-2'nin görüntülendiğini ve tahmin giriş kutucuğunun ekranında altında aktif olduğunu doğrula.
- TS-03- Oyun başladığında (yeşil bayrak tıklandığında) yazılımın 1–100 aralığında rastgele bir sayı tuttuğunu doğrula.
- TS-04- 1–100 dışında geçersiz bir değer girildiğinde yazılımın önce MSJ-3 hata mesajını 3 saniyeliğine gösterdiğini sonra da MSJ-2'yi ve tahmin giriş kutucuğunu (ekranın altında) gösterdiğini doğrula.
- TS-05- Kullanıcının yazılımın tuttuğundan küçük bir sayı girmesi durumunda yazılımın 3 saniyeliğine MSJ-5'i ve ardından MSJ-2'yi ve tahmin giriş kutucuğunu görüntülediğini doğrula.
- TS-06- Kullanıcının tutulandan büyük bir sayı girmesi durumunda 3 saniyeliğine MSJ-6'nın ve ardından MSJ-2'nin ve tahmin giriş kutucuğunun görüntülendiğini doğrula.
- TS-07- Kullanıcının tutulan sayıyı bilmesi durumunda yazılımın 3 saniyeliğine MSJ-4'ü gösterdiğini ve ardından oyunun sonlandığını doğrula. (Geri sayım durmalı, yeni sayı girişi olmamalı ve oyun başlatma/bitirme butonlarının görünümü oyunun çalışmadığını doğrulamalı.)
***
Yazılımın Geliştirilmesi ve Teste Açılması
Bu aşamada yazılımcı kendine verilen analiz dokümanı ve geliştirdiği platformun genel ilkeleri çerçevesinde oyunu geliştirir. Geliştirme süresince ve geliştirme tamamlandığında duman testlerini yapar. En azından temel senaryoların çalışıp çalışmadığını sınar. Geri sayım, veri girişi, mesajlar, zamanlara bir göz atar. Hazır olduğunu düşündüğünde uygulamayı test ortamına yükler ve test uzmanıyla gerekli bilgileri paylaşır.
Bizim durumumuzda bu bilgiler test edilecek yazılımın Scratch platformundaki bağlantısıdır.
https://scratch.mit.edu/projects/735918687
Yazılımımız teste hazır. Şimdi test uzmanının yapması gereken test ortamına girerek senaryoya uygun şekilde testlerini gerçekleştirmek. Hadi şimdi birlikte testleri yapalım. Makaledeki test senaryoların göz atın. Sizin eklemek istedikleriniz varsa onları da ekleyin ve yukarıdaki linkte yer alan uygulama üzerinden testlerini gerçekleştirin. Bakalım hangi hataları bulacaksınız? Bulduğunuz hataları bu yazının altına yorum olarak girin.
Bir sonraki bölümde görüşürüz.
***
Originally published at https://www.linkedin.com.