Blues Brothers的歌曲“Everybody Need Somebody”中有這樣幾句話:請人們記住,無論你是誰,無論你靠什么生活,總有一些事情我們是一樣的……”pbielicki在他的博客中認為,對于軟件開發(fā)者而言,相同的一些事情應當包括“單元測試”。本文作者的某些觀點雖然有些化,但確實介紹了單元測試的優(yōu)越性,并借此來極力推薦單元測試給每個軟件工程師/程序員/開發(fā)者。
  不論是是不是敏捷開發(fā)的fans,也許你會說這種開發(fā)方法很傻、很不成熟,對軟件開發(fā)沒有任何幫助。也許你不會用也不喜歡Scrum,你會覺得XP很討厭,你這么說沒問題,因為這是個人口味的問題。但是忘掉敏捷吧,忘掉那些程序和編程方法??單元測試你的代碼吧!

  我剛回顧了另外一個很復雜的程序但是里面沒有任何的單元測試,而且沒有任何的說明文件。也許你讀得懂代碼也明白其意思,但我怎么知道它的功能是它應該具備的功能呢?我怎么知道開發(fā)他的人沒有寫出錯誤呢?

  單元測試不僅可以作為無錯編碼一種輔助手段在一次性的開發(fā)過程中使用,單元測試必須是可重復的,無論是在軟件修改,或是移植到新的運行環(huán)境的過程中。因此,所有的測試都必須在整個軟件系統的生命周期中進行維護。也許你會覺得這很麻煩,但雖然單元測試是由程序員自己來完成,終受益的也還是程序員自己?梢赃@樣理解,程序員有責任編寫功能代碼,同時也有責任為自己的代碼編寫單元測試。

  單元測試可以作為規(guī)格說明來工作,測試能夠以規(guī)格說明為基礎。代碼能夠針對它的規(guī)格說明,而不是針對自身進行測試。這樣的測試不僅能夠抓住編譯器的Bug,同時也能找到更多的編碼錯誤,甚至是一些規(guī)格說明中的錯誤,因為好的規(guī)格說明可以使測試的質量更高 。

  在這里,我概要地說一下單元測試的好處:

  1、單元測試記錄軟件系統內部和外部的結構;

  2、單元測試幫助你和其他開發(fā)者迅速地看到是否“升級”的