C/C++單元測試問答 軟件測試
為什么要進行單元測試?
●單元測試保證局部代碼的質量
●單元測試改良項目代碼的整體結構
●單元測試降低測試、維護升級的成本
●單元測試使開發過程適應頻繁變化的需求
●單元測試有助于提升程序員的能力
由誰進行測試?開發部門還是測試部門?
●應該由開發部門進行單元測試!
●由測試部門進行單元測試的問題:代價高,人手不足,耽誤了測試部門對其他測試的準備工作。
●由開發部門進行單元測試的問題:擔心影響開發進度,程序員不習慣做單元測試,測試自己編寫的代碼,難于保證測試的效果。
●無論由哪個部門做單元測試,都要面對一些問題,但開發部門所面對的問題可以借助工具來解決,而由測試部門進行單元測試,要么無法真正實施,要么代價昂貴。
由測試部門進行單元測試為什么成本昂貴?
●需多次重復理解程序
●反復溝通需要大量時間成本
●不利于發揮單元測試對代碼結構的約束機制
●耽誤測試部門對其他測試的準備工作
●即使測試部門人手充裕,僅僅從效益來考慮,也不應該由測試部門進行單元測試。如果測試部門本來就人力不充裕(進行單元測試的人員需具備編碼能力),勉強由 測試部門進行單元測試,結果往往是----沒有結果。
由開發部門進行單元測試能保證測試效果嗎?
程序員測試自己編寫的代碼,往往只考慮“正常狀況”,這當然會影響測試效果。但如果所用的單元測試工具能夠統計各種白盒覆蓋率,就能檢查測試效果。當然,只做到這一點還是不夠的,因為白盒覆蓋具有逾后逾難的特點,達到一定的覆蓋率后,覆蓋率的提升會很困難。如果測試工具功能足夠強大,能提供工具幫助用戶快速地設計測試用例,達到完整的白盒覆蓋,那么測試效果就能得到完全的保證。
實際上,如果沒有充分的統計數據,沒有達到足夠的測試完整性,那么由誰做單元測試,效果都不能保證。
邊編碼邊測試會影響編碼進度嗎?
傳統的單元測試是很費時費力的工作,主要時間消耗在于:編寫測試代碼、設計測試用例,如果開發工具能自動生成測試代碼,并且具有快速設計測試用例的功能,那么測試費時就很少;另一方面,如果測試工具還能提供數據,幫助程序員整理編程思路、快速發現錯誤,更高效地調試,那么就能大量提高開發效率,抵銷測試所消耗的時間,不但不會影響編碼進度,甚至加快編碼進度。
實施單元測試需要改變開發流程嗎?
邊開發邊測試,單元測試是編碼行為而不是測試行為,測試代碼看作是項目代碼的一部分,程序員提交產品代碼時也要提交測試代碼和測試報告,其他流程可以不作任何改變。
另一方面,在充分單元測試的基礎上,由于具有高質量的局部代碼,良好的整體代碼結構,保證了代碼的可擴展性和可復用性,同時,自動回歸測試支持對代碼的頻繁修改而不用擔心引入新的錯誤,因此,開發流程自然會變得敏捷,可以適應頻繁變化的需求,使系統分析、架構設計和后期測試的壓力減輕,自然而有效地改進了開發流程。
單元測試測試哪些代碼?
文章來源于領測軟件測試網 http://www.kjueaiud.com/