• <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>
    • 軟件測試技術
    • 軟件測試博客
    • 軟件測試視頻
    • 開源軟件測試技術
    • 軟件測試論壇
    • 軟件測試沙龍
    • 軟件測試資料下載
    • 軟件測試雜志
    • 軟件測試人才招聘
      暫時沒有公告

    字號: | 推薦給好友 上一篇 | 下一篇

    我理解的單元測試

    發布: 2009-4-09 12:31 | 作者: 不詳 | 來源: 測試時代采編 | 查看: 24次 | 進入軟件測試論壇討論

    領測軟件測試網  單元測試是整個測試流程中最基礎的部分,它們要求程序員盡可能早地發現問題,并給予控制,另外如果集成測試出現問題,它可以幫助診斷。這樣就為在軟件開發流程中建立高效的事件反應機制打下了堅實基礎。

    為什么需要單元測試

            在開發軟件的過程中,用戶需要實際運行所編寫的代碼以確保程序的正確性。當軟件變得越來越大,再去添加新的功能或做一些新的改動時,就很容易帶來新的問題,甚至會使程序無法正常運行。然而要手動的運行代碼,測試代碼的可行性也是非?菰镆约胺浅:馁M時間的事情。

            為了減少這種手動測試,可以通過創建單元測試來自動完成測試的工作。當修改代碼或者添加新功能后,可以執行單元測試來保證代碼運行無誤。所有測試工作都是由單元測試自動完成的,開發人員所要做的就是停下來喝杯茶,看看程序的執行狀態。
            使用單元測試的另一個理由是實現測試驅動的開發,這在當前是比較流行的開發方式。測試驅動的開發嘗試首先寫出單元測試,然后完成實際的代碼。通過單元測試來提供類的定義,當實際開始編寫代碼時,用戶僅僅需要做的就是具體類的實現,只要單元測試運行通過,代碼的實現也將告一段落了。寫單元測試的同時,也在同時在做項目的設計,當項目結束后,單元測試還將是不錯的文檔,何樂而不為呢?

    自信編碼

            人的記憶是短暫的,但代碼的修改是無限的,怎樣讓無限的修改不會因為記憶的短暫而帶來無窮的煩惱呢?這是非常矛盾的事情,單元測試能夠一定程序上解決這個問題。

            也許所有的程序員都遇到過這樣的問題,當要修改很久以前的代碼或他人編寫的代碼時,總是會很猶豫,因為他們不清楚所做的修改會不會引起其它的問題,只能當遍歷了所有的代碼后才敢動手。這是非常正常的,但也因此浪費了很多的時間,通過單元測試能夠一定程度上增強用戶的自信心,因為單元測試的前提假設就是,如果通過了所有的測試,代碼就是可行的。

    JUnit測試框架

            在Java語言中,可以通過JUnit框架進行單元測試,JUnit是由“Erich Gamma”和“Kent Beck”創建的,他們也是在“設計模式”和“極限編程”領域最偉大的作者之一。

            單元測試的實現是很簡單的,可以認為它只是判斷在某一個時刻,程序運行的值和預期的值是否一致,但在實際的應用的時候是很靈活的,在此介紹JUnit中的一些斷言以及JUnit測試框架的使用,使讀者能夠快速的進入單元測試的領域,更快的進行開發。

    延伸閱讀

    文章來源于領測軟件測試網 http://www.kjueaiud.com/

    TAG: 單元


    關于領測軟件測試網 | 領測軟件測試網合作伙伴 | 廣告服務 | 投稿指南 | 聯系我們 | 網站地圖 | 友情鏈接
    版權所有(C) 2003-2010 TestAge(領測軟件測試網)|領測國際科技(北京)有限公司|軟件測試工程師培訓網 All Rights Reserved
    北京市海淀區中關村南大街9號北京理工科技大廈1402室 京ICP備2023014753號-2
    技術支持和業務聯系:info@testage.com.cn 電話:010-51297073

    軟件測試 | 領測國際ISTQBISTQB官網TMMiTMMi認證國際軟件測試工程師認證領測軟件測試網

    老湿亚洲永久精品ww47香蕉图片_日韩欧美中文字幕北美法律_国产AV永久无码天堂影院_久久婷婷综合色丁香五月

  • <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>