不論是是不是敏捷開發的fans,也許你會說這種開發方法很傻、很不成熟,對軟件開發沒有任何幫助。也許你不會用也不喜歡Scrum,你會覺得XP很討厭,你這么說沒問題,因為這是個人口味的問題。但是忘掉敏捷吧,忘掉那些程序和編程方法——單元測試你的代碼吧!
我剛回顧了另外一個很復雜的程序但是里面沒有任何的單元測試,而且沒有任何的說明文件。也許你讀得懂代碼也明白其意思,但我怎么知道它的功能就是它應該具備的功能呢?我怎么知道開發他的人沒有寫出錯誤呢?
單元測試不僅可以作為無錯編碼一種輔助手段在一次性的開發過程中使用,單元測試必須是可重復的,無論是在軟件修改,或是移植到新的運行環境的過程中。因此,所有的測試都必須在整個軟件系統的生命周期中進行維護。也許你會覺得這很麻煩,但雖然單元測試是由程序員自己來完成,最終受益的也還是程序員自己?梢赃@樣理解,程序員有責任編寫功能代碼,同時也就有責任為自己的代碼編寫單元測試。
單元測試可以作為規格說明來工作,測試能夠以規格說明為基礎。代碼就能夠針對它的規格說明,而不是針對自身進行測試。這樣的測試不僅能夠抓住編譯器的Bug,同時也能找到更多的編碼錯誤,甚至是一些規格說明中的錯誤,因為好的規格說明可以使測試的質量更高 。
在這里,我概要地說一下單元測試的好處:
1,單元測試記錄軟件系統內部和外部的結構;
2,單元測試幫助你和其他開發者迅速地看到是否“升級”的代碼打亂了已有的代碼;
3,單元測試是你的軟件原理bug—所有的問題都會在編寫測試時解決掉;
4,單元測試結合“code coverage”會讓提升你軟件的質量;
5,單元測試可以在開發過程中顯著提高團隊信心——如果所有的測試通過了,則意味著所有的特性順利運行,每個人都工作得很出色
6,單元測試提高了效率——你不再需要惱人的手工測試,而且代碼變動后,你只需要開啟單元測試并且查看紅/綠欄即可。
7,還有很重要的一點是:單元測試可以作為DOCUMENTATION(無論是輔助的還是主要的)
所以我希望每個人都開始使用單元測試,我甚至認為單元測試是現代軟件開發人員的必備技能。當然,你做單元測試并不意味著你就是一個優秀的開發人員,但如果你不用單元測試,那么你一定不是。
延伸閱讀
文章來源于領測軟件測試網 http://www.kjueaiud.com/