|
KOD BANKASI
DİLEK BAŞARAN
Özgeçmis
Test Belgesi
Yazılım
Geliştirme Projesi
Bilgi Teknolojileri Sertifika
Programı
IDEA: ODTÜ Sanal Kampüsü
27.06.2008
Öz
Test Belgesi'nde, büyük ölçüde tamamlanmış olan Kod Bankası Projesi Yazılımı'na ilişkin test planı, uygulanan test prosedürleri ve teslim edilmiş olan gerçekleştirim raporundan sonra sistemde yapılan değişiklikler anlatılmaktadır.
Test Planı
Bu kısımda Kod Bankası'nın test takvimi, ortamı ve test edilecek modülleri verilmiştir. Bunlara ek olarak, programın çalıştırılması için gereken ek
yazılım ve kaynaklar hakkında da bilgi sağlanmıştır.
Kod Bankası yazılımı için yapılan testler ve tarihleri aşağıdaki tabloda belirtilmiştir.
Testler |
Tarihler |
Modül Testleri |
20-25 Haziran 2008 |
Entegrasyon Testleri |
25-26 Haziran 2008 |
Operasyon / İşletim Testleri |
26-27 Haziran 2008 |
Testlerden kısaca bahsetmek gerekirse;
Modül testlerinde, Kod Bankası'nı oluşturan modüllerin gerçekleştirimi yapıldıktan sonra bu modüller içindeki işlevlerin çalışıp çalışmadığı tek tek test edilerek doğrulanmıştır. Kod Bankası'nın modül testleri aşağıda ilgili başlıklar altında her bir modül için ayrı ayrı olarak ve ayrıntıları ile açıklanmıştır.
Entegrasyon testleri, modüllerin birbirleri ile doğru etkileşip etkileşmediklerini kontrol etmek için yapılmıştır. Sayfalar arasındaki parametre geçişleri ve session kontrolleri bu aşamada yapılan testler ile doğrulanmıştır.
Operasyon ve işletim testlerinde ise Kod Bankası'nın WAMP Server üzerinde, MinGW ve MS DOS ortamı ile birlikte uyum içinde çalışıp çalışmadığını gösteren testler yapılmıştır.
Platform
Kod Bankası Projesi'nde WAMP Server kullanılmıştır. WAMP Server ve desteklediği programların versiyonlarına ve detaylı teknik bilgilerine aşağıdaki tablodan ulaşılabilir.
Kod Bankası'nı oluşturan ve testleri tamamlanan başlıca modüller:
- Kod Bankası Ana Arayüz Modülü
- Kod Bankası Kullanıcı Giriş Arayüz Modülü
- Kod Seçim Modülü
- Kod Yazma, Yükleme, Derleme ve Veri Tabanına Ekleme Modülü
- Kod Arama Modülü
- Kod Bankası Ziyaretçi Defteri Modülü
Kod Bankası yazılımını oluşturan dosyalar gerçekleştirim raporunda belirtilmiş olup testler sırasında ekstra herhangi bir dosya oluşturulmamıştır.
Kod Bankası'nın kodlarını içeren dosyaların isimlerini incelemek için Proje Gerçekleştirim Raporu'na bakınız.
Kod Bankası'nda bulunan kodları derlemek için MinGW (Minimalist GNU for Windows) isimli program, sunucunun (WAMP Server) bulunduğu bilgisayara kurulmalı ve işletim sistemi'nin (Windows XP) sistem dosyalarındaki çevre parametrelerinin patikaları hem kullanıcı hem de sistem değişkenleri için güncellenmelidir.
Bu güncellemeler sırası ile şu şekilde yapılmalıdır:
Bilgisayarım => Özellikler => Gelişmiş => Çevre Değişkenleri => Kullanıcı Değişkenleri ve Sistem Değişkenleri
( My Computer => Properties => Advanced => Environment Variables => User Variables & System Variables )
MinGW programı hakkında daha detaylı bilgi ve kurulum aşamalarına buradan ulaşabilirsiniz.
Test Edilecek Modül Gruplarının
(Prosedürünün) Tarifi
Kod Bankası'nın her bir modülünün birim testi, test tanımları ile açıklamaları, testlerin entegrasyonu ve birbirleri ile etkileşimleri
ve bu testlerin sonuçlarından beklenenlerin sağlanıp sağlanmadığı bu kısımda verilmiştir.
“Geleneksel yaklaşımlarda genelde evrimsel test ve bütünleştirme süreci uygulanır. Sistem tepede alt sistemlere, ortada modüllere ve aşağıda da birimlere ayrıştırılacak olursa, aşağıdan yukarıya ve yukarıdan aşağıya doğru bir yön seçilerek bütünleştirmeler bir seviyenin tamamlanarak diğerine geçilmesi şeklinde düzenlenir. Nesneye Yönelik (NY) sistemlerde durum değişiktir. Veri ve işlemler nesneler içinde bütünleşir ve sınıf genelinde sınanırsa bu birim testine karşı düşer.”*
Kod Bankası Projesi'nin testinde geleneksel yaklaşımın benimsenmesi durumunda, bütünleştirmenin getirdiği zincirleme etkiler söz konusu olacak ve daha önce yapılan bir çok testin tekrarı gündeme gelecektir. Kod Bankası Projesi'nde, modüller arası bağımlılığın çok yüksek olduğu gözönüne alındığında bu testlerin karmaşıklaşacağı ve ortaya daha fazla hata çıkarma riski taşıyacağı söylenebilir.
Bu nedenle, Kod Bankası Projesi'nin testinde nesneye yönelik sistem testi yaklaşımı benimsenmiş ve beyaz kutu testi uygulanmasına karar verilmiştir. Testte modül testlerinin yanısıra aşağıdaki kontroller yapılacaktır. Bütün mantıksal karar noktalarında iki değişik karar için test yapılması, modüllerin de tek tek test edilmesi anlamına gelmektedir.
- Bütün bağımsız yolların (alternatiflerin) en azından bir kere sınanması,
- Bütün mantıksal karar noktalarında iki değişik karar için testlerin yapılması.
Kod Bankası Yazılım Modülleri
- Kod Bankası Ana Arayüz Modülü
Kod Bankası ana arayüzünü oluşturan soldaki ana menü ve sağdaki duyuru ve takvim işlevlerini içeren arayüzlerin düzgün bir şekilde çalışıp çalışmadığının testleri bu aşamada yapılmıştır. Detaylandırmak gerekirse:
- Kod Bankası arayüzlerini kullanabilmek için, kullanıcıların kayıt olduklarından emin olunması testi,
- Menü içerisinde yer alan yönlendirme düğmelerinin doğru çalışıp çalışmadıklarının testi,
- Duyuru ve ilanlar ile, takvim ve onun sağladığı gazete okuma işlevlerinin düzgün bir şekilde sağlanıp sağlanamadığının testi gerçekleştirilmiştir.
- Kod Bankası Kullanıcı Giriş Arayüz Modülü
Bu kısımda, kullanıcının hem kayıt yaptırarak sayfalara giriş yaptığının testi gerçekleştirilmiş hem de kullanıcı giriş sayfası ile ilgili olası tüm ihtimallerin ve işlevlerin düzgün bir şekilde çalışıp çalışmadıklarının testleri yapılmıştır. Kullanıcı giriş sayfasını oluşturan tüm ihtimallerin çıktıları ve test sonuçları, proje gerçekleştirim raporunda belirtilmiştir. Bu testleri ayrıntılandırmak gerekirse:
- Kullanıcıların eski ve yeni kullanıcı olarak doğru giriş yapıp yapmadıklarının kontrolü ve testi,
- Kullanıcı girişi yapılmadan, Kod Bankası arayüz sayfalarına erişilip erişilmediğinin testi (ing. Session Tests),
- Yeni kullanıcılar için geliştirilen giriş yapma arayüzünün doğru çalışıp çalışmadığının testi,
- Yeni giriş yapan kullanıcıların, kullanıcı veri tabanına eklenip eklenmediklerinin testi,
- Aynı isimli kullanıcı girişlerini engelleyecek uyarı mesajlarının çalışıp çalışmadığının testi,
- Eski kullanıcıların, bilgilerini doğru girip girmediklerinin ve buna karşılık oluşan uyarı mesajlarının çalışıp çalışmadığının testi bu modül içerisinde yapılan testler kapsamında tamamlanmıştır.
- Kod Seçim Modülü
Kod seçim modülü, geliştirme raporunda belirtilen halinden biraz farklılaştırılmıştır. Bunun nedeni, veritabanı arama sonuçlarına olabildiğince hızlı erişim sağlamak için 4 farklı programlama dili kategorisi yerine tek bir kategori kullanılmasının daha uygun olacağı düşüncesidir. Projenin ilk aşamalarında düşünülen 4 farklı kategorinin her dil için farklı bir şekilde yapılandırılması gerekliliği
sistemi gereksiz yere karmaşıklaştırmakta ve yavaşlatmaktadır. Bu nedenle, kod seçim uygulaması tek bir programlama dili kategorisi içerecek biçimde güncellenmiştir. Kod seçim arayüzünün test edilmiş son hali aşağıdaki şekilde verilmiştir.
Kod Bankası Kod Seçim Sayfası
Kod seçim modülünde gerçekleştirilen testlerin tanımları ve açıklamaları aşağıda sıralanmıştır:
- Kod seçim sayfasında yer alan dil, platform, teknoloji, seviye, kategori parametreleri ile yükleme ve arama düğmelerinin işlevlerini yerine getirip getirmediklerinin testi,
- Kod seçim sayfasında kullanıcı tarafından seçilen parametrelerin (ing. session parameters) arama ve yükleme sayfalarına doğru bir biçimde iletilip iletilmediklerinin testi,
- Kod seçim sayfasındaki parametrelerin veritabanındaki ilgili değişkenlere doğru bir şekilde atanıp atanmadıklarının testi bu modül üzerinde gerçekleştirilmiştir.
- Kod Yazma, Yükleme, Derleme ve Veri Tabanına Ekleme Modülü
Kod Bankası'nın bu modülü, geliştirme raporunda verilen arayüzden biraz değiştirilmiştir. Daha kullanıcı dostu bir arayüz sağlamak amacı ile, kullanıcıya öncelikle Kod Yazma veya Kod Yükleme seçimlerinden hangisini yapmak istediği sorulmaktadır. Yapılacak seçime uygun olarak kullanıcı ya kendisi arayüze kod yazacak ve bunu kaydedecek veya bir dosyadan kod yükleyerek işlemlerine devam edecektir. Yapılan değişiklikler sonucunda bu modülün son halini gösteren şekil aşağıda verilmiştir.
Kod Yazma, Yükleme, Derleme ve Veri Tabanına Ekleme Sayfası
Bu modülde test edilen maddeleri sıralamak gerekirse:
- Kod yazma arayüzünün test edilmesi,
- Kodun, sayfa içerisindeki arayüze yazılabilirliğinin test edilmesi,
- Yazılan kodun, sayfadaki diğer arayüzler ile (sunucuya kayıt etme, derleme, veri tabanına ekleme düğmeleri) etkileşebildiğinin test edilmesi,
- Yazılan kodun, sunucu üzerinde kayıt edildiğinin test edilmesi,
- Kod yükleme arayüzünün test edilmesi,
- Kullanıcı tarafından seçilen kodun, sayfa arayüzüne yüklenebilirliğinin test edilmesi,
- Yüklenen kodun, sayfadaki diğer arayüzler ile (derleme, veri tabanına ekleme düğmeleri) etkileşebildiğinin test edilmesi,
- Kod derleme arayüzünün test edilmesi,
- Kodun başarılı veya başarısız derleme sonuç bilgilerinin arayüze gönderilip gönderilmediğinin testi,
- Kodun hatalı olması durumunda derlenemediğinin testi (dosyanıın exe uzantılı başka bir dosya oluşturup oluşturmadığının kontrolü),
- Kodun derlenmeden veri tabanına atılamadığının testi,
- Kod derlemenin, diğer arayüzler ile (yazılan veya yüklenen kodun alınması) etkileşebildiğinin test edilmesi,
- Kodun veritabanına eklenip eklenmediğinin testi,
- Veritabanına ekleme arayüzünün diğer arayüzler ile (sayfaya yüklenen kodu okuma, Kodun derlenmeden veri tabanına atılamadığının kontrolü) etkileşebildiğinin test edilmesi gerçekleştirilmiştir.
- Kodun veritabanına eklenmesi görevini yapan düğmenin işlevini yerine getirip getirmediğinin test edilmesi,
- Kodun veritabanına eklenip eklenmediği bilgisinin arayüze gönderilmesinin testi,
Yukarıda verilen şekilde de görüldüğü üzere, gerçekleştirim aşamasında belirtilen işlemlerin testleri başarı ile tamamlanmıştır.
Not:
Derleme aşamasında, derlenen kodların çıktıları veya hata mesajları yerine sadece kodun derlenip derlenemediği bilgisi kullanıcıya gönderilmektedir. Dosya çıktılarının hata, uyarı mesajları ve çıktı bilgileri MS-DOS ortamında elde edilmiş, fakat bu bilgiler php kodu içierisindeki arayüze alınamamıştır. MS-DOS'da dosya çıktılarını gözlemlemek için kullanılmış olan kodlar aşağıda verilmiştir:
Komut |
İşlevsellik |
echo içerik >> deneme.txt |
içerik kelimesi deneme.txt dosyasının içine yazılabiliyor. |
gcc --help > yardım.txt |
gcc'nin yardım menüsünün içeriği yardım.txt dosyasının içine yazılabiliyor. |
dir > msg.txt |
dir'dan çıkan sonuçlar msg.txt dosyasına yazılabiliyor. |
Bu nedenle, dosya çıktılarının arayüze alınma işlevi, projenin ileride yürütülecek geliştirme çalışmalarında tamamlanacak olup IDE_A kapsamında tamamlanması düşünülen gereksinimlerin dışında olduğundan proje başarımına bir etkisi görülmemektedir. Bu nedenle, gerçekleştirim aşamasında belirtilen bütün gereksinimler ve bunların testleri başarı ile tamamlanmıştır.
- Kod Arama Modülü
Kod arama modülünün test maddeleri şu şekilde sıralanabilir:
- Arama anahtar kelimesi giriş alanının ve arama düğmelerinin işlevselliklerinin test edilmesi,
- Arama anahtar kelimesinin veritabanında bulunup bulunmadığının ve ilgili sonuçların elde edilip edilmediğinin test edilmesi,
- Arama sayfasında bulunan ileri,geri ve anasayfa butonlarının çalışıp çalışmadıklarının test edilmesi,
- Arama kelimelerine göre bulunan dosyaların gösterilmesi ve kullanıcılar tarafından erişiminin test edilmesi bu kısımda gerçekleştirilen başlıca testleri oluşturmaktadır.
Kod arama modülünün çalıştırılarak test edilmiş hali aşağıdaki resimde görülebilir:
Kod Arama Sayfası
Eğer, kod işlem sayfalarındaki dil, platform, teknoloji, seviye ve kategori bilgilerinden herhangi biri eksik olarak girildikten sonra arama sayfasında kod taraması yapılmak istenirse
kullanıcı aşağıdaki resimde görüldüğü biçimde bir uyarı mesajı ile karşılaşacaktır.
Kod Arama Sayfası Uyarısı
Sayfaların işleyiş bütünlüğü açısından, geliştirme raporunda belirtilen kod veritabanına bazı ek nesne alanları girilmiştir. Bunlar sırası ile kod seçim sayfasında yer alan platform, teknoloji ile seviye bilgileridir.
Ayrıca kod puanlamalarında kullanılmak üzere, kullanıcı numara bilgisinin de kod veritabanı tablosunda yer alması uygun bulunmuştur. Böylece, kodu veri tabanına ekleyen kişi kendi girdiği koda puan veremeyecek ancak ve ancak diğer kullanıcılar bu kod
üzerinde puanlama yapabileceklerdir. Böylece, Kod Bankası'nda bulunan kodlar üzerinde adaletli bir değerlendirme yapılmış olacak ve kullanıcılar doğru bir biçimde yönlendirileceklerdir.
Kod Tablosu
Kod Bankası Ziyaretçi Defteri Modülü
Kod Bankası Ziyaretçi Defterinin gerçekleştirimi ve test sonuç çıktıları proje gerçekleştirim raporunda verilmiştir. Kod Bankası ziyaretçi defteri kullanımı için yapılan testler yine aşağıda maddeler halinde detaylandırılmıştır:
- Kod Bankası'na kullanıcı girişi yapmayanların ziyaretçi defterine giremediğinin testi, (Ziyaretçi defteri ve diğer Kod Bankası arayüzlerini kullanmak için kullancıların kesinlikle kayıt yaptırarak sisteme giriş yapmaları gerekmektedir.)
- Ziyaretçi defterindeki kullanıcı veri girişi alanlarının ve ilgili aktivasyon düğmesinin çalışıp çalışmadığının testi,
- Ziyaretçi defterindeki kullanıcı bilgilerinin eksiksiz girilmesini sağlayan uyarı mesajlarının testi,
- Ziyaretçi defterine girilen bilgilerin veri tabanına aktarılıp aktarılamadığının testi,
- Veritabanına aktarılan bilgilerin kullanıcı arayüz sayfasına doğru ve eksiksiz bir şekilde gönderilip gönderilmediğinin testi yapılmıştır.
Test Sonuçları
Bu kısımda, Kod Bankası'nın her bir grubuna uygulanan test sonuçlarından
bahsedilmiştir.
Yukarıdaki resimlerden de görüleceği üzere, Kod Bankası'nın her bir modülü başarı ile çalıştırılmış ve testlerden geçmiştir. Belirtilen test çıktı resimlerine ek olarak kod yazma/yükleme,
derleme ve veritabanına ekleme işlemlerinin gerçekleştirildiğini ve bu özelliklerin test edildiğini gösteren şekil aşağıda verilmiştir.
Kod Yazma, Yükleme, Derleme ve Veri Tabanına Ekleme Test Sonucu
Şekilde de görüldüğü üzere kod, veritabanına eklendiğinde dosya isminin önünde bazı rakamlar yeralmaktadır. Bu sayılar bir tarih bilgisi tutmakta ve eğer kullanıcılar aynı isimli dosya girerlerse bu tarih bilgisi sayesinde kodların birbirinin üzerine yazılması engellenmektedir. Ayrıca, aynı isimli kodların veritabanında tutularak birbirinden ayırt edilmesinde de
bu tarih bilgisi kullanılmaktadır.
Tarih ile ilgili detaylı ingilizce açıklama aşağıda belirtilmiştir:
The time() function returns the current time as a Unix timestamp (the number of seconds since January 1 1970 00:00:00 GMT).
Test raporunda da belirtildiği üzere, Kod Bankası'nın tüm modülleri test edilmiş, birbirleri ile entegrasyon sırasındaki etkileşimleri incelenmiş ve bunlar için parametre transfer kontrol testleri
gerçekleştirilmiştir. Entegrasyon sonrasında da tüm sistemin operasyonel veya işlevsel testleri tamamlanmıştır. Testler sonucunda, gerekli düzeltmeler yapıldığı için herhangi bir sorun ile karşılaşılmamıştır.
Böylece, Kod Bankası Projesi gerçekleştirimi ve testleri başarı ile tamamlanmış ve proje gelecekte yapılması düşünülen eklemeler ile uygulanmaya büyük ölçüde hazır hale getirilmiştir.
(*) IDE_A/BTSP 11. Dönem Ders Notları, Yazılım Mühendisliği Dersi, Konu 5.4.1 Nesneye Yönelik Sistem Testi
|
|