Plazma sayı 3, sayfa 132
Sayfanın metni

Sayfa 132

HATA VE İSTEK TAKİBİ

Projeyi yapıyorken, sizden istenen şeyleri ve ortaya çıkan hataları bir listede tutmak çok da uzun açıklama gerektirmeyen bir gereklilik. Basit bir deftere not alabilirsiniz elbet, ama bu iş için geliştirilmiş bazı sistemleri kullanarak, yalnızca liste oluşturmak değil, listedeki maddelere öncelik sırası vermek, bu maddeleri geliştiricilere paylaştırmak veya bug sayısının proje zamanına grafiğini çıkarmak gibi çeşitli yönetimsel amaçlı uygulamaları hayata geçirebilirsiniz.

Ayrıca geliştiricilerin ve testçilerin ayrı gruplar olarak çalıştığı durumlarda, hatanın girilişi, geliştiricinin uğraşmaya başlaması, hatanın tamir edilmesi ve son olarak hatanın tamir edildiğinin görülerek hata kaydının kapatılması gibi, bir hata kaydının geçtiği bütün evreler bu sistemlerde takip edilebilir.

Bunun için incelenebilecek çok araç var. Başlangıç olarak bunlardan en popülerlerinden olan Bugzilla'ya bakmanızı öneririz.

TEST OTOMASYONU

Test konusu, çoğu zaman projelerde en az zaman ve kaynak ayrılan konudur. Dünyada bu kadar çok projenin başarısız olması bu yüzdendir.

Programı çalıştırıp menülere girip çıkmak, tuşlara rastgele basmak vs. test demek değildir. Test hayli kompleks bir yazılım aktivitesidir.

Yazılan her kod anlamlı birimlere bölünüp test edilmelidir. Bu birimler çoğu zaman class metodları veya fonksiyonlar olabilir. Yani programınızda 50 class ve bu class'larda toplam 500 metod varsa, ideal olarak bu 500 methodu da test eden kodlar yazmalısınız.

Çoğu zaman ideal durum mümkün olmadığı için, test edilecek şeyler arasından en kritik olanlarının seçilmesi ve gerçekleştirilmesi hayati önem taşır.

Ama çok derin bir konu olan test senaryosu yaratma konusuna girmeyeceğiz. Bizim burada değineceğimiz konu, test otomasyonu.

Yazılan her test senaryosu, bir test senaryo kümesinde biriktirilmeli (Buna "Test Harness" deniyor) ve her test sonuç olarak "Geçti" veya "Kaldı: XXXX hatası oluştu" şeklinde bir sonuç vermelidir.

Test otomasyon sisteminizle Test Harness içindeki senaryolardan istediklerinizi arka arkaya çalıştırabilmeli ve hepsinden dönen sonuçları otomatik olarak raporlayabilmelisiniz. Bu raporun sonunda:

"12740

test senaryosu çalıştırıldı. 12203 tanesi geçti. 537 tanesi kaldı.

gibi bir satır bulunmalı.

İşte bu otomasyon sayesinde daha önce belirttiğimiz build makineniz her gece siz uyurken versiyon yönetim sisteminden projenin son versiyonunu çekip, Test Harness'ı çalıştırarak, sürekli olarak kodun sağlamlığının geriye gitmediğinden emin olur. Bu sayede geliştiricilerden biri bir hatayı çözmek için yaptığı değişiklik ile eskiden çözülen bir bug'ı tekrar sisteme sokarsa, bunu hemen fark edebilirsiniz.

Test otomasyon sistemi olarak XUnit serisine bakmanızı öneririz (Java için JUnit, C++ için CppUnit).

Eğer PC dışı bir platformda test otomasyonu kurmanız gerekirse, kullandığınız sistemin giriş çıkışlarına bakmalısınız. Örneğin emülatör kullanıyorsanız, emülatörden sisteme olan çıkış yollarına bakıp, emülatörde çalışan programın bir şeyleri PC sistemine raporlayabilmesini sağlayıp, bunu da otomatik test scriptleri ile kontrol edebilirsiniz. Mesela C64 emülatörü VICE'ın user port emülasyonu sayesinde, yazdığımız bir C64 programının, user port üzerinden PC hard diskinde bir dosyaya baytlar göndermesini sağlayabiliriz. Sonra da bu baytların beklenen baytlar olup olmadığını PC'de kontrol edip (tabii ki otomatize edilmiş halde), Test Senaryosu için geçti veya kaldı sonucunu üretebiliriz.

Klavyeyle gezinmek için ← ve → tuşları.