<ruby id="rxdll"></ruby><strike id="rxdll"></strike>

    <rp id="rxdll"></rp>
      <del id="rxdll"><meter id="rxdll"></meter></del>
      <pre id="rxdll"><font id="rxdll"></font></pre>
        <pre id="rxdll"></pre>
      <p id="rxdll"><thead id="rxdll"></thead></p><dl id="rxdll"><progress id="rxdll"><form id="rxdll"></form></progress></dl>

      <ol id="rxdll"><thead id="rxdll"><track id="rxdll"></track></thead></ol>
      <i id="rxdll"><dfn id="rxdll"></dfn></i>
      <font id="rxdll"><meter id="rxdll"></meter></font>

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

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

        連載:(七)軟件測試技術——單元測試

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

        領測軟件測試網  單元測試是針對軟件設計中的最小單位-程序模塊,進行正確性檢驗的測試工作,其目的在于發現每個程序模塊內部可能存在的差錯。由于敏捷開發的興起,單元測試這個曾經的“昔日黃花”再度被受到追捧。沒有采用敏捷開發方式的軟件企業也在重新審視單元測試的重要性。
                對于單元測試的定義,應該分成廣義的和狹義兩種。狹義的單元測試是指編寫測試代碼來驗證被測試代碼的正確性。廣義的單元測試則是指小到一行代碼的驗證,大到一個功能模塊的功能驗證,從代碼規范性的檢查到代碼性能安全性的驗證都包括在內,視單元的范圍而定義。
        1.單元測試由誰來做
                關于單元測試應該由誰來做,存在兩種截然不同的對立觀點。一部分人認為單元測試既然是測試的一種類型,當然應該由測試人員負責;另外一部分人則認為,開發人員應該通過編寫單元測試的代碼來保證自己寫的程序是正常工作的。
                支持單元測試應該由開發人員執行的人認為,單元測試是程序員的基本職責,程序員必須對自己所編寫的代碼持有認真負責的態度。由程序員來對自己的代碼進行測試的代價是最小的,卻能換來優厚的回報,因為在編碼過程中考慮測試問題,得到的是更優質的代碼,這個時候程序員對代碼應該做什么了解得最清楚。如果不這樣做,而是一直等到某個模塊崩潰時,程序員則可能已經忘記代碼是怎樣工作的,需要花費更多的時間重新弄清代碼,即使這樣也不一定能完全弄清楚,因此修改的代碼往往不會那么徹底。
                那些對程序員不應該測試自己代碼的人認為,單元測試應該由測試人員來做。程序員通常都有愛護自己程序的潛在心理,不忍心對程序進行破壞性的測試,而且,程序員也缺乏像測試人員一樣敏銳的測試思維,很難設計出好的測試代碼。

                說明:廣義的單元測試不僅包括編寫測試代碼進行單元測試,還包括很多其他的方面,例如代碼規范性檢查,則完全可以由測試人員借助一些測試工具進行。

        2.結對單元測試
                關于單元測試應該由誰來完成,兩部分人各持己見,爭論了很多年,直到極限編程、測試驅動開發模式(TDD)出現,才使得兩種意見得以綜合考慮。
                TDD把單元測試的地位提高到了史無前例的最高點,倡導測試先行、用測試驅動開發。測試是最好的設計,在編寫代碼之前就要把測試考慮清楚,這樣在編寫代碼時才胸有成竹。有人舉了兩個工匠砌墻的例子來說明TDD。
                工匠一的做法:先將一排磚都砌完,再拉上一根水平線,看看哪些磚有問題,再進行調整,如圖所示。


                工匠二的做法:先拉上一根水平線,砌每一塊磚時,都與這根水平線進行比較,使得每一塊磚都保持水平,如圖所示。

                一般人都會抱怨工匠笨,這樣多浪費時間!然而想想平時在編寫程序的時候很多人不也是這樣干的嗎?甚至比工匠一還要笨,等到正面墻都砌完了,直接進行集成測試,經常讓整面墻倒塌。
                TDD認為應該盡早進行測試,甚至在代碼還沒編寫出來之前就先編寫測試代碼進行測試。如果是這樣的話,很明顯應該由開發人員進行單元測試了,程序員責無旁貸地要擔負起單元測試的職責。
                那么,反對這樣做的人的觀點是什么呢?測試人員應該與開發人員進行結對的單元測試,測試人員的優勢是具有敏銳的測試思維和測試用例設計能力,應該充分利用測試人員的這些優點。一種可行的辦法是:把兩種觀點結合在一起,讓測試人員設計測試用例,開發人員編寫測試代碼實現測試用例,再由測試人員來執行測試用例。也就是說,讓測試人員和開發人員結對進行單元測試,如圖所示。


                開發人員與測試人員在單元測試的過程中必須緊密地合作,一起討論應該進行哪些測試以及怎樣測試,應該添加哪些測試數據。
                開發人員應該向測試人員提供程序的設計思路、具體實現過程以及函數參數等信息。
                測試人員根據了解到的需求規格、設計規格來進行測試用例的設計,指導開發人員按照測試用例進行測試代碼的設計。
                測試人員運行開發人員編寫的測試代碼進行單元測試以及結果的收集與分析;蛘呃單元測試工具單元測試代碼自動運行。
                結對單元測試要求測試人員對需求的把握能力要強,而且對設計和編碼過程有基本的認識。開發人員在結對單元測試中應能更好地按需求進行代碼設計,同時也能從測試人員身上學到更多關于測試的知識,以便提高代碼編寫的質量和防止代碼出錯的能力。

        延伸閱讀

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

        TAG: 單元 技術 連載 軟件測試


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

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

        国产女主播精品_国产片婬乱18一级毛片视频_国产午夜激无码av毛片不卡_国产精品欧美久久久天天影院
          <ruby id="rxdll"></ruby><strike id="rxdll"></strike>

          <rp id="rxdll"></rp>
            <del id="rxdll"><meter id="rxdll"></meter></del>
            <pre id="rxdll"><font id="rxdll"></font></pre>
              <pre id="rxdll"></pre>
            <p id="rxdll"><thead id="rxdll"></thead></p><dl id="rxdll"><progress id="rxdll"><form id="rxdll"></form></progress></dl>

            <ol id="rxdll"><thead id="rxdll"><track id="rxdll"></track></thead></ol>
            <i id="rxdll"><dfn id="rxdll"></dfn></i>
            <font id="rxdll"><meter id="rxdll"></meter></font>

              <mark id="rxdll"><dfn id="rxdll"></dfn></mark>