Test yazılması ne demektir? - BTSoru.com
Test yazılması tabiriyle sıklıkla karşılaşıyorum.Fakat anlamını henüz idrak edemedim. Yazılım geliştirilme sürecinde testlerin hayati önem arz etmekte olduğunu biliyorum.Peki, test yazılması tabiri yazılımı kontrol için yazılan ayrı programlar mıdır? Test yazılması ne demektir?
05 Tem '14, 12:39 ugurcanlacin
Sana kısaca şöyle özetleyeyim. Yazdığımız kodu yine kendi yazdığımız başka bir kodun kontrol etmesidir test yazılması.
Şimdi bir örnek vereyim ki gerçek hayatta böyle basit metodlar karşımıza çıkmaz. Aşağıdaki gibi bir kod parçası olduğunu varsayalım. Bir toplama işlemi yapıyorum ve bu toplama işleminde sayi1=3,sayi2=4 gönderdiğimde 7 sonucunun dönmesi gerektiğini biliyorum.
public int Toplama(int sayi1, int sayi2)
Şimdide bu metodun bir tane unit testini NUnit kullanarak yazayım.
Hesaplama hesaplama=new Hesaplama();
var sonuc = hesaplama.Toplama(3, 4);
//sonuc' un 7 olması gerektiğini kontrol ediyorum
Eğer başka bir yazılımcı yada sen bu toplama metodunda bir değişiklik yaptığında farkında olmadan kodu bozduysan. Unit testleri çalıştırdığında seni uyaracaktır ve sende anında müdahale edebileceksin.
Ayrıca unit testleri inceleyerek metodun nasıl çalıştığını anlamak daha kolay oluyor.Unit test sayesinde daha az hata ile daha stabil çalışan uygulamalar geliştirebiliriz.
Update: Bu anlatımda değinilmesi gereken çok önemli bir nokta daha var aslında. Projemizin devasa boyutta olduğunu ve bu toplama metodunun bir çok yerde kullanıldığını ayrıca diğer tüm metodlarımızında unit testlerini de yazmış olduğunu varsayalım. Müşteri bu toplama metodunun değiştirilmesini istedi ve sizde bu talebe göre güncellediniz. Unit test yazdığımız için bu değişikliğin projenizde kaç yeri etkileyeceğini bulmanız çok kolay olacaktır. Testleri çalıştıracaksın ve toplama metodunun kullanıldığı tüm testler bu değişiklik üzerine patlayacaktır ve sisteminizin değişikliklerden nasıl etkilendiğini çok kolay takip edebileceksiniz.
Kısacası 'Unit Test candır'.
05 Tem '14, 13:26 Müslüm ÖZTÜRK
06 Tem '14, 17:03
O kadar güzel açıkladınız ki anlamamak elde değil :)
(05 Tem '14, 13:29)
Öylesine konuya bakmak için girdim,ama Müslüm ÖZTÜRK'ün verdiği cevabın anlaşılırlığını acizane takdir etmek için yazdım.Benim de sormak istediğim bir soruydu ve sormadan tek bir cevapla anladım.
(05 Tem '14, 22:13)
Güzel yorumlarınız için bende sizlere teşekkür ederim
(06 Tem '14, 07:15)
o halde bu tarz işlemler sadece static veriler || objeler için kullanılır mı diycez
(07 Tem '14, 10:15)
Anladığım kadarıyla unit test konusunda kafasında soru işareti olan arkadaşlar epeyce çoğunlukta. Bende hem özcan arkadaşımızın sorusuna cevaben hemde ilgilenen arkadaşlara ışık olması açısından Netbeans+Junit+Mockito kullanarak örnek bir uygulama üzerinden Unit Test konusuna giriş yaparak kafalardaki soru işaretlerini gidermeyi amaçladım. Yazarak değil de video ile daha anlaşılır olacağını düşünerek aşağıdaki videoyu hazırladım. İnşallah amacına ulaşır. Herkese iyi çalışmalar.
07 Tem '14, 18:12 Müslüm ÖZTÜRK
Hocam videoyu izledim. Random ile işlem yapmanız biraz daha komplike şeyleri anlama konusunda yardımcı oldu. Çok teşekkürler.
(07 Tem '14, 19:26)
Soruldu: 05 Tem '14, 12:39
Son güncelleme: 07 Tem '14, 19:55
Hangi otomatik test aracını kullanıyorsunuz neden ?