qileilove

          blog已經轉移至github,大家請訪問 http://qaseven.github.io/

          單元測試的四大具體效益

           單元測試是高效的開發過程質量控制機制,幫助企業保證產品質量、降低成本、提高生產率、縮短開發周期、贏得市場先機,提升競爭力。

            1、保證代碼質量

            僅依靠系統測試會 存在大量未覆蓋的“死角”,單元測試可以對各個代碼單元徹底測試,保證代碼質量。針對一個函數,單元測試可以覆蓋輸入數據的所有分類,做到不管輸入什么數 據,函數本身的處理都符合設計,從而全面檢測其功能邏輯,消滅可能隱藏的大量細小錯誤,這種測試效果是其他測試難于做到的。輸入數據的“分類”,稱為“等 價類”,即測試效果上的等價,同類數據中只需要測試一個,就相當于測試了同類中的所有數據。這種設計用例的方法就叫做“等價類法”。

            2、降低排錯成本

            排錯包括“驗證是否有錯”、“找出錯在哪里”、“修正錯誤”三個工作。單元測試的目標最小,涉及代碼最少,發現錯誤后排錯最容易。Bug發 現得越晚,修改所需費用就越高,因此應該盡早查找和修改Bug,單元測試提供了盡早抓住Bug的最好機會。相比后續階段的測試,單元測試的創建更簡單,維 護更容易,并且可以更方便地進行重復。從全程費用來考慮,相比復雜且曠日持久的集成測試、系統測試,單元測試所需的費用是很低的。下圖摘 自<<實用軟件度量>>(Capers Jones, McGraw-Hill 1991),它列出了準備測試、執行測試、和修改缺陷所花費的時間(以一個功能點為基準),這些數據顯示單元測試的成本效率大約是集成測試的兩倍,系統測 試的三倍。

            3、自動回歸

             自動回歸測試可以避免小量修改導致大量系統級調試與測試。“回歸”是指代碼修改后回復到原來的正確狀態。例如,一個函數本來工作正常,后來發現少了個功 能點,修改代碼后,原有功能可能被破壞,回歸測試就是檢驗原來的功能是否仍然正常。代碼之間具有復雜的依賴關系,一個函數的修改,可能引起其他代碼產生錯 誤,回歸測試不僅針對被修改的代碼單元,也針對其他相關代碼。單元測試目標最小、結果明確、執行快捷,最容易實現自動化回歸測試。

            單元測試將代碼功能“定格”,代碼修改后可以自動檢查是否引入新的錯誤,避免陷入“系統測試->修改->引入新的錯誤->新一輪系統測試->修改->引入新的錯誤”的怪圈。自動回歸也使開發過程適應頻繁變更的需求,使開發過程趨于“敏捷”。

            4、促進開發

             如果邊開發邊測試,那么,單元測試的結果可以完整地描述程序的行為,如下圖。程序行為就是在什么輸入下,會執行哪些代碼,會產生什么輸出。寫代碼時能隨 時察看程序行為,就比較容易想明白思路對不對,接下來應該怎么寫。剛寫的代碼有沒有錯誤也隨時可以發現,不但效率高得多,也沒那么累。

            只要做了單元測試,反映程序行為的數據就一定會存在,只要使用工具將這些數據捕獲并顯示出來,就可以一邊編程一邊察看程序行為。

             編程時,程序員一定需要考慮清楚代碼的功能,包括會有哪些輸入,如何處理,應該產生什么結果,列出來就是測試數據了,因此,并不需要多少額外的時間來設 計測試數據,同時編寫效率會顯著提高,并且基本上不需要調試。調試是最花時間的。如果結合自動化的測試工具,讓設計測試數據以外的工作(如編寫測試代碼、 隔離測試任務、底層模擬、統計覆蓋率等等)由工具完成,那么,在開發的過程中進行單元測試,開發和測試同步完成,所用的時間一般比傳統方式更短,代碼單元 功能越復雜,節約的時間越多。

            我們初學C語言時,通常會編寫一些小算法,并通過控制臺輸出結果進行測試。這 是一種高效的編程方式,因為第一時間可以了解代碼是否工作正常,隨時調整思路。但在實際項目中,這種方式不再現實,正在編寫的代碼單元很難單獨運行并觀察 其行為。單元測試可以幫助我們重返“小算法編程”,讓代碼單元隨時獨立運行,減少麻煩的調試,縮短編碼周期。

          posted on 2012-11-29 11:14 順其自然EVO 閱讀(166) 評論(0)  編輯  收藏


          只有注冊用戶登錄后才能發表評論。


          網站導航:
           
          <2012年11月>
          28293031123
          45678910
          11121314151617
          18192021222324
          2526272829301
          2345678

          導航

          統計

          常用鏈接

          留言簿(55)

          隨筆分類

          隨筆檔案

          文章分類

          文章檔案

          搜索

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 陆丰市| 哈尔滨市| 西充县| 秦皇岛市| 稷山县| 阿拉尔市| 宜黄县| 藁城市| 岢岚县| 邵阳县| 楚雄市| 大荔县| 碌曲县| 新昌县| 黄平县| 万源市| 尖扎县| 尼木县| 隆子县| 邵阳市| 太康县| 隆昌县| 七台河市| 新巴尔虎右旗| 根河市| 清新县| 莱州市| 漾濞| 开平市| 灯塔市| 大足县| 锡林浩特市| 彩票| 文登市| 共和县| 娱乐| 广昌县| 从化市| 吴堡县| 且末县| 乳山市|