Budayakan Selalu Testing (Spec’ing) bukan Selalu Debugging ;-)

Posted: October 7, 2007 in RUBY

Siapa lagi teman-teman yang belum membudayakan testing (spec’ing) terlebih dahulu baru menulis code sesuai apa yang ditulis di testing tadi barusan? oops, rspec is only for behavioural? waduh, tak hanya itu, tetapi juga kalau lebih kreatif juga bisa hire seorang geek jahil kurang kerjaan (bahasa sindiran halus untuk menyebut seorang hacker) untuk jalankan aplikasi yang kita bikin dengan cara usil, sambil direkam di screencast, lalu buatlah rbehave maupun rspec sesuai kelakuan si geek usil tadi ;-) tentu akan jauh lebih worth it daripada debugging mati-matian (apalagi kalau di skrip tertentu tanpa dokumentasi dan ditaroh entah dimana dan dimana lagi).

Hey, ini ada railsenvy guys bikin bikin lagi nih buat yang belum biasakan atau jatuh cinta terhadap testing. Ini linknya.

railsenvy movie

Rapi 1:

subjek judulnya pinginnya gini tapi pasti kepanjangan – debugging – monkey patching – hacking – meraba-raba dalam gelap – debugging – failed – error – debugging – error – gak jadi deh

Rapi 2:

hei, railsenvy ternyata juga menyediakan podcast, jadi gak cuma yang di rails pusat saja.

Rapi 3:

Yup. Jangan lupa juga tonton film nya bagus banget disini

Rapi 4:

ini ada link belajar rspec bagus banget disini tipsnya dan ini untuk belajar mock_model di rspec kalau yang sebelum2nya itu artikelnya basic-basic yang intuitif saja kalau sudah biasa dengan ruby unit testing. Selamat bersenang-senang, teman! :-D

Rapi 5:

ini versi panjangnya (have a nice weekend dan selamat hari raya) kalo udah bicara soal testing, mike emang jagonya :-) dari sana maka kita akan menyelam lebih dalam di kajian-kajian ini semua

btw hari gini ada lho feedback dari someone bilang kang, what the hell is testing? waduh jawaban sederhananya karna si penanya memang gak niat programming (lebih suka networking) saya bilang aja jangan sentuh itu. kalau yang nanya emang suka programming, maka saya senada dengan kata mike, yaitu 90% testing/spec’ing itu adalah disiplin. jadi ketika kita mau coding nih ya, kita dituntut untuk menuntut diri sendiri untuk menjadi pemimpin atau manajer yang baik agar melakukan spesifikasi dan requirement yang jelas terharap project yang akan ditulis codingnya. jadi tulis dulu rspec nya, baru codingnya. sebetulnya di level yang sangat sangat sangat manusiawi, sebelum rspec adalah rbehave dulu. sehingga tatkala ada meeting dengan clients maupun team direktur kreativiti gak akan kesulitan nerangin apa-apa dalam bahasa teknis, cukup kasih aja desain business prosesnya dan dia (si pemilik uang/project/team) pun mengangguk-angguk senang ;-)

Rapi 6:

howaa ada film rbehave !!!!

wget -nc -b http://evang.eli.st/story_runner_top_to_bottom.mov

baru bangun, donlotnya tadi malem tuh. asiik ada pilem baru.

Rapi 7:

hehe keren banget nih si pat! ;-) ni gw sambil nonton nih. tu file pilem jadi gede gara-gara dia becanda tapi asik abis gitu deh, trus ada siul-siul bawaan default karakter si pat :-D

Rapi 8:

Oh My God! keren abis! udah abis gw nonton filmnya pat! Hoooh, Wooohooo! ini film emang bener-bener BDD trus XP abis! haha that’s yet another reason why y’all should love ruby community! buku tentang BDD belum keluar, hweh gak tanggung2 bikin orang males + ngantuk baca-baca buku, bikin aja videonya. mantap! video tsb gw highly recommend trus dapet bintang enam dan must see buat yang serius dan pengen bener2 kuasai BDD mulai dari story alias rbehave, trus baru coding tentu beriringan setelah di spec (testing) dulu, jujur ada yg bilang kalo dilihat dari gaya presentasi Pat dia keknya kurang sreg, ada banyak noise, kayak you know, ehm ehm, lemme do it quick, dst. tapi f*ck it, Pat’s already good! I know it’s hard to mixture to speak clearly in a human language while doing coding in a computer (ruby) language.

Rapi 9:

oh ada yang kelupaan lagi satu hal dari posting comment terakhir barusan, yaitu memang satu lagi kekurangan dari video tersebut, yaitu adalah pengalaman atau learning by doing dari kita sendiri sebagai ruby ninja (oops), satu lagi yaitu bagaimana berinteraksi dengan orang-orang non-techie tentu gak dijelaskan di video tsb, karena semua itu pasti bakal bisa didapat dari pengalaman langsung ketika bekerja dengan company yang serius dan bagus.

