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
|