Bir soruyla başlamak istiyorum; aşağıdaki yordamın %100 doğru çalıştığından emin olmak için nasıl bir birim test yazarsınız?
public boolean yourMethod(int a) {
int min = 1; // iyi degil biliyorum
int max = 5; // ayni sekilde
if ((a >= min) && (a <= max)) {
return true;
}
return false;
}
Böyle birim test tatmin edici olur mu ?
@Test public void testYou() {
MyClass sut = new MyClass();
assertFalse(sut.yourMethod(0));
assertTrue(sut.yourMethod(3));
}
Fena gözükmüyor sanki peki olaya kod kapsama (code coverage) raporlarına bakarak ilerleyelim, işte o rapor : %100 kapsama ulaşmak müthiş bir başarı. Konuyu kapatıp huzur içinde yeni planlama (test yaz) — kodla — sonuçları gör ve iyileştir evresine geçebiliriz derken aslında tablonun hiçte bu kadar iyi olmadığını öğreniyoruz.
Bu şimdi ne demek ? Şu demek %100 kod kapsamanın ötesinde eksiklerimiz olduğunu mutasyon test tarafından gösteriliyor. Neden mutasyon testlere ihtiyacımız var ? Kısacası zayıf testlerin üzerinden gelinmesi için mutasyon testlere kesinlikle öneriyorum.
Bu yaklaşım inanıyorum ki yazılım testlerin kalitesinde müthiş bir kalite artışı getirecektir. Çok kısa bir nokta daha belirtmek istiyorum. Diyelim ki çok basit bir topla() yordamı yazdık :
public int topla(int a, int b) { return a + b ; }
topla() yordamının aşağıdaki birim test içerisindeki gibi test edersek :
Mutasyon testler sayesinde birim testlerin (unit testing) kalitesinin arttığı çok açık. Mutasyon testi için ben bu örneklerde PiTest aracını kullandım ama özellikle Java teknolojileri için başka araçlarda mevcut.
Android uyumlu dokunmatik ekran akıllı cep telefonları, tablet, ipad, iphone gibi Mobil cihazlarla tek bir tıkla Mobil Sohbet’e katılabilırsıniz.
Sohbet ve chat yapmanızı kolay ve güvenli hale getiren sohbet odaları sorunsuz kesintisiz yeni kişilerle tanışma imkanı sağlar.
Mersin Klima Servisi, Montaj, Tamir, Bakım, Firması Olarak Sizlere Tüm Marka Ve Modeldeki Beyaz Eşyalarınız Tamiri, İçin Beyaz Eşya Teknik Servis Hizmeti Sunmaktadır.