»
Y
A
N
M
E
N
Ü
«
Etkili Birim Testleri Yazmaaaağğhh!!!
ibrahim dursun @ 30 Aralık 2007 20:24

Birçoğumuz [Agile Development][1], [Test Driven Development][2] (TDD) ve [Extreme Programming][3] gibi terimleri sıkça duyuyoruzdur. Altlı üstlü bu yöntemlerin tümünün uzlaştığı bir nokta ise yazılımımızın sağlığı için gerekli birim testlerin (Unit Test) yazılmasıdır.

Peki bu birim testleri nasıl yazmalıyız ki hem etkili olsunlar hem de bakımları kolay olsun? Aslında bu sorunun cevabının büyük bir kısmı sizin projenizin tasarımızla ilişkili. Çünkü birim testler adı üzerinde birimleri test etmelidir. Nesne yönelimli programlama (OOP) paradigması ışığında hazırlanmış bir yazılımın birimleri ise sınıflardır. Sınıflarımızı tasarlarken de hayatımızı kolaylaştırması için uymamız gereken belli başlı prensipler var. Mesela her sınıf değişime kapalı fakat genişletilebilirliğe karşı açık olmalıdır ki buna -Açık Kapalı Prensibi- denir. vs vs..

Devam…

Testlerimiz kodumuzun ne kadarını kapsıyor?
ibrahim dursun @ 2 Ekim 2007 20:20

Yazdığımız kodun doğru çalışıp çalışmadığını, istediğimiz özellikleri sağlayıp sağlamadığını testler yazarak garantilemeye çalışırız. Birçok programlama dili için test araçları mevcut, Delphi için DUnit, java için JUnit, .Net için NUnit, MbUnit vs… Fakat yazdığımız bu testlerin kodumuzun ne kadarını test ettiğini, hiç atladığımız durumlar olup olmadığını merak etmiyor musunuz? İşte bunun içinde başka bir araç var ve adı NCover.

Kod Kapsama nedir?

Testlerimizin kodun ne kadarına uğradığını ve dolayısıyla tümüne oranla ne kadarlık kod parçasının testlere dahil olduğunu ölçmek için kullanılan kalite kontrol yöntemi “Code Coverage” (Kod Kapsama) diye adlandırılır.

Kod kapsama ile ne gibi bir ölçüm yaparız?

  • Test senaryolarımız tarafından ulaşılmayan, test edilmeyen kod parçacıklarını tespit edebiliriz
  • Test edilmeyen kod parçalarını da içerecek yeni testler yazabilir ya da eski testlerimizi genişletebiliriz.
  • Gereksiz testleri tespit edip kaldırabiliriz.
  • Aslında hiç kullanmadığımız kod parçacıklarını ayıklayabiliriz
Ben Visual Studio için TestDriven.Net eklentisi kullanıyorum ve bu eklenti ile hazır NCover desteği de geliyor ki işimizi fazlasıyla kolaylaştırıyor. TestDriven.Net, kişisel kullanım için ücretsiz, fakat Visual C# Express Edition kullanıyorsanız bu eklentiden faydalanamazsınız çünkü Express Editionlar eklenti yüklenmesine izin vermiyor. Başka bir alternatif ise JetBrains’in UnitRun‘ı ki bu üründe ücretsiz.

Diyelimki bir tane Registration adında bir DTO sınıfınız ve bu sınıftaki bilgileri doğrulayan RegistrationValidator diye başka bir sınıfız var. Devam…

»  Substance: WordPress   »  Style: Ahren Ahimsa