扒开腿挺进岳湿润的花苞视频|将军边走边挺进她H树林|挺进朋友人妻张婉莹身体|岳脱得精光让我挺进去视频|第一次挺进莹莹的身体里视频|脱岳裙子从后面挺进去视频

新疆軟件開發(fā)

本站首頁 軟件開發(fā) 成功案例 公司新聞 公司簡介 客服中心 軟件技術 網(wǎng)站建設
  您現(xiàn)在的位置: 新疆二域軟件開發(fā)公司 >> 開發(fā)語言 >> 文章正文

軟件測試技術:一個好的單元測試標準

             單元測試是保證代碼質(zhì)量最基本的手段,但是現(xiàn)在的開發(fā)中卻對單元測試不夠重視。有的人認為編譯器就是我們的代碼質(zhì)量保證,還有的人認為正確的調(diào)試就是測試,還有的人認為使用這個軟件就是測試,這樣的認識都是存在問題的。下面講講怎么樣的單元測試才是好的單元測試。
單元測試應該準確、快速地保證程序基本模塊的正確性。下面是驗證單元測試好壞的一系列標準:
     一、  單元測試應該在最低的功能/參數(shù)上驗證程序的正確性;
     單元測試應該測試程序中最基本的單元——如C#中的類,在此基礎上,可以測試一些系統(tǒng)中最基本的功能點(這些功能點由幾個基本類組成),從面向?qū)ο蟮脑O計原理出發(fā),系統(tǒng)中最基本的功能點也應該由一個類及其方法來表現(xiàn)。單元測試要測試API中的每一個方法及每一個參數(shù)。
     二、 單元測試必須由最熟悉代碼的人(程序的作者)來寫;
代碼的作者最了解代碼的目的、特點和實現(xiàn)的局限性。所以沒有比作者更合適的人選。

就算作者沒有時間寫測試代碼,也應該對此單元測試進行負責。
     三、 單元測試過后,機器狀態(tài)保持不變;
如果單元測試創(chuàng)建了臨時的文件或者目錄,在數(shù)據(jù)庫中創(chuàng)建或修改了記錄,都要刪除臨時數(shù)據(jù)。保證單元測試可以重復快速進行;
     四、  單元測試要快(一個測試運行時間是幾秒鐘,而不是幾分鐘);
快,才能保證效率。一個軟件中有幾十個基本模塊(類),每個模塊又有幾個方法,基本上要求一個類的測試在幾秒鐘內(nèi)完成。如果軟件有相互獨立的幾個層次,那么在測試組中進行分類,分類進行測試。比如我只修改了“用戶界面”的代碼,我只需要運行“用戶界面”的單元測試。
     五、  單元測試應該產(chǎn)生可重復,一致的結(jié)果;
如果單元測試的結(jié)果是錯的,那一定是程序出了問題,而且這個錯誤一定是可以重復的。一般情況下不要使用隨機數(shù)以增加測試的真實性。
    六、  獨立性,單元測試的運行/通過/失敗不依賴于別的測試,可以人為構(gòu)造數(shù)據(jù)以保持單元測試的獨立性;
程序中的各個模塊都是相互依賴的,一般情況下,單元測試中的模塊可以直接引用其它的模塊,并期待其它的模塊能返回正確的結(jié)果。如果其它模塊很不穩(wěn)定、未完成,或者運行比較費時,這是可以人為地構(gòu)造數(shù)據(jù)以保證這個單元測試的獨立性。
     七、  單元測試應該覆蓋所有的代碼路徑,包括錯誤處理路徑,為了保證單元測試的代碼覆蓋率,單元測試必須測試公開的和私有的函數(shù)/方法;
如果你的模塊中某個錯誤處理路徑很難到達,那你要想想是否可以把這個錯誤處理拿掉。要注意一點:100%的代碼覆蓋率并不等同于100%的正確性。
     八、  單元測試應該集成到自動測試的框架中;
一個重要的措施是要把測試自動化,這樣每個人都能很容易地運行單元測試。團隊一般在每日構(gòu)建(在敏捷開發(fā)中要求每天都能夠提供一個可以運行的版本進行構(gòu)建)中運行單元測試,這樣每個單元測試的錯誤就能及時發(fā)現(xiàn)并得到修改。
     九、  單元測試必須和產(chǎn)品代碼一起保存和維護。

單元測試必須和代碼一起進行版本維護。如果不是這樣,過一陣代碼和單元測試就會出現(xiàn)不一致,而且所有代碼的作者要花時間來確認那些是程序出現(xiàn)的錯誤,那些是由于單元測試更新滯后造成的錯誤。這樣就失去了單元測試的意義,同時又給大家增加了負擔。如此折騰多次以后,大家就會覺得維護單元測試是一件很費時費力的事。

作者:未知 | 文章來源:未知 | 更新時間:2008-1-15 16:39:34

  • 上一篇文章:

  • 下一篇文章:

  • 相關文章:
    怎樣在SharpDevelop2.2環(huán)境中進行程序單元測試
    軟件技術
    · 開發(fā)語言
    · Java技術
    · .Net技術
    · 數(shù)據(jù)庫開發(fā)
    最新文章  
    ·搜集整理的asp.net的驗證方
    ·各種FOR循環(huán)結(jié)構(gòu)的整理
    ·軟件項目開發(fā)中應該考慮那
    ·搜集整理的javascript sel
    ·軟件開發(fā)中項目經(jīng)理有那些
    ·學習如何在Lambda表達式進
    ·C++基礎知識:結(jié)構(gòu)體數(shù)據(jù)的
    ·C#實現(xiàn)短信發(fā)送程序的例子
    ·sun最近修補了一部分java的
    ·rss定制的另外一種實現(xiàn)方式
    ·delphi實現(xiàn)利用arp欺騙來實
    ·基礎學習:基于WF的流程框
    ·網(wǎng)絡編程中怎樣得知一次數(shù)
    ·如何逆序輸出單鏈表?
    ·軟件開發(fā)過程中的性能設計
    關于我們 | 軟件開發(fā) | 下載試用 | 客服中心 | 聯(lián)系我們 | 友情鏈接 | 網(wǎng)站地圖 | 新疆電子地圖 | RSS訂閱
    版權(quán)所有 © 2016 新疆二域軟件開發(fā)網(wǎng) m.jdtbank.com All Rights Reserved 新ICP備14003571號
    新疆軟件開發(fā)總機:0991-4842803、4811639.
    客服QQ:596589785 ;地址:新疆烏魯木齊北京中路華聯(lián)大廈A-5C 郵編:830000
     
    酉阳| 江安县| 苗栗县| 澳门| 遵化市| 水城县| 新竹市| 上蔡县| 晋中市| 乡城县| 岱山县| 信宜市| 泸州市| 九寨沟县| 开远市| 岳普湖县| 台中市| 名山县| 拉萨市| 黄冈市| 呼玛县| 西宁市| 九龙坡区| 宁德市| 饶阳县| 鸡东县| 博乐市| 伊宁市| 东港市| 石棉县| 龙州县| 应用必备| 新田县| 宁晋县| 富顺县| 廉江市| 眉山市| 左云县| 罗江县| 开化县| 嵩明县|