Eclipse中使用Junit插件進行單元測試 單元測試工具
測試是軟件開發的重要環節之一。按照軟件開發的過程測試可分為:單元測試、集成測試、系統測試、域測試等。我們這里將討論面向程序員的單元測試。
一、什么是單元測試
單元測試指的是使用編寫好的測試代碼來檢驗需要被測試的代碼。我們通常給要測試的方法傳入一些參數值,然后檢測方法的返回值跟預期是否一致。一般情 況下我們會傳入一些容易引發錯誤的數據,例如給計算除法的方法傳入除數0,并且測試的參數也會傳入許多組,這樣才能保證測試效果。
二、為什么要使用單元測試
注:如果你時間不多請直接看后面的粗體
每當別人提起“單元測試”都會讓william的內心難受上好長一陣子,往往他的好心情也會一掃而光。這又是為什么呢?
5年前William的軟件公司很順利的拿到美國ADC電訊公司 (ADC Telecommunications )的一單軟件開發的生意,總價值1500萬美元,利潤在32%上下。面對著幾百萬的收益,William興奮地對自己的妻子說:“Catherine,不 久我們的銀行戶頭上就會多出幾百萬美元。做完這筆生意,你老爸再也不會抱怨他的女兒嫁給了一個貧困街區出生并且沒受過高等教育的鄉巴佬。還真想不到你老爸 再見到我的時候會是什么樣的表情……”。
作為同William生活了12年的Catherine很清楚的知道,William這個人實際的本事沒多少,然而大話卻說了不少。當初她正因為輕 信了William的許諾才嫁給他,然而當年的承諾從來就沒兌現過。雖說William這個人沒什么本事,可是他卻有著令別人羨慕的“狗屎運”。
高中畢業之后,他參了軍,在越南戰爭中他所在的小隊中了越南人的埋伏,卻唯獨William一個人活著回來。(William牢記美軍士兵手冊其中 一條訓令:永遠不要和比你作戰勇敢的戰友躲在同一個散兵坑,因為他會給你們招來致命炮火打擊。)William回來后向自己的上司編造了謊言,因而被提升 為中尉,授予紫心勛章。
退役后有幸運結識底特律市長的千金——Catherine,并且讓這位市長千金以身相許。William的岳父雖說從來就沒看上過這位貧窮、沒教養 還時?淇淦湔劦呐,可最終還是出資給William創辦公司。William的運氣不得不讓人羨慕,可是這回軟件開發他還會這么幸運么?
翌日,William一大早就來到公司,他 件事情就是要和項目經理談話。
“嘿!John。我們的項目要立即投入人力著手開發,別讓那些程序員慢吞吞的!盬illiam認真的說。
“先生,我們的項目還不能立即開發,因為我們還沒有做項目需求!表椖拷浝鞪ohn提醒著。
William不耐煩的說:“John,先別管需求那東西,我要最快看到產品。還有別搞那些耽誤時間的單元測試,我希望你們以最快速拿出產品!
John很無奈的接受了William的指示。
William真不愧是一個沒大腦的人,為了能縮短開發時間,節省開發成本,從而達到提高利潤率的目的,不惜進行需求分析、單元測試。最終的結果完全符合預料,項目失敗了,William失去了400萬美元的項目抵押金和300萬美元的開發成本。
從William的例子中看到,缺少單元測試的項目很難達保證程序質量。我們編寫代碼時,一定會反復調試保證它能夠編譯通過。如果 是編譯沒有通過的代碼,沒有任何人會愿意交付給自己的老板。但代碼通過編譯,只是說明了它的語法正確;我們卻無法保證它的語義也一定正確,沒有任何人可以 輕易承諾這段代碼的行為一定是正確的。幸運的是單元測試會為我們的承諾做保證。編寫單元測試就是用來驗證這段代碼的行為是否與我們期望的一致。有了單元測 試,我們可以自信的交付自己的代碼,而沒有任何的后顧之憂。
三、單元測試的優點
1、單元測試是一種驗證行為
當針對一個Java類的測試用例寫好之后,日后再向這個Java類添加新的方法并不影響存在的測試用例,由于測試用例是對以前的方法測試,因此不會映像到測試用例,我們只需向測試用例加入對新方法的測試即可。
2、從旁觀者的角度編寫測試用例
程序設計者講UML類圖畫好之后,程序就有了類結構,這時對這個類中的方法編寫測試用例,然后程序員開始講類的具體內容實現。寫好之后讓測試用例測試。編寫的順序是先寫測試用例再寫程序具體代碼,單元測試可以保證測試用例絕對客觀、公正。因為他是在具體程序之前編寫的。
3、代碼可以反復被測試用例測試
四、你的 個測試用例
文章來源于領測軟件測試網 http://www.kjueaiud.com/