星期四, 3月 01, 2007

stupidity driven testing

"""I don’t do test driven development. I do stupidity driven testing... I wait until I do something stupid, and then write tests to avoid doing it again.

— Titus Brown"""


Python有很多testing的工具,
包括內建的unittest/doctest,
3rd party的py.test/nose,
web application也可用twill,Selenium等特殊工具.
django目前的svn也有內建testing工具.
所以其實工具並不是什麼大問題.反而真正的重點是:

何時要testing? 要testing到什麼程度?

我在kalug有一次介紹python模組的時候有講過py.test,
曾聽過snowwolf在kalug介紹GUI testing(JUnit and Swing testing)
我也用過很pythonic的doctest,nose, 也用過django的testing模組(with unittest),
但是儘管對於工具本身並不陌生,
卻對於所謂的test-driven development這個概念還是覺得過於理想化,
因為能做的testing永遠覺得不夠, 到底一個項目要testing多少個Case?
到底要testing到何種程度才算完整才算足夠?
如果什麼都測我要什麼時候才開始真的寫code跟除錯?

Titus Brown在pycon2007的一語驚醒我這個夢中人:

古語有云: 知錯能改 善莫大焉!

一旦你coding時犯了一次錯,就把他寫成一個testing case!

testing不是要讓你不犯錯, 而是要避免你一錯再錯!

沒有留言: