EZTABLE IDEAS 是 EZTABLE 成員揮灑熱情和大家分享專業及創意的網誌。 EZTABLE 讓消費者 24 小時都可以在網路訂位全台灣最優質的餐廳,同時提供餐廳經營者 e 化的訂位管理系統 (雲端、iPad、智慧型手機)

Engineering:為什麼Startup更需要自動化測試

四月 08 2011 Published by under Engineering, EZ心情

Test Matters

今天是on board的第五天,這幾天除了完成訂位牆(Reservation Wall)外,還用PHPUnit寫了一些測試。有人問我,「Startup開發新功能的時間都不夠了,怎麼還把寶貴的時間拿來寫測試呢?」

正因為是Startup,所以更該寫自動化測試,因為

1. 我們極快地更新產品

以EZTABLE的網站為例,我們一個禮拜至少會出2-3個release,其中最常碰到的問題是,加入新功能和修正舊bug的同時也產生了新的bug,自動化測試讓工程師們可以在不弄壞原有功能的狀況下開發新功能,這點在功能常常被修改的狀況下更加重要。

2. 我們沒有時間測試

開發新功能的時間都不夠了,怎麼還把寶貴的時間拿來作測試呢?

相信大家一定都有寫了一些很酷的的功能,丟到伺服器上跑,打開自己的瀏覽器點來點去看看是否運作正常的經驗,剛開始可能很好玩,但是如果每次release都要作一次一模一樣的事,大概沒有人能受得了。還好現在有Selenium和台灣之光vgodSikuli,麻煩的事還是交給機器作就好了。

3. 測試讓我們更快發現問題

還可以幫我們避開低級的錯誤,尤其是使用PHP之類的直譯式語言,不像C/Java會有compile error,好一點的IDE或許還會提醒syntax error,但是typo就完全沒有辦法了。只要有足夠的Code Coverage,至少在release前我們會把大多數的code都run過一遍。如果有使用Continuous Integration,甚至可以在每次commit code後都run一遍,出問題時Hudson Jenkins老爺爺就會好心的寄信來告訴你。

甚至有時在寫測試時,就會發現user scenario不正確了,可以更快反應,避免做出不合用的東西。

測試要如何作呢?

最快的方法就是直接參考你的Programming Language的Unit Test Library (JUnit, PHPUnit, Python unittest …等)的tutorial,照著sample作一遍就對了,或是slideshare上有看不完的slide。Enjoy programming!

York Tsai,

Software Architect @ EZTABLE

Related Posts Plugin for WordPress, Blogger...

No responses yet

發表迴響