Test Belgesi
 
 
Banka Veri Tabanı Sistemi
 
Yalçın Bostan
(s03092)
 
Test Belgesi
 
Yazılım Geliştirme Projesi
Bilgi Teknolojileri Sertifika Programı 
İDEA: ODTÜ Sanal Kampüsü
 
 
19.5.2000 

ÖZ:  
Yazılım geliştirme projelerinin müşteriye teslim edilmeden (kullanıma alınmadan) önceki son aşaması test aşamasıdır. Sistemin test aşaması, profesyonel ortamlarda ayrı uzman ekipler tarafından yapılmaktadır. Tasarımcıların kendi ürünlerini test etmeleri yetersiz olabilmektedir. Test aşaması, sistemin kullanıma alınmadan önce hataların bulunabilmesi için son şanstır, bu nedenle çok kritik bir adımdır. Özellikle gerçek zamanlı uygulamalarda ve insan yaşamı ile ilgili uygulamalarda testlerin uzman kişiler tarafından yapılması çok önemlidir. Bu dokümanın amacı, Banka VeriTabanı Sisteminin uygulamaya geçirilmeden önce doğruluğunun test edilmesi, varsa hataların düzeltilmesi, ayrıca test ve performams sonuçlarının raporlanmasıdır.  

TEST PLANI İLE İLGİLİ GENEL BİLGİ:  

Testler , DOS ortamında Pascal programlama dili kullanarak gerçekleştirildi. Testler çeşitli aşamalarda yapıldı. Bu aşamalar sırasıyla ilk seviye test ortamı, ikinci seviye olan test ortamı, test grubu ve başka kişilerin yaptığı testler , üçüncü seviye ve dördüncü (ve son) seviyeyi kapsamaktadır. Bu aşamaları detaylandıracak olursak: İlk olarak program yazılırken yapılan testler birinci seviye testler kullanıldı.Bu işlem sırasında her bir modülün işlevselliği elle trace edilerek kontrol edildi.Daha onra birbiriyle ilişki içinde bulunan modüller ilişkileri dahilince trace edildiler.Bilindigi üzere kodlama hatasındaki küçük bir yanlışlık programın geri kalan kısmının tamamen yanlış çalışmasına neden olacak.Birinci seviye ortamından başarı ile geçen programlar ikinci seviye ortamına alındılar. Bu ortamda sonuçlar detaylı olarak test edildikten sonra eğer başarılı bittiği gözlendiyse programlar test grubuna gönderildi. Bu grup programın kodlamanın standartlara uygun olup olmadığını kontrol etti ve düzeltmelerle tekrar geri gönderdi. Düzeltmeler yapıldıktan sonra programlar tekrar test grubuna gönderildi. Yazılım projelerindeki amaç programların doğru çalışıyor olması kadar standartlara uygun yazılmış da olmasıdır. Programlar standartlara uygun hale getirildikten sonra programlar başka kişiler tarafından test edildiler. Testlerin kodlamayı gerçekleştiren kişiden ayrı olarak başka kişiler tarafından da yapılmasının nedeni kodlamayı yapanın gözünden kaçan hataları bir başkasının rahatlıkla farkedebilmesidir. Bütün bu aşamalardan sonra projenin prod ortamına geçmesi için iki ayrı seviyeden daha geçmesi gerekti. Ancak bu aşamalardan sonra programlar prod ortamına kabul edildiler. 
Testler bu aşamalardan geçerken test edilen unsurlar aşağıda sıralanmıştır : 
Kodlama hataları: Alt düzey testleridir, programın yazılması esnasında kontrol edildi.
Sonuçların doğruluğu :  Elde edilen sonuçlar mantıklı mı , gerçeğe uygun mu diye kontrol edildi.
Test sonuçları: Sonuçlar test ortamındaki verilerle aynı mı diye kontrol edildi.
Standardizasyon: Yazılan programların yazılım standartlarına uygunluğu kontrol edildi.
Gerçek sonuçlar: Sonuçlar gerçek sonuçları tutuyor mu diye kontrol edildi.
Performans: Programların çalışma sürelerine bakılırarak performans değerlendirmesi yapıldı.
Sistemin yapısına göre test ve bütünleştirme işlemleri aşağıdan yukarıya göre yapıldı. Hedef açısından kullanılan test yöntemleri sırasıyla : 
Kodlama hataları:
Sonuçların doğruluğu : 
Test sonuçları:
Standardizasyon:
Test Uygulama Takvimi:   
7.6.2000 Agac_yap,Saga_yerlestir,Sola_yerlestir ve Dosyadan_oku modüllerinin testi
8.6.2000 Dosyaya_yaz,Kaydı_silinicek_müsteriyi_bul ve Sil modüllerinin testi.
9.6.2000 Hesapnumarasina_gore_arastir,Soyada_gore_arastir ve Rapor modüllerinin testi.
10.6.2000 Birbiriyle ilişkili modüllerin testi.
12.6.2000 Projenin 2.seviye test ortamına alınması.
13.6.2000 Test gurubunca hataların saptanıp,düzeltilmek üzere geri gönderilmesi.
14.6.2000 Projenin düzeltilmiş halinin tekrar incelenmek üzere test gurubuna gönderilmesi.
16.6.2000 Projenin standartlara uygun hale getirilmesi için başka test ortamına gönderilmesi.
18.6.2000 Projenin prod ortamına geçmesi.
TEST EDİLECEK MODÜLLER:  
  • Dosyadan Okuyup Ağaç Yap Modülleri: 
    • Agac_yap modülü
    • Saga_yerlestir modülü
    • Sola_yerlestir modülü
    • Dosyadan_oku modülü
  • Yeni Müşteri Kaydı Modülleri: 
    • Agac_yap modülü
    • Saga_yerlestir modülü
    • Sola_yerlestir modülü
  • Müşteri Kaydı Silme Modülleri:  
    • Kaydı_silinecek_müsteriyi_bul modülü
    • Sil modülü
  • Müşteri Araştırması Modülleri: 
    • Hesapnumarasina_göre_arastir modülü
    • Soyada_göre_arastir modülü
  • Müşteri Hesap_numarasının Değiştirilmesi Modülleri: 
    • Kaydı_silinecek_müsteriyi_bul modülü
    • Sil modülü
    • Agac_yap modülü
    • Saga_yerlestir modülü
    • Sola_yerlestir modülü
  • Rapor Yaratılması Modülü:
  • Dosyaya Yaz Modülü:
