30 Mart 2014 Pazar

NUnit Gui Tool Kullanarak Test Uygulaması Oluşturma


Merhabalar arkadaşlar;
  Geçen hafta Visual Studio üzerinde Unit Test projesi oluşumu ve NUnit Adapter kurulumundan bahsetmiştim. Bu hafta sizlere NUnit Guit Tool kullanarak birim testleri oluşturmayı göstereceğim. Birim testleri yazmak için geliştirilmiş bir çok framework olmak ile beraber bunlar içerisinde en çok kullanılanı NUnit ve MSTest frameworkleridir. Biz  NUnit hakkında konuşup güzel bir giriş yapacağız.

NUnit Gui Kurulumu

NUnit ücretsiz olarak bu adresten indirilebilir. 



  İndirdiğiniz .msi uzantılı dosyayı kurunuz. Kurulum sonrasında artık NUnit .dll’leri ve NUnit Test Runner Client aracı kurulmuş olacaktır. NUnit TestClient testlerimizi çalıştırıp başarılı veya başarısız olma durumunu kontrol edeceğimiz uygulama olacaktır.

NUnit ile İlk Test Ortamının Hazırlanması


  Her ne kadar sonraki süreçlerde Test First Development (Önce Test Et) teknikleri yapmanızı önersem de bu aşamada klasik test süreçlerine göre yazacağız. Çünkü öncelikle test mantığının anlaşılmasında fayda var.
  İlk uygulamamızı basit bir örnek üzerinden yapacağız. Klasik bir matematik işlemi yapacağız. Sonraki yazılarımda çok daha gerçekçi örnekler kullanacağım.
   Bir adet Visual Studio Solution Oluşturup içine iki adet Class Library ekliyoruz. Burada dikkat etmenizi istediğim husus isimlendirme standartlarına uyulması gerekliğidir. Hangi kütüphaneyi test edeceksek sonuna “.Tests” şeklinde bir isimlendirme yapmayı ihmal etmemeliyiz. Özellikle Team Build süreçlerinde güzel avantajları var.
Aşağıdaki gibi bir yapı oluşturunuz. İki proje de birer class library dir.



  UnitTest kütüphanesine bir adet Matematik sınıfı ekleyelim. Sınıfımızı public olarak işaretleyin. Zaten testler genel olarak public üyeler üzerinde yapılır.

Sınıfımıza aşağıdaki gibi metod ekleyelim.

  Şimdi yazdığımız sınıfı UnitTest.Test library tarafında test edeceğiz. Bu nedenle UnitTest kütüphanesini buraya ekleyelim. Ek olarak da içine bir adet MatematikTest isimli bir sınıf ekleyelim. Burada yine hangi sınıfı test ediyorsak sonuna Test ekledik.

Son olarak nunit.Framework dll ini referans etmek gerekiyor.Default lokasyonu C:\Program Files(x86)\NUnit 2.6.3\bin\framework\unitframework.dll klasörüdür.





İlk Testimizi Yazalım


MatematikTest sınıfına ilk test metodumuzu ekleyelim.





   Burada öncelikle [TestFixture] attribute’sinin sınıfın başına eklendiğini görüyoruz. Bu attribute bu sınıfın bir test sınıfı olduğunu belirtmek içindir. NUnit Test Runner Client bu attribute olan sınıfları test etmeyi amaçlar.
[Test] attribute’si ise test metodun test metodu olduğunu gösterir.
Test metodu olarak On_ile_bes_bolundugunde_sonuc_iki_olmalıdır isminde bir metod ekledik. Bu metodun isimlendirmesi çok önemlidir. Arrange ,Act,Assert olarak commentlediğim olanlar bir testte olması gereken üç gruptur diyebiliriz.


Arrange : Testin gereksinim duyduğu sınıfların, verilerin vs. toplandığı yerdir. Biz Matematik sınıfına ihtiyaç duyduğumuz için referansını oluşturduk.





Act: Test etmeyi hedeflediğimiz operasyonu çalıştırdığımız ve actual olarak isimlendirilen değere ulaştığımız yerdir. Actual, test edilecek metodun mevcutta ne döndürdüğünü bulduğumuz yerdir. Dikkat ederseniz biz aşağıdaki gibi bir kullanım ile mevcut degere ulaştık.







