PTest Belgesi
 
Dalış Simülatörü ve Veritabanı Uygulaması

DSD


Nesip Aral
 
 
 

Test Belgesi

Yazılım Geliştirme Projesi

Bilgi Teknolojileri Sertifika Programı 

İDEA: ODTÜ Sanal Kampüsü
 
 

10 Aralık 1999


Öz

Test Belgesinde bir önceki aşamada gerçekleştirilmiş olan DSD uygulaması üzerinde yapılması planlanan ve gerçekleştirilen testler ve bu testlerin sonuçları verilecektir.

Test Planı

Testler Proje Teklifi dokümanında verilen zamanlamaya uygun olarak 3-10 Aralık tarihleri arasındaki bir haftalık sürede yapılmıştır. Gerçekleştirim dokümanının 2 gün geç bitmesi testlerin de 2 gün geç başlamasına sebep olmuşsa da bu gecikme telafi edilebilmiştir.
Testler DSD'nin temel fonksiyonu olan Simülasyon modülü üzerinde yapılmıştır. Veri tabanı kısmında eksikler olduğu için bu modül testlerin dışında tutulmuştur. 
Yapılan testler işlevsel testler olup 2 grupta toplanabilir: 
1- Simulasyon kontrollarının öngörüldüğü şekilde çalışıp çalışmadığına ilişkin testler.
2- Simülasyon sonuçlarının hassasiyetine ve doğruluğuna ilişkin testler.
Ayrıca test sonuçlarına göre bazı düzeltmeler yapılmış ve ardından da ilgili görülen işlevler için "regression testing" uygulanmıştır. Testler sırasında ek bir yazılım kullanılmamıştır.
 

Test Edilecek Modül Gruplarının (Prosedürünün) Tarifi 

1- Simulasyon kontrollarına yönelik testler:
Testlerin amacı:
Simulasyon penceresi örneğinden de görüleceği gibi pencerede "Başla", "Dur" ve "Devam Et" işlevleri için 3 adet düğme ve zamanın akış hızını belirlemek için, tek bir grup altında toplanmış, 6 adet radyo düğmesi vardır. Simülasyon penceresine girildiğinde simülasyon hemen başlamaz ve kullanıcının "Başla" komutunu bekler. Bu arada kullanıcı zamanın akış hızını da değiştirebilir. Tasarım sırasında mantık olarak düğmelerin her zaman anlamlı veya çelişkili olmayan bir işlevi yerine getirebileceği düşünülmüş ve her zaman aktif olacak şekilde tasarlanmışlardı.
Test sırasında simülasyon penceresi açıldıktan kullanıcı tarafından kapatılıncaya kadar düğmelere herhangi bir zamanda ve herhangi bir sırayla basıldığında normal işlevlerini yerine getirecekleri, en azından bu işlev ile çelişen bir etki yaratmayacakları test edilecektir.
Test yöntemi:
Testi yapan kişi olabilecek çeşitli durumları deneyecektir.

2- Simülasyon sonuçlarına ilişkin testler:
Testlerin amacı:
Bu testlerle zamanın akış hızının istenen değere, takip edilen dalış profilinin verilen dalış profiline ne ölçüde yakın olduklarının ve simülasyon sonucu elde edilen sonuçların dalgıçların dalışlarda kullandıkları dalış cetvelleri ile ne kadar uyumlu olduğunun belirlenmesi amaçlanmaktadır. Zamanın akış hızının istenen değerden %20 farklı olması, verilen dalış profilinin 1 metre ve/veya 1 dakika  farkla takip edilmesi, kabul edilebilir sınırlar olarak belirlenmiştir. Dalış cetvelleri sadece teorik hesaplamalarla değil, yıllar boyunca elde edilen deneyimler ve gerçek hayattan istatistikler de gözönüne alınarak oluşturulduğundan  simülasyon sonuçlarının dalış cetvelleri ile uyumluluğuna ilişkin bir sınır belirlenememiştir. Testlerden sonra bu konuda bir yorum yapılacaktır.
Test yöntemleri:
a)Değişik zaman akış hızları için gerçek değerler ölçülür.
b)Verilen bir dalış profili ile izlenen profil arasındaki fark ölçülür.
c)Dalış cetvellerinde aşılmaması tavsiye edilen sınırlar içinde kalan farklı dalış profilleri için simülasyon yapılır ve her birine karşılık gelen tavan profili bullunur.
 

Gerçek Test Sonuçları

1- Simulasyon kontrollarına yönelik testler:
Test sonuçları:
Yapılmakta olan bir simülasyonun çeşitli aşamalarında değişik kontrollara mantıklı ve mantıksız bir sırada basılarak yazılımın anormal bir davranış gösterip göstermediği denendi. Simulasyon penceresine ilk girildiğinde "Başla" komutu yerine "Devam Et" komutu verildiğinde yazılımın bir "Application Error"  mesajı verilerek işletim sistemi tarafından durdurulduğu gözlendi. bunun dışında tüm durumlar için yazılımın normal çalışmasını sürdürdüğü gözlendi. 
Sorunlu olan durum Visual C++ Debugger'ı ile incelendiğinde sorunun bir array değişkenin index değişkeninin değerine "Başla" komutu ile uygun bir değer atandığı ancak "Devam Et" komutu ile bu atamanın yapılmadığı dolayısıyla programın kendi çalışma alanı dışında bir yere ulaşmak istediği için hata verdiği görüldü. Yazılım söz konusu başlangıç değeri pencere açılırken verilecek şekilde değiştirildi.
Test tekrarlanarak (regression testing) hiçbir durumda sorun çıkmadığı görüldü.

