11 Nisan 2011 Pazartesi

Goz ile (Goz var nizam var) yazilim testi yapmak!

Yil 2005 biz 3. siniftayiz, software engineering dersindeyiz aylardan Nisan. Herkes cimlere yayilmis, biz ise her Marmarali bilgisayar muhendisinin %90'nin cektigi makus yenilgiyle dersteyiz. Tabi projelerde cabasi. Bir yandan Computer Organization gibi baba bir ders, bir yandan Software Engineering gibi meslegimimizin temellerini atmaya calistigimiz cok onemli bir konu. Bir yandan automata theory. Dildiriyoruz yani.

Tabi Hocamiz bizlere test nedir, ne yapilir, black box(yazilim test ekibinin yaptigi) testing nedir, white box(yazilim gelistiricilerin yaptigi) nedir anlatmaya calisiyor bizde bir disari bir iceri bakarken kafamizdaki universite gencligi mimarisindeki frameworklerin "stack overflow" vermesini izliyorduk. Arada da exception yakalarsak eger odev raporunda ne olacak diye iste not almaya calisiyorduk. Tabi parasizlik da cabasi :) Tabi dikkatimizi ceken en onemli test stili ise "monkey test". Tuslara dandikce basiyor, fareyi saga sola hareket ettirip sistemi patlatmaya calismak.

Gel gelelim test nedir diye sor sor sor arastirirken insanin kendi kendine buldugu stil hep en guzelidir ya, JUnit nedir bilmezken, her sinifa bir main yazarak method testleri yapmaya calisiyorduk, ahanda sana test sistemi. Ogrenci isi(herzaman ise yarar, ozellikle swing uygulamalari yaziyorsaniz). Tabi cogu zamanda gecenin bir yarisi yazilmis bir kodu gelismis goz sistemimizle test ediyorduk, "Abi calisir bu!" stili. Tabi sonra patliyor projeler, testlerin hepsini gecen projelerimiz oyun kartlarindan kaleler gibi teker teker yikiliyorlardi-herzaman degil.

Ha bunu neden yaziyorum, Software Engineering dersinde yaptigimiz projenin kodlarini buldum gecen gun, IntelliJ projesi yapmisiz, actim hemen projeyi. O zamanlar intellij 4 vardi simdi 10 farketmedi hemen acti projeyi en son nerede kaldiysa. Yirmi tane sinif var, 15 tanesi calistirilabilir durumda, yani main methodlari bulunuyor. Iyi test yapmisiz anlayacaginiz(?)

Simdilerde JUnit, Mockito, Selenium derken testlerin icine bogulduk, bazen test yazmaktan isi dogru duzgun yapamiyoruz, sikayetimiz bu birer gelistirici olarak. Fakat gunun sonunda yapilan ise bakiyorsunuz, vay be, tum testler gecti Cruise Control sisteminde, simdi deploy edilebilir bir build var elimizde, verelim black box testleri yapsinlar diyor ve cikip eve gidiyorsunuz.