Proje Test Planı
Test Belgesi
Yazılım Geliştirme Projesi
Bilgi Teknolojileri Sertifika Programı
İDEA: ODTÜ Sanal Kampüsü
15.7.1999
Bu kısımda projede kodlanmış olan program parçalarının test planı, uygulanan test prosedürü ve yapılan değişiklikler anlatılmaktadır.
Test, PC ortamında, Windows 98 işletim programı ve Internet Explorer 4.0 web tarayıcısı kullanılarak test edilmiştir. Test için "Resource Standard Metrics for C, C++ and Java" programı kullanılmıştır. Test için kullanılan bu program aşağıdaki bilgileri sunma kapasitesine sahiptir.
Satır Sayısı(LOC): Kod içerisindeki satır sayısını temsil eder. LOC ile projenin gerçekleştirilmesi için gereken süre ve maliyet analizi yapılabilir.
Etkili Satır Sayısı(eLOC): LOC, kod içerisinde yorum satırları, köşeli parantezlere ve boşlukları da içerdiği için elde edeceğimiz çıktılar tam olmayabilir. Dolayısıyla kod içerisinde çalışabilen satırları içeren etkili satır sayısı daha yakın bir sonuç verir.
Kod Demeci: "for" döngüsü içindekiler hariç, sonunda noktalı virgül (;) olan kod satır sayısıdır.
Dosya Sayısı: Birden fazla dosya çalıştırıldığında elde edilen dosya sayısıdır. RSM, dosyaları uzantısına göre değerlendirir.
Yorum Satır Sayısı: Bu değer programcının kodlama sırasında anlaşılabilirlik için gösterdiği özen belirtilmektedir.Yorum satır sayısının az olması iyileştirme ve bakım aşamasında zorluklar meydana getirebilir. Raporlamada yazılan yorum satır sayısı yüzde (%) ile ifade edilir. Bu
Komut Yüzdesi = Komut Satır Sayısı/Mantıksal Satır Sayısı değerine eş düşer.
Burada
Mantıksal Satır Sayısı = LOC + Yorum Satırı + Boş Satır olarak hesaplanır.
Boşluk Sayısı: Kod içindeki boş satır sayısı, yani kodun okunulabilirliği bu değerle belirtilir. Boş satır sayısı yine yüzde ile hesaplanır.
Boşluk Yüzdesi = Boşluk Sayısı / Boşluk Sayısı + Karakter Sayısı
Fonksiyon Sayısı: Kod içerisindeki fonksiyon sayısı sistemin modülaritesini gösterir. Raporlamada fonksiyon başına düşen minimum , ortalama ve maksimum kod satır sayısı burada verilir.
Fonksiyon Karmaşıklığı: Fonksiyonun içerisindeki dallanma(cyclomatic"while, for, if, case gibi") ve karşılaştırma ifadeleri (<, >, ==, >= ... gibi) bu değerle ifade edilir. Karmaşıklığın en az dallanma değeri kadar olması beklenir ve tüm kodun ortalama karmaşıklığından yüksek olmaması hedeflenir.
Fonksiyon Arayüzü Karmaşıklığı: Arayüz karmaşıklığı, fonksiyon parametreleri, ve fonksiyonların değer döndürme noktaları ile ifade edilir.
Sınıf Sayısı: Sınıf sayısı kodun ne kadar nesneye yönelik olduğunu gösterir.
Nesneye yönelik yazılım testi planına göre aşağıda sırasıyla adı geçen işler yapılmalıdır. Fakat kullanılan test aracı alt sistem testine kadar yeterli bilgi verebilir. Dolayısıyla test planı alt sistem testi ve sistem testi olarak ikiye ayrılmıştır.
Modül Testi
Sınıf Testi
Alt Sistem Testi
Sistem Testi
RSM programı tüm testleri gerçekleştirmiştir. Ayrıca sistem üç simulasyonun birleşmesinden oluşmaktadır ve bu simulasyonlar birbirinden bağımsızdır. Dolayısıyla test için ek bir çabaya gerek duyulmamıştır.
Birleştirilecek alt sistemler
Osilator Simulasyonu
Rotasyonal Kütle Simulasyonu
Bohr Atom Modeli Simulasyonu
Test Edilecek Modül Gruplarının Tarifi:
RSM programı yardımıyla tüm sınıflar, modüller ve arayüzler test edilmiştir. Sınflarda yer alan modüller aşağıda açıklanmıştır.
Harmonik Osilator Simulasyonu:
Simulasyon1:
Simulasyon asıl olarak bu sınıfta çalıştırılır, ayrıca diğer tüm nesneler bu sınıf tarafından çağrılır.
Osilator:
Bu sınıfta, kütlenin sürtünmeli ve sürtünmesiz yüzeylerde zamanla değişen konumunu, hızını, enerjisini hesaplamak için fonksiyonlar vardır. Bu sınıf, parametre olarak fare yardımıyla belirlenen başlangıç noktasını alarak, bu nokta yardımıyla toplam enerjiyi, hızı ve konumu belirler. Yay resmi her seferinde değişik bir boyla çizilir, bu da yayın esnediği ve daraldığı izlenimini verir. İki değişik boyuttaki yay resimleri arasındaki geçiş süresi ise yayın hızını belirler.
ImageButton
Kontrol düğmelerinin konulduğu ImageButton nesne sınıfı parametre olarak düğmelerin üzerine konacak resimleri alır.
ButonKanvas
ButonKanvas nesne sınıfı ise düğmeleri belli bir yerde toplamak için oluşturulmuştur.
EnerjiGoster
Parametre olarak ortamın sürtünmeli veya sürtünmesiz olduğunu belirten boolean IsDamped ve IsUndamped değerleri, enerji değerlerinin bulunduğu enerji dizisini ve hızın belirlendiği iki resim arasındaki bekleme süresini belirten SleepTime dizisini alır. Zoom düğmesine basıldığında bu sınıf çalışır ve ekrana ayrı bir çerçeve çizer.
Rotasyonal Hareket Simulasyonu:
Simulasyon2:
Simulasyon asıl olarak bu sınıfta çalıştırılır, ayrıca diğer tüm nesneler bu sınıf tarafından çağrılır.
RotasyonalKutle
Bu sınıfta yine fiziksel hesapların yapıldığı fonksiyonlar yer almaktadır. Bu sınıf parametre almamaktadır çünkü kütlenin harekete başladığı nokta belli ve sabittir. Burada rotasyonal hareket eden kütlenin izlediği yol, onun düşey ve yatay düzlemlerdeki izdüşümleri, ve kütlenin bu düzlemlerdeki konumlarını grafiksel olarak gösteren ayrı bir fonksiyon bu sınıfta yer almaktadır.
ImageButton
Kontrol düğmelerinin konulduğu ImageButton nesne sınıfı parametre olarak düğmelerin üzerine konacak resimleri alır.
ButonKanvas
ButonKanvas nesne sınıfı ise düğmeleri belli bir yerde toplamak için oluşturulmuştur.
Bohr Atom Modeli Simulasyonu:
Simulasyon3:
Simulasyon asıl olarak bu sınıfta çalıştırılır, ayrıca diğer tüm nesneler bu sınıf tarafından çağrılır.
AtomModeli:
Bu kısımda fiziksel hesaplamalar gerçekleştirilmektedir. Atom modelinde üç ana kısım vardır. Bunlardan birincisi çekirdek etrafında dönen elektronun izlediği yörünge ve o yörüngede elektronun karakteri gösterilmeye çalışılmıştır. Burada hız önemli bir kriterdir. Elektron çekirdeğe yaklaştıkça hızı artar, çünkü hız merkeze olan uzaklıkla ters orantılıdır. Her yörüngenin belli bir enerjisi vardır ve bu enerji değerleri sabittir ve elektron ancak bu yörüngelerde bulunabilir. Atom modelinde belli yörüngeler beyaz belli yörüngeler ise kırmızı ile gösterilmiştir. Beyaz yörüngeler, elektronun bulunabileceği yörüngelerdir, kırmızı yörüngeler ise elektronun bulunamayacağı yörüngelerdir. Bu yörüngelerin merkeze olan uzaklıklarının değerleri bir diziye konmuştur.
ImageButton
Kontrol düğmelerinin konulduğu ImageButton nesne sınıfı parametre olarak düğmelerin üzerine konacak resimleri alır.
DugmeSiniri
DüğmeSiniri nesne sınıfı ise düğmeleri belli bir yerde toplamak için oluşturulmuştur.
DisGorunum
Yukarıda bahsedildiği gibi bu simulasyonda üç ana kısım vardı. İlk ikisi elektornun çekirdek etrafındaki durumu ikinicisi ise elektronun bir dalga gibi düşünüldüğü modellerin gösterildiği kısımlardı. Üçüncü ana kısım ise atomun dışarıdan görünümüyle ilgilidir. Yani burada atoma verilen veya alınan enerjiyle tüm atomun aldığı şekil gösterilmeye çalışılmaktadır. Parametre olarak bu sınıf atomun dış görünüşünün bulunduğu resimleri alır.
Test sonuçlarına göre hatalı olan kısımlar düzeltildi. Örneğin Bohr atom modelinde daha önceden aynı komut satırlarının birden fazla yazılması karmaşıklığı artırmıştır. Bu satırlar tek bir yerde toplandıktan sonra karmaşıklık azaldı. Ayrıca Harmonik osilator simulasyonunda EnerjiGoster çerçevesine parametrelerden bazılarına ilk değer atanmaması RSM programı tarafından hata olarak gösterilmiş, bu parametrelere ilk değerleri ana sınıfta(simulasyon1) verilmiştir.
Gerçek Test Sonuçları:
Simulasyon1 (Harmonik Osilator Simulasyonu)