測試先行的12個好處

pdce 9年前發布 | 6K 次閱讀 測試

J.Timothy King寫了一篇很不錯的文章:“先寫單元測試的12個好處”(Twelve Benefits of Writing Unit Tests First)。個人認為后半部分的文章有點多余。

然而,如果你還是不愿改掉你之前先寫代碼的老毛病,至今還認為個人習慣比先設計好的軟件還重要,那我也只能嘆息了。

J.Timothy King的文章寫的有點弄巧成拙了,雖然單元測試的主張是重要,但是他的普遍接受已經是過去幾年里軟件開發市場上的進步了!

軟件上的難題你是怎樣解決的?開始會先做什么?在解決難題的時候會常問自己要編寫怎樣的代碼才行,首先的重點是我要用什么樣的方法才能解決這個問題。

每個人的思維里總是喜歡有一個假設,假設一些不會發生或是不存在的事情,我們已經有了判斷的結果可還是要做上一些的事情,這種思維對于大部分人來也是難以改變的!

J.Timothy King羅列了12個方法,幫大家接受“測試先行”的觀念:

  • 1.測試可證明你的代碼是可以解決問題的
  • 2.一面寫單元測試,一面寫實現代碼,這樣感覺更有興趣
  • 3.單元測試也可以用于演示代碼
  • 4.會讓你在寫代碼之前做好計劃
  • 5.它降低了Bug修復的成本
  • 6.可以得到一個底層模塊的回歸測試工具
  • 7.可以在不改變現有功能的基礎上繼續改進你的設計
  • 8.可以用于展示開發的進度
  • 9.它真實的為程序員消除了工作上的很多障礙
  • 10.單元測試也可以讓你更好的設計
  • 11.單元測試比代碼審查的效果還要好
  • 12.它比直接寫代碼的效率更高

以上幾條如果你有幾條是認同的,那么至少有一半是正確的吧!對于同業都來說也是一個很大的進步吧。關于單元測試的重要性,個人是沒有別的不同意見。

我一直覺得單元測試的倡導者在個人立場上有點急于求成了,總是希望從業者們會在短時間內改變開發軟件的方式。特別是一些開發人員從來都沒有用過,如果他們還沒有打算把單元測試納為每個開發項目的標準方法,個人覺得他們還不具備這個條件。

過于推崇單元測試也有可以會適得其反!如果真的變成我所說的那樣,就真的是可惜了,關于軟件測試這個問題來說,個人是認為測總是比不測的好。其實他也就是一種正式的隨機測試,Fowler有段話說得非常好:

譯者注:在軟件測試中,除了根據測試樣例和測試說明書進行測試之外,還需要進行隨機測試,主要是根據測試者的經驗對軟件進行功能和性能方面的抽查。

譯者注:Martin Fowler是世界級軟件開發大師,在面向對象分析設計、UML、模式、XP和  重構等領域都有卓越貢獻,現為著名軟件開發咨詢公司 ThoughtWorks的首席科學家。他的  多部著作,如《分析模式》、《UML精粹》、《企業應用架構模式》、《重構:改善既有代  碼的設計》 等,都已經成為膾炙人口的經典。

總的來說還是望大家能夠從新認識單元測試的價值和重要性。希望能改掉之前編寫代碼的老毛病,若能改變一些,可能在以后的工作中會有突飛猛進的效果,當然,也不能夠急于求成,首先還是要先學會慢慢適應!

[原創翻譯英文CC Licensed]

來自:http://www.techug.com/twelve-benefits-of-writing-unit-tests-first

 本文由用戶 pdce 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!