Yukarıda da görüldüğü üzere bir modül birkaç safhada kullanılabilmekte.Modüller gurupça isimlendirilirken programın ana menü opsiyonları göz önüne alınmıştır. 

TEST SAFHALARI:  

  • Veritabanına örnek veri girişi yapılması.
  • Girilen verilere göre sonuçlar alınması. 
  • Sonuçlara bakılarak aksaklıkların bulunup uygun değişikliklerin yapılması.
TEST EDİLECEK MODÜL GURUPLARININ TARİFİ 
 

Dosyadan Okuyup Ağaç Yap Modülleri:  

Bu modül gurubu isminden de anlaşılacağı gibi veri tabanından müşteri bilgilerini alarak müşterilerin hesap numaralarına göre ikili ağaç yapısı oluşturur.Sistem her açıldığında bu modül gurubu otomatik olarak çağırılır.Agac_yap modülü disk ünitesindeki her müşteriden node oluştururken,Saga_yerlestir ve Sola_yerlestir modülleride bu müşteriye ait node'un hesap numarası alanına göre ağaçtaki yerine konması sağlanır.Bu üç modül Dosyadan_oku modülünün içinde çağırılır ve veri tabanı üzerinden ikili ağaç yapısı oluşturulmuş olur. 

Test Verileri:   

Veri tabanına aşağıdaki gibi bir veri girişinin yapıldığını varsayalım.
 
Veri takibinde kolaylık sağlaması açısından,burada her bir müşteri için tüm alanlar aynı girilmiştir.Örneğin hesap numarası 10 olan bir kimsenin adının,soyadını,adresinin,telefon numarasının ve hesabındaki para miktarının 10 olduğu gibi.Dosyadan okuma modülü sonucunda beklentimiz aşağıdaki gibi bir ağaç yapısının oluşmasıdır.
 

Gerçek Test Sonucu:   