Assert : Actual(mevcut) değeri ile beklediğimiz değeri(expected) karşılaştırdığımız alandır. Kısacası doğrulama alanıdır. Yani testin geçtiğine karar veren kısımdır.







  Assert sınıfı static metodlara sahiptir. Bunlardan en çok kullanılanları AreEqual, AreNotEqual, AreSame, Fail,IsTrue,IsFalse gibi static metodlardır. Intellisende bu listeyi daha detaylı inceleyebilirsiniz.


İlerleyen yazılarımda Assert sınıfını çok daha detaylı incelemeyi düşünüyorum.


İlk test metodunun çalıştırılması

Bu işlem için kurulumunu yaptığımız NUnit Test Runner Client’ına ihtiyaç vardır. Aşağıdaki şekilde client uygulamızı açalım.





  Solution’ı build ederek, açılan test runner client’ta File/Open Project/ UnitTest.Tests.dll ini aşağıdaki gibi ekleyiniz.




Aşağıdaki gibi bir görüntü ile karşılaşacaksınız.







  Şimdi Run tuşuna bastığımızda bütün testlerimiz çalıştırılacaktır. Eğer geçerse yeşil geçmezse kırmızı ile karşılaşırız. Bu durumda biz yeşil aldık.




   Bu haftalık anlatacaklarım bu kadar arkadaşlar.Haftaya test'imizi çalıştırdığımız zaman oluşacak hatalara göz atacağız.Ardından daha düzenli kod yazmada kullanılan çeşitli metodların kullanımından bahsedeceğim.Şimdilik yazımı sonlandırıyorum haftaya tekrar görüşmek üzere hoşçakalın..


Referans

1)http://www.nunit.org/index.php?p=nunit-gui&r=2.4.3


23 Mart 2014 Pazar

1)Unit Test Project Oluşturma ve NUnit Adapter Kurulumu


   Merhabalar Arkadaşlar, geçen hafta unit testing(birim test)'in ne olduğunu ve nerelerde hangi amaçlarla kullanıldığını açıklamıştık.Bu hafta sizlere bilgisayarımızda Unit Test Project nasıl oluşturulur, ayrıca farklı bir birim test çerçevesi olan NUnit Adapter'in Visual Studio üzerine eklentisinin nasıl kurulduğunu açıklayacağım.

   İşlemleri size Visual Studio 2012 kullanarak açıklayacağım.Visual Studio'nun diğer sürümlerle 2012 sürümü arasında pek fark bulunmuyor bu yüzden aynı basamakları kullanarak siz de sisteminizde yüklü olan herhangi bir Visual Studio sürümüne rahatlıkla aşağı da anlatılan basamakları uygulayabilirsiniz.


    Birim Test Oluşturma

1)Birim Testi Projesi Oluşturun




2)Projeye bir ad verin




Proje artık solution kısmına eklenmiştir















3)Birim testi projesinde, test etmek istediğiniz projeye bir referans ekleyin






















4)Test edeceğiniz kodu içeren projeyi seçin













 5)Birim testinizi kodlayın






Bu basamaktan sonra birim testlerini nasıl çalıştıracağımıza bakalım


1)Öncelikle Test Explorer kısmını açın




2)Birim testlerini çalıştırın






Test Explorer ile geçen ve kalan birim testlerini görebilirsiniz







Unit Test Project'in oluşum basamaklarından sonra şimdide NUnit Adapter kurulumundan bahsedeceğim


1)Visual Studio uzantı yöneticisi kullanarak eklentinizi indirin






2)Eklentinizi Visual Studio Galerisi'nde ki Araçlar/Test'in altından indirin veya adını biliyorsanız arama yapın







3)Class Library projesi oluşturun






Projeyi bu basamaktan sonra solution kısmına ekleyin






4)Sınıf kitaplığı projesinde NuGet komutunu çalıştırarak eklentiyi yükleyin






NuGet, projelerinizde kitaplıkları ve araçları eklemek ve güncellemek için kullanabileceğiniz bir Visual Studio uzantısıdır



5)Eklentinizi yükleyin. Adını biliyorsanız, eklentiyi çevrimiçi ortamda arayabilirsiniz






Projenizde çerçevenin uzantısı bulunur






6)Sınıf kitaplığı projesinde, test etmek istediğiniz projeye bir referans ekleyin



7)Test edeceğiniz kodu içeren projeyi seçin




Son olarak Birim Testinizi kodlayın
