2- Simülasyon sonuçlarına ilişkin testler:
a) Zaman akış hızı testleri:
Bu testte yukarıda verilen simülasyon penceresi örneği'ndeki profil kullanıldı.
Simülasyon sırasında yapılan testlerde sırasıyla X1, X2, X5 ve X10 hızları için gerçek zamanda 10 dakikalık bir simülasyonun  602, 301, 122 ve 61 saniyede yapıldığı görüldü. X20 ve X50 hızları için ise gerçek zamanda 20 ve 50 dakikalık bir simülasyonun 62 ve 61 saniyede yapıldığı gözlendi.  En kötü sonuç (X20-20 dakika için 62saniye) %3.3 ile istenen %20 değerinin çok altında olduğu için test sonucu olumludur.
b) Dalış profili izleme testleri:
Bu testte yukarıda verilen simülasyon penceresi örneği'ndeki profil kullanıldı.
Testler sonucunda X1, X2, X5 ve X10 hızları için gözlenebilir bir farklılık görülmezken X20 hızı için 3 metre (simülasyon örneği 4), X50 hızı için 5 metre kadar istenen profilden sapmalar görüldü. Zaman ekseninde sapma gözlenemedi. Bu durumda X20 ve X50 hızları için test olumsuz sonuçlandı.
Sorunun nedeni araştırıldığında iterasyonlar sabit zaman aralıklarıyla tasarlandığı ve iterasyon adımları (2, 4, 10, 20, 40 ve 100 saniye) X20 ve X50 hızları için fazla büyük değerler aldığı ve profilin her kolundaki iterasyon sayısı kesirli değerler aldığı için, kesirler tam sayıda iterasyona tamamlanınca, hatanın yüksek olduğu anlaşıldı. 
Geçici (ve hızlı) bir çözüm olarak iterasyon hassasiyetini arttırmak için adımları 2'ye bölerek iterasyon sayısını 2 katına çıkarmak ve X50 hızını X30'a indirerek (genellikle dakikadan daha küçük zaman birimi kullanılmayacağı için) 1 dakikada tam sayıda iterasyon yapılmasının sağlanması düşünüldü. Bu durumda iterasyon adımları 1, 2, 5, 10, 20 ve 30 saniye oldu.
Kalıcı çözüm DSD'nin bir sonraki versiyonunda bu konunun yeniden ele alınmasıyla ve muhtemelen zaman akış hızındaki hassasiyetten vazgeçilmesi (zaten çok gerekli değil, %20 içinde kalsa yetecek) sayesinde sağlanacak.
Yapılan değişikliğin daha önceki testleri etkilemeyeceği düşünülerek simülasyon kontrolu ve zaman akış hızı testleri tekrarlanmadı ancak Dalış profili izleme testleri yeniden yapıldı.
Yeniden yapılan testlerde tüm hızlar için hedeflenen profilden bir farklılık görülmedi ve test olumlu sonuçlandı

c)Tavan profilinin dalış cetvelleri ile uyumluluğu testleri:
Bu testler için PADI (Professional Association of Diving Instructors)'nin "Recreational Dive Planner" cetveli kullanıldı ve 18 metreye 47 dakika ve 27 metreye 21 dakikalık 2 dalış profili seçildi. Dalış ve çıkış hızları dakikada 10 metreyi aşmayacak şekilde seçildi.
Bu iki dalış için de dalış profilinin tavan profilinin üstüne çıkmaması beklenmektedir.
Simulasyon sonuçları:
1- 18m-47dk X30 hızında simülasyon
2- 18m-47dk X10 hızında simülasyon
3- 27m-21dk X30 hızında simülasyon
4- 27m-21dk X10 hızında simülasyon
5- 27m-21dk X2 hızında simülasyon
olarak verilmiştir. Simulasyon sonuçları incelendiğinde X30 ile X10 ve X2 hızları arasında önemli  bir fark gözlenmemektedir ancak her iki profilde de çıkışta tavan seviyesinin aşılması sözkonusudur. Yukarıda da açıkladığım gibi, esas referans olarak alınması gereken dalış cetvelleri, sadece teorik hesaplamalarla değil, yıllar boyunca elde edilen deneyimler ve gerçek hayattan istatistikler de gözönüne alınarak oluşturulmaktadır ve her iki simülasyonda da görülen 10 dakika civarında tavan seviyesinin üstünde kalınmasının bu dalışlar için bir sorun yaratmayacağını kabul etmek durumundayız. Ancak vurgun olayının stochastic bir olay olduğunu ve her zaman böyle bir risk olduğunu düşünürsek bu sonuçlar dalış cetvellerinde verilen sınırlara yaklaşmamanın ve çıkışlarda 5 metre seviyesinde 3-5 dakikalık bir beklemeden sonra yüzeye çıkma alışkanlığı edinmenin ne kadar önemli olduğunu göstermektedir. Aşağıda aynı dalışların sonuna 5 metre derinlikte 5 dakikalık bekleme eklenmiş hali görülmektedir.
1- 18m-47+5dk X30 hızında simülasyon
2- 27m-21+5dk X30 hızında simülasyon
 

1