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