Kurulumu ve nasıl test edildiğini gördükten sonra haftaya temel düzeyde anlatılanları kavramaya yönelik küçük uygulamalar yapacağız. Bu haftalık anlatacaklarım bu kadar, haftaya tekrar görüşmek üzere hoşçakalın arkadaşlar...


Kaynaklar


1)http://msdn.microsoft.com/en-us/library/hh694602.aspx
2)http://www.codeguru.com/csharp/.net/using-nunit-with-visual-studio-2012-unit-test-projects.htm
3)http://en.wikipedia.org/wiki/Software_testing























16 Mart 2014 Pazar

Unit Testing(Birim Test) Giriş

   Merhaba arkadaşlar,sizlere on hafta boyunca Unit Testing(Birim Test) ne işe yaradığını ve kullanım alanlarının neler olduğundan bahsedeceğim.Unit Testing(Birim Test) Java ve C# yazılım dillerinde farklı şekillerde yapılmaktadır.Java'da JUnit,C# da ise Nunit Framework'leri kullanılmaktadır.Ben sizlere Unit Testing(Birim Test) yapmayı C# dilinde anlatacağım,bunun için NUnit Framework'ü kullanacağım.

   NUnit yoğun olarak kullanılan,açık kaynak kodlu,DotNet Framework dilleriyle birim test geliştirme aracıdır.Unit Testing(Birim Test),programımızın içindeki class ve modüllere yönelik yazılmış,bir Black Box Testing türüdür.Yani test edilecek kodun sadece Input/Output kontrolünü yapar.Her döngü ve değişkenlerini kontrol etmez.Şimdi gerek ödev olsun,gerek proje olsun yazacağımız programları zamanında ve bug-free bir şekilde geliştirebilmek için Testing gerçekten önemli.Hızlı bir şekilde doğru programa ulaşabilmek için Birim Test kullanmak gayet faydalı olacaktır.

   Birim Testte yazacağımız programı küçük modüller haline döküp onları kontrol edeceğiz.Eğer testlerimizden geçerse,yani programımız için olmazsa olmazlarımızı sağlarsa hedefe yönelik bir program yazmışız demektir.Artık programın başka yerlerine bakmaya gerek yok,bundan sonra performansa bakabiliriz.Şöyle de düşünebilirsiniz,programı yazdınız ilk halinde çalışıyordu ve sonradan ufak bir yerinde bir gereksiz kod ya da modül gördünüz ve değiştirdiniz.Eğer kodu komple bir test den geçirmezseniz o başta belirlediğimiz olmazsa olmazlarımızı sağlayıp sağlayamadığından emin olamazsınız.İşte tam burada eğer bir test yazılmış ise uygulamamızın bu belirtilen şartları sağlayıp sağlamadığı kolayca kontrol edilir.

   Önümüzde ki haftalarda anlattıklarımı daha detaylı ve uygulamalı olarak sizlere aktaracağım.İlerleyen haftalarda bahsedeceğim konu başlıkları şu şekilde olacaktır;

1)Visual Studio 2012 Kullanılarak Unit Test Project Nasıl Oluşturulur ve NUnit Adapter Kurulumu

2)Temel Düzeyde Birim Test Uygulaması Oluşturma

3)NUnit Gui Tool Kullanarak Test Uygulaması Oluşturma

4)Test Tarafında Oluşabilecek Hataları Tespit Etme

5)Unit Test oluştururken Code Coverage Yapma

6)Birim Test Oluşumunda Mock Object'lerin Kullanımı

7)Kaliteli Birim Testler Hangi Özellikte Olmalıdır

8)Unit Testing Yaparken Kullanılan Assert Metodları

9)Visual Studio Üzerinde Örnek Unit Test Uygulaması

10)Unit Test Yaparken Sıkça Karşılaşılan Hatalar

  Arkadaşlar bu haftalık yazımı burada sonlandırıyorum gelecek hafta Visual Studio kullanarak Unit Test kavramının ne olduğunu açıklayacağım,görüşmek üzere hoşçakalın..

Kaynaklar

1.http://tr.wikipedia.org/wiki/Birim_testi

2.http://leoncullens.nl/post/2012/02/06/An-introduction-to-unit-testing-What-is-test-first.aspx

3.http://csprogrammer.net/en/tutorial-testes-unitarios-csharp-nunit/