orang-orang non-techie yang gw maksud termasuk seperti CEO, product owner, creative director, investor, bayangkan saja orang-orang ruby ini bisa berbicara dengan sangat user-friendly / ramah terhadap orang-orang bisnis, orang-orang manajemen, orang-orang non-teknis, dengan dijembatani metodologi yang tepat ini. yakni BDD, ya, lebih tepatnya pakai rbehave ini. Library ini masih panas, dulu waktu awal gw sentuh barusan banget 2 minggu dibikin, mulai dari rbehave di rubyforge, trus sampe saking senengnya dan very welcome nya komunitas rspec sampe-sampe disatukan ke library rspec, jadi kalo script/generate rspec pasti udah langsung di dapatkan aja itu langsung story trus ada helper bla bla bla (oops disini kalo temen-temen pengen menjarah dan mengobrak-abrik serta merampok isi otak gw berikut caci-maki dan hal-hal tak pantas lainnya, pasti akan kalian temukan kalo gw suka banget pake rspec yang dari trunk! hehe maap)

Rapi 10:

BTW pada udah join di peepcode rails gak? gile tuh, si geofrey (hope i typed his name very well and not wrong) seksi banget ngedemonstrasikan coding di ruby bagimana-bagimananya, bisa kita liat sih yang versi gratisnya. gak nahaaaaaan….

Rapi 11:

ini buat yang masih bingung-bingung tentang mock di rspec / ruby selamat rtfm

Rapi 12:

hmm lagi males create posting baru, jadi saya taroh di comment aja terus -_-

siapa lagi teman-teman yang sedang menjelajah berpetualang di wahana BDD Ruby ? oh well , ini saya ketemu lagi http://www.vaporbase.com/postings/Beginners_Guide_to_Rspec_on_Story_Runner dari milis rspec sih, trus dari situ saya nyasar ke plugin fixture_replacement yang idenya padahal jadul banget tapi it’s working :-D cukup taroh di mixin dan include, selesai perkara, thanks to Ruby Mixin.

http://thmadb.com/public_svn/plugins/fixture_replacement

buat yang gak sabaran pengen makan plugin source codenya ini dia:

http://thmadb.com/public_svn/plugins/fixture_replacement/

jadi pattern factory gitu

http://dcmanges.com/blog/38

trus pas malem malem gini sebelum tidur ada lagi tuh nongol film2 tentang rspec

http://smartic.us/2007/10/16/smarticast-5-rspec-101

atau link ngedonlot langsungnya di

http://smartic.us/assets/2007/10/16/005_rspec_101.mov

selamat ber BDD ria! ;-)

eiiit iya ya hampir lupa, itu si pat maddox ada bikin bikin lagi tuh integration testing ala BDD dgn rspec di

http://evang.eli.st/blog/2007/9/1/user-stories-with-rspec-s-story-runner

jadi lengkap sudah kebahagiaan BDD Ruby!

Jadi tinggal benchmarking dari segala segi (dari MVC macem2, dari server, dari low levelnya). oh well, anyway…

rapi 13:

film 005_rspec_101.mov nya uda nonton, biasa aja sih, yaa kalo belum tau mending nonton ini keknya ketimbang baca tutorialnya (buat yg suka bosen baca tutorial). ini seputar rspec gitu deh.

rapi 14:

wget http://blog.davidchelimsky.net/files/BDDWithRspec.RubyConf.2007.pdf

bagus banget buat yang belajar rspec bareng saya :-)

rapi 15:

wget http://blog.davidchelimsky.net/files/BDDWithRspec.RubyConf.2007.pdf

bagus banget buat yang belajar rspec bareng saya :-)

rapi 16:

http://blog.daveastels.com/files/BDD_Intro.pdf

hmm.. masih kekurangan tentang perbedaan kapan pakai should_receive kapan pakai stub nih… mungkin perlu liat liat dari banyak sudut pandang yang berbeda supaya bisa tambah nyantol di kepala biar praktek BDD nya lancar + fasih

rapi 17:

disini ada tutorial bagus tentang kapan menggunakan stub! kapan menggunakan should_receive. kalau stub digunakan untuk metode yang walau tidak dipanggil tapi diem-diem aja. sementara kalau should_receive digunakan untuk metode yang kalau nggak dipanggil dia bakal make noise

http://blog.davidchelimsky.net/articles/2006/11/09/tutorial-rspec-stubs-and-mocks

rapi 18:

http://metaclass.org/2006/12/22/making-a-mockery-of-activerecord

rapi 19:

http://www.jmock.org/yoga.html

rapi 20:

ni gaya lama: http://blog.floehopper.org/articles/2006/12/23/stub-queries-and-expect-commands

rapi 21:

belum abis/sempet bacanya bagus nih dari link pat maddox

http://c2.com/xp/DoTheSimplestThingThatCouldPossiblyWork.html

rapi 22:

surat terbuka jeng jeng:

http://clarkware.com/cgi/blosxom/2007/09/08

kelanjutan surat:

http://clarkware.com/cgi/blosxom/2007/10/07#TestingControllersFollowup

rapi 23:

pat maddox (specing controller itu gampang

http://evang.eli.st/blog/2007/9/15/easy-controller-tests-and-expressing-intent-through-expectations

Comments
  1. Putra says:

    Thanks untuk artikelnya..

  2. […] Budayakan Selalu Testing (Spec’ing) bukan Selalu Debugging […]

  3. adit says:

    autotest dari zentest itu MUAAAANTAB, ya ini tool lumayan bagi yg suka TDD tapi kebalik kayak sayah, code dulu maka test kemudian …….

    arrrgh kebiasaan jelek yg sulit dihapus hiks ,

tinggalkan feedback konstruktif atau lebih baik diam

Please log in using one of these methods to post your comment:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s