這可能是在我開始寫程式後,我讀過最令人驚訝、最震撼、最令人安心的句子。Kent Beck,令人敬重的權威,Extreme Programming、TDD 的創造者,寫過好幾本參考書,主要都是由著名的出版商 Addison-Wesley 出版,針對下面的問題回答了,「單元測試要寫得多深入」。
我自己傾向 JEST (Just Enough System Testing),源自 Jesa Yourden 的 JESA spirit (Just Enough System Analysis),一本很棒的書。
當我開始使用 BDD 時,這個問題越來愈重要,因為我可以測試的更快,但常忘記某些角落,通常在典型的 TDD 都會測到的。這是 Beck 引人深思的回答。
我是被請來寫程式,而不是測試。所以我的原則是能測試的越少越好,只要可以達到某個程度對程式的信心就可以了,我估計這個「程度」比產業標準來的高,也可能只是我的自我感覺良好。通常如果我不犯錯(像是使用錯的變數),我不會做測試。我傾向測試錯誤,所以當處理特別複雜的邏輯時我會非常小心。當跟一個團隊一起寫程式時,我會改變策略,我會測試那些團隊一起合作且很有可能會出錯的程式。
不同的人會有不同的測試哲學,對我來說還滿合理的,因為對於要怎麼寫測試的了解還不是很成熟。十年或二十年後可能會有更多的理論在描述什麼需要測試,什麼不用測試,怎麼區別,這是需要實驗的。
當這麼突破性的言論由如此....的人口中說出,很值得人深思。
確實,這個回答到現在五年了,測試的方法有很大的進步,但這仍然是一個很棒的觀點。
原始 StackOverflow 的問題 : http://stackoverflow.com/questions/153234/how-deep-are-your-unit-tests/153565#153565
原文:Kent Beck : “I get paid for code that works, not for tests”