Bu sayfadaki yazılar
Sayfanın metni
Sayfa 133
SONUÇ
Daha önceden bu kavramlarla karşılaşmamış programcılar için bu anlattıklarımız çok abartılı gelebilir. Fakat bu uygulamalar, dünyada giderek karmaşıklaşan yazılım projelerini kontrol altına almakta ne kadar başarılı ise, kişilerin tek başlarına yaptıkları projelerde de bir o kadar işe yarayacaktır. Bu sistemleri kurmak, başta biraz efor gerektirse de, bir kere hayata geçirdikten sonra fazla fazla zaman kazandıracaklardır. Ayrıca düşen donanım fiyatları sayesinde, geliştirme makinesinden başka versiyon yönetim ve hata takip için bir makine ve build makinesi olarak bir diğer makine bulundurmak bugün artık öğrenciler için dahi gayet mümkündür. Çünkü ikinci ve üçüncü makineler olarak çoğu zaman 150-200 YTL'ye temin edilebilecek ikinci el makineler olabilir. Bir başka yol da, internette CVS veya Bugzilla servisi veren sitelerden faydalanıp, proje dosyalarınızı web'de saklamak olabilir. Bu zaten farklı yerlerde çalışan insanların projede kolaylıkla yer alabilmesini de sağlar.
Konuyla ilgili soru ve yorumlarınız için soru@nightnetwork.org adresinden bize ulaşabilirsiniz.
Nightlord
Klavyeyle gezinmek için ← ve → tuşları.
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.