Photo by cottonbro studio: https://www.pexels.com/photo/people-toasting-wine-glasses-3171837/

Minik Bir Yazılım Projesi Simülasyonu -7 — İkinci Test İşletimi ve Projeyi Tamamlama

Kadir Çamoğlu
7 min readJan 21, 2023

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 ilk testini yaptık. Bulgularımız oldu. Bunlar düzeltildi ve yeni test case’ler yazdık. Şimdi ikinci test koşumunu gerçekleştiriyoruz.

***

İkinci testte kullanmak üzere dokuz adet test senaryomuz var:

- 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-5'in 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ı.)

- TS-08 — Oyunun giriş ekranındaki talimatlar metnini doğrula.

- TS-09 — Oyunun giriş ekranındaki Notlar ve Emeği Geçenler metnini doğrula.

Yine ilk olarak bağlantımızı Web gezginimizin adres çubuğuna yazıp [ENTER] tuşuna basarak başlıyoruz.

Oyunun karşılama/giriş sayfasında direkt olarak 8 ve 9 no’lu test senaryolarının doğruluğunu sınıyoruz ve sorun olmadığını görüyoruz.

Ardından yeşil bayrağa basarak oyunu başlatıyoruz.

Bu adımda gayet net biçimde tutulan sayıyı görebiliyoruz. Bu yazılımla ilgili bir gereksinim değil. Bir test gereksinimi. Ama önemli. Bu olmasaydı test senaryolarımızın önemli bir bölümünü yapamazdık. Bu adımda aynı zamanda 2 no’lu test senaryosunda belirtilen MSJ-1'in 3 saniye görüntülenme durumunu da doğruluyoruz. Bunu bir önceki versiyonda da doğrulamıştık ama yine de yazılımcının yaptığı değişiklikler sonucu bozulma ihtimaline karşın kontrol ediyoruz.

Üç saniye bekledikten sonra karşımıza MSJ-2 ve tahmin giriş kutucuğu geliyor. Böylece 2 no’lu test senaryosunu tamamen doğrulamış oluyoruz. Bu arada lütfen kelimesinin başındaki harfin büyük harfe dönüştürülerek düzeltildiğini de görmüş olduk. Böylece de 4 no’lu bulgu hariç tüm bulguları halletmiş olduk. Hatırlarsınız ki onu da kullanıcıların yapacağı kabul testine bırakmıştık.

Şimdi öncelikle bir önceki test işletiminde doğrulayamadığımız test senaryolarını işletelim.

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.

İlk olarak yeşil bayrağa saniye 1–2 defa olacak şekilde hızlıca 30–40 defa basalım. Böylece oyunun başında tutulan sayının 1–100 arasında ve rastgele olup olmadığını test edeceğiz. Bu sınamayı yaparken üst üste birkaç kez aynı sayının tutulduğunu görürseniz şaşırmayın. Rastgelelik mantığı içerisinde aynı sayının birkaç kez üst üste gelmesi de olağan bir durumdur.

Bu sınamada, tutulan sayıların 1–100 değil de 1–50 aralığında olduğunu görüyorsunuz. Hatadan emin olmak için bir kere daha 20–30 kez uygulamayı başlatıyorsunuz. Durum yine aynı. O zaman yeni bir bulgu açmak şart oluyor:

BULGU 1: Oyunun 1–100 aralığında sayı tutması beklenirken 1–50 aralığında tuttuğu gözlemlenmiştir.

Şimdi sıra 5 no’lu test senaryosunda.

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.

Küçük sayı girildiğinde MSJ-5'in gösterildiğini doğrulamak için hangi sayıları kullanmalıyız? Geçerli sayı aralığının 1–40 olduğu açık. Bu kırk sayının kırkını da deneyecek miyiz? Elbette hayır. Bu tip durumlardaki en efektif teknik sınır değerlerin alınmasıdır. Yani tutulan sayı 41 ise, bizim girebileceğimiz sayılar da 1 ila 40 arasındaysa, test için kullanılabilecek en uygun sayılar 1 ve 40 sayılarıdır. Eğer biraz daha zamanınız varsa bu aralıktan rastgele bir ya da iki sayı daha seçip test edebilirsiniz. Örneğin 11, 34 gibi.

40, 1, 11 ve 34 ile yaptığımız testler sonucunda 5 no’lu mesajın 3 saniyeliğine görüntülendiğini ve sonrasında MSJ-2 ile tahmin giriş kutucuğunu görebildiğimizi onayladık.

Bu durumda bir sonraki test senaryosuna geçiyoruz:

TS-06- Kullanıcının tutulandan büyük bir sayı girmesi durumunda 3 saniyeliğine MSJ-5'in ve ardından MSJ-2'nin ve tahmin giriş kutucuğunun görüntülediğini doğrula.

Tutulandan daha büyük bir sayı girilmesi durumunu sınamak için de bir önceki adımdakine uygun bir yaklaşım sergiliyoruz. Bu sefer değer aralığımız 42–100. Bu durumda kullanacağımız sayıları 42, 100, 50 ve 78 olarak seçiyoruz.

Ancak bu sayıları girdiğimizde “Lütfen daha küçük bir sayı giriniz.” mesajı yerine “Lütfen daha büyük bir sayı giriniz.” mesajını görüyoruz. Emin olmak için testlerimizi 43, 99, 52, 68 sayılarıyla yeniden deniyoruz. Yine aynı şekilde sonuç alıyoruz. Bu durumda yeni bir bulgu daha açıyoruz.

BULGU 2: Tutulan sayıdan daha büyük bir tahmin girildiğinden yazılımın “Lütfen daha küçük bir sayı giriniz.” mesajını göstermesi beklenirken “Lütfen daha büyük bir sayı giriniz.” mesajı görülmüştür.

Şimdi de daha önce gerçekleştiremediğimiz test senaryolarından sonuncusu olan 7 no’lu test senaryosuna bakalım.

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ı.)

Bunun için yapacağımız şey çok nettir: 41 sayısını girmek.

41 sayısını girdikten sonra mesajın doğruluğunu ve 3 saniye boyunca görüntülendiğini doğruladıktan sonra oyunun sonlandığını test etmek için de şunlara bakıyoruz:

- Mesajın kaybolması.

- Yeşil bayrak etrafındaki seçimin kaybolması.

- Kırmızı sekizgen butonun de-aktif olması.

- Yeni bir sayı girişi istenmiyor olması

Son olarak bir önceki test işletiminde gerçekleştirdiğimiz ve başarıyla doğruladığımız 4 no’lu test senaryosunu, yapılan değişiklikler sonrasında bozulmadığından emin olmak üzere test ediyoruz.

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.

Geçersiz değer girişinde de bir sorun görmeyerek bir test işletimini daha tamamlamış oluyoruz. Bu test sonucunda belirlediğimiz bulgular şu şekilde:

- BULGU 1: Oyunun 1–100 aralığında sayı tutması beklenirken 1–50 aralığında tuttuğu gözlemlenmiştir.

- BULGU 2: Tutulan sayıdan daha büyük bir tahmin girildiğinden yazılımın “Lütfen daha küçük bir sayı giriniz.” mesajını göstermesi beklenirken “Lütfen daha büyük bir sayı giriniz.” mesajı görülmüştür.

Yazılım Hatalarının İkinci Kez Giderilmesi, Doğrulama ve Kontrol Testlerinin Yapılması

Bu aşamada kitabı ve işi uzatmamak için adım adım her detayı yazmayacağım. İkinci test işletiminden sonra yazılımcı hataları giderir ve yeni versiyonu test için Scratch platformuna yükler. Test uzmanı öncelikle hataların giderildiğinden emin olmak için TS-03 ve TS-06 test senaryolarını sınar. Buna yeniden test (re-testing) ya da onaylama testi (confirmation testing) denir. Ardından yapılmış olan bu değişiklikler sonucu yazılımın önceden çalışan bölümlerinin etkilenmediğinden emin olmak için kalan senaryoları da test eder. Buna da regresyon testi denir.

Yazılımın kullanıcı kabul testi için de kullanılacak son versiyonunun bağlantısı aşağıdadır.

https://scratch.mit.edu/projects/736090694

Kabul Testlerinin Gerçekleştirilmesi

Oyunumuzun birinci versiyonunu stabilize ettikten sonra kabul testlerini gerçekleştirmek üzere müşteriye gidiyoruz ve yazılımımızı ilgili paydaşlar test ediyor. Testin sonunda yaptığımız uygulamayı beğendiklerini ama birkaç küçük ricaları olduklarını söylüyorlar:

1. Kukla ortada çok şık olmamış. Biraz sol alta alalım, ama giriş kutucuğunu engellemesin.

2. Test uzmanınıza katılıyoruz, (bir ara bundan bahsettiniz), geçersiz giriş sonrası 3 saniyelik bekleme süresi biraz rahatsız hissettiriyor. Onu 2 saniyeye indirelim.

3. Oyun sonundaki 3 saniyelik bekleme biraz kısa olmuş. Onu 5 saniyeye çıkartalım.

4. İlk ekrandaki mesaj (“Sayı tutma oyununa hoş geldiniz! 1'den 100'e rastgele bir sayı tutuyorum. Bakalım tahmin edebilecek misiniz?”) çok uzun. Onu ikiye bölelim. İlk bölüm “Sayı tutma oyununa hoş geldiniz!” olsun ve 2 saniye gösterilsin. İkinci bölüm “1–100 arasında rastgele bir sayı tutuyorum. Bakalım tahmin edebilecek misiniz?” olsun ve 3 saniye gösterilsin.

Projenin Sonlandırılması

Bundan sonra olacaklar şöyle:

  1. Kabul testleri sonrasında ortaya çıkan yeni isteklerin bir kısmının sonraki faza bırakılması ve bazılarının da yerine getirilmesi
  2. Yeni test case’lerin güncellenmesi ve yenilenen uygulamanın yeniden test edilmesi
  3. Hata çıkarsa onarılması ve yeniden test edilmesi
  4. Stabilize edilen uygulamanın kullanıcı kabul testine açılması
  5. Kullanıcı kabulü ve uygulamanın devreye alınması

Simülasyonun Sonu

Minik proje simülasyonumuzu burada sona eriyor. Bu basit, küçük uygulamanun yazılımın nasıl kapsamlı bir iş olduğuyla ilgili bir fikir vermiş olduğunu umuyorum. Özellikle sektöre yeni başlayanlar için faydalı olması dileklerimle.

Originally published at https://www.linkedin.com.

--

--

Kadir Çamoğlu
Kadir Çamoğlu

Written by Kadir Çamoğlu

Kadir Çamoğlu (Ph.D., Computer Engineering) is a problem solver, consultant, teacher, author, practitioner, and architect of system and software solutions.

No responses yet