Özel bir modül(bu modül ekrana her level'daki kardeşleri(brothers) sırayla basar) yazıp agacın tüm elemanlarını ekrana bastırdıgımızda programın beklentilerimiz doğrultusunda çalıştığını görüyoruz.Dosyadan_oku modülünün doğru çalıştığını ilerde müşteri araştırması modül gurubunda ve rapor modülünde de gözlemleyebiliriz.

Yeni Müşteri Kaydı Modülleri:  

Bu modül gurubu sayesinde klavyeden yeni müşteri bilgisi kaydı alınır ve Agac_yap modülü sayesinde o müşteriye ait bilgileri tutan node yaratılır.Saga_yerlestir ve Sola_yerlestir modülleri sayesinde o node'un hesap numarası alanına göre agaçtaki yeri bulunur ve oraya yerleştirilir.

Test Verileri:   

Klavyeden aşağıdaki gibi bir veri girişi yapalım.
 
Bu işlem sonucunda ağacın aşagıdaki şekli almasını bekleriz.
 

Gerçek Test Sonucu:   

Biliyoruz ki 15 hesap numarasına sahip node 14 hesap numarasına sahip node'un sağına yerleşecek. Özel bir modül(bu modül başta ağacın kökünü(root) tutan bir göstergeç(pointer) alır ve 14 hesap numarasına sahip node'u bulana dek ilerler.Bulduğunda da ekrana 14 hesap numarasına sahip node'u tutan göstergecin(p diyelim) sagındaki node'un hesap numarasını ekrana basar yani 15(p^.sag.hesap_no)) yazıp 14 hesap numarasına sahip node'un sagındaki node'un içindeki bilgileri ekrana bastırdığımızda programın beklentilerimiz doğrultusunda çalıştığını görüyoruz.Yeni müşteri kaydı modül gurubunun doğru çalıştığını ilerde müşteri araştırması modül gurubunda ve rapor modülünde de gözlemleyebiliriz.

Müşteri Kaydı Silme Modülleri:  

Bu modül gurubu isminden de anlaşılacağı gibi hesap numarası girilen müşterinin,hesap kaydının silinmesini sağlar.Bunu yaparken ikili ağaç yapısının bozulmamasına özen gösterilir.Bu modül gurubundaki Kaydı_silinecek_müsteriyi_bul modülü adındanda anlaşılacağı gibi klavyeden silinmesi için girilen hesap numarasına sahip node'u bulur ve sil prosedürünü çağırır.Sil modülü de ikili ağaç yapısını koruyarak o node'u ağaçtan çıkartır. 

Test Verileri:   

Klavyeden aşağıdaki gibi bir veri girişi yapalım.
 
Bu işlem sonucunda ağacın aşagıdaki şekli almasını bekleriz.
 

Gerçek Test Sonucu:   

Biliyoruz ki 7 hesap numarasına sahip node 9 hesap numarasına sahip node'un solunda bulunuyor. Özel bir modül(bu modül başta ağacın kökünü(root) tutan bir göstergeç(pointer) alır ve 9 hesap numarasına sahip node'u bulana dek ilerler.Bulduğunda da ekrana 9 hesap numarasına sahip node'u tutan göstergecin(p diyelim) solundaki node'un hesap numarasını ekrana basar.Burada p^.sol=nil olduğundan program çıktı olarak hata mesajı vericek.) yazıp 9 hesap numarasına sahip node'un solundaki node'un içindeki bilgileri ekrana bastırdığımızda programın beklentilerimiz doğrultusunda çalıştığını görüyoruz.Müşteri kaydının silinmesi modül gurubunun doğru çalıştığını ilerde müşteri araştırması modül gurubunda ve rapor modülünde de gözlemleyebiliriz.

Müşteri Araştırması Modülleri:  

 
Bu modül gurubu müşterinin veri tabanı içinde araştırılmasına olanak verir.Araştırma iki şekilde gerçekleşir, bunlar hesap numarasına göre ve soyada göredir.Bunlardan ilki girdi olarak ağacın köküne(root) point eden göstergeç,bulunması istenen müşterinin hesap numarası,bulunup bulunmadığının kontrolü için boolean type t ve şayet bulunduysa,bulana kadar kaç node'un ziyaret edildiğini tutan n sayısı alır.Root'tan başlıyarak aranan kişinin hesap numarası karşılaşılan node'un hesap numarasından büyükse sağa,küçükse sola doğru ilerleyerek leaf node'a kadar tüm ağaç taranır ve hesap numarasına göre aranan müşteri bulunursa,onun hakkındaki tüm bilgiler ve n sayısı ekrana bastırılır,aksi taktirde ekrana hata mesajı bastırılır. Soyada göre araştırma işleminde ise girdi olarak ağacın köküne point eden göstergeç,bulunması istenen müşterinin soyadı ,bulunup bulunmadığının kontrolü için boolean type f ve şayet bulunduysa,bulunana kadar kaç node'un ziyaret edildiğini tutan m sayısı alır.Ağacın tamamı preorder traverse yapılır ve soyadına göre aranan müşteri bulunursa,onun hakkındaki tüm bilgiler ve m sayısı ekrana bastırılır,aksi taktirde ekrana hata mesajı bastırılır. 

Test Verileri:   

Klavyeden hesap numarası 8 olan ve de soyadı 11 olan müşterinin araştırmasını yaparsak,programın bize çıktı olarak hesap numarası 8 olan müşteri için ziyaret edilen node sayısı olarak 3,soyadı 11 olan müşteri için ziyaret edilen node sayısı olarak 5 vermesi gerekir.

Gerçek Test Sonucu:   

 
 
Müşteri araştırması modül guruplarını kullanarak bundan önceki modüllerin hepsinin doğru çalışıp çalışmadığını kontrol edebiliriz.

Müşteri Hesap_numarasının Değiştirilmesi Modülleri:  

Bu modül gurubu isminden de anlaşılacağı üzere müşteri hesap numarasının değiştirilmesinde kullanılır.Program kullanıcıdan eski hesap numarasını ve yeni hesap numarasını ister.Bu işlem yapılırken hesap numarası değiştirilicek kişinin tüm bilgileri saklanır,daha sonra Kaydı_silinecek_müsteriyi_bul ve Sil modülleriyle o müşteriye ait node ağaç yapısından çıkartılır.Yeni hesap numarası bilgisiyle Agac_yap modülü kullanılarak yeni bir node yaratılır.Saga_yerlestir ve Sola_yerlestir modülleri sayesinde yeni hesap numarasına sahip node'un ağaçtaki yeri bulunur ve oraya yerleştirilir. 

Test Verileri:   

Klavyeden aşağıdaki gibi bir veri girişinin yapıldığını varsayalım.
 
Bu işlem sonucunda ağacın aşağıdaki şekli almassını bekleriz.
 

Gerçek Test Sonucu:   

Hesap_numarasuna_gore_arastir modülüyle 15 hesap numarasına sahip müşteriyi arattığımızda program bize hata mesajı vermesine karşın,20 hesap numarasına sahip müşteriyi hesap numarasına göre arattığımızda ziyaret edilen node sayısı olarak 4 verirken,diğer tüm alanlardaki(isim,soyad,telefon numarası,hesaptaki para miktarı) çıktılar beklentilerimiz doğrultusunda gerçekleşiyor.(Hesap numarası hariç tüm alanlar 15 değerine sahip)

Rapor Yaratma Modülü:  

Bu modül,o anda ağaçta bulunan tüm müşterilerin hesap numaralarını breath_first_order'da çıktı olarak veren recursive bir prosedürdür. 

Test Verileri:   

Ana menuden 5 numaralı opsiyon seçildiğinde,aşağıdaki ağaç yapısına sahip bir sistemin şu çıktıyı vermesi beklenir:10,6,11,5,9,12,8,14,13,20
 

Gerçek Test Sonucu:   

 
Program çalıştığında,programın işleyişinin beklentilerimiz doğrultusunda gerçekleştiğini görüyoruz.

Dosyaya Yaz Modülü:  

Bu modül sistem kapatıldığında devreye girer ve o anda ağaçta olan tüm müşteri kayıtlarını ağacı inorder traverse ederek disk ünitesine yazar.Yukarıdaki ağaç yapısına sahip bir sistemin inorder travese çıktısı:5,6,9,8,10,11,12,13,14,20 

Gerçek Test Sonucu:   

 
Program çalıştığında,programın işleyişinin beklentilerimiz doğrultusunda gerçekleştiğini görüyoruz.


 
İDE_A KATILIMCILAR ANA SAYFA PROJE SAYFASI
TEKLİF BELG. ANALİZ BELG. TASARIM BELG. GERÇEKLEŞTİRME BELG.