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

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

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

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

    軟件測試覆蓋率之一——測試覆蓋率分類

    發布: 2010-1-20 10:55 | 作者: 不詳 | 來源: 領測軟件測試網采編 | 查看: 142次 | 進入軟件測試論壇討論

    領測軟件測試網

          軟件測試覆蓋率之一——測試覆蓋率分類  軟件測試工具 

       關于覆蓋率,網絡上最常見的兩個詞應該是“測試覆蓋率”(Test Coverage)和”代碼覆蓋率“(Code Coverage)。今天就來探探這兩個東西。

      在測試里面,一般會將測試覆蓋率分為兩個部分,即”需求覆蓋率“和”代碼覆蓋率“?梢钥吹,代碼覆蓋率其實是測試覆蓋率的一部分而已。其中,最常討論和關心的是”代碼覆蓋率“,代碼覆蓋率又分為程序語句和代碼行覆蓋,分支覆蓋和條件覆蓋。對于這些概念,我們逐個解釋。

      需求覆蓋率:如果需求已經定義好,這個時侯我們就需要考慮需求覆蓋率了。這個時候需要注意的是,這里的需求不僅僅是指功能需求,還要包括性能需求。衡量需求覆蓋率的最直觀的方式是我們有多少功能點,我們有多少性能點要求,這些將作為分母;我們寫了多少測試用例,覆蓋了多少模塊,多少功能點,我們的性能測試用例考慮了待測程序多少性能點,這些作為分子。

      代碼覆蓋率:為了更加全面的覆蓋,我們可能還需要測試程序的流程,我們可能會考慮到一個函數的數據的輸入與輸出,甚至是每一行代碼的執行情況,代碼的每一條邏輯和分支,這個時候我們的測試執行情況就以代碼覆蓋率來衡量,這也是我們常在單元測試中念叨的覆蓋率覆蓋率的問題。

      語句覆蓋率:換個名字叫做代碼行覆蓋率,這就是監視每行代碼是否在用例(當然之所有的)中是否被執行到,準確點說是我們的用例里面大概執行了百分之多少的語句/代碼行數。需要注意的是,即使所有的語句都被執行到,也不一定執行到了所有的路徑。比如有五條語句:ABCDE,如果我們執行了用例覆蓋了ABCDE,另外一個用例這個時候我們覆蓋了所有語句,但是可能還存在一個路徑(如ABC)沒有執行,例如:

      public verifyToken(string yourname, string yourtitle)

      {

      A output(”Hello, my dear friends“);

      B if(yourname == "uniquestudiowcd")

      {

      C output("Hello, Aaron");

      }

      D if(yourtitle == "tester")

      {

      E output("Hello, my dear tester");

      }

      }

      這個時候我們輸入參數”uniquestudiowcd“和”tester“覆蓋到了所有的語句,但是我們漏掉了一個路徑:即輸入參數”uniquestudiowcd“和”coder“。

      分支覆蓋率:我們也給它換個名字即”路徑覆蓋率“,盡管并不完全對。在上面的例子中,如果我們僅考慮了第一個用例(即輸入參數”uniquestudiowcd“和”tester“),我們的語句覆蓋率為100%,帶式路徑覆蓋率可就低了,因為它存在ABD,ABCD,ABCDE,ABDE等等很多路徑。  軟件測試

      條件覆蓋率:這也就是為什么不能說”分支覆蓋“不同于”路徑覆蓋“的原因所在。如果我們在一個IF語句中加入了判斷組合,那就要考慮更多的問題了,因為主要出現在條件語句中,所以我們稱之為”條件覆蓋“。我們更改上述示例代碼:

      public verifyToken(string yourname, string yourtitle,string gendar)

      {

      A output(”Hello, my dear friends“);

      B if(yourname == "uniquestudiowcd" && gendar == ”man“)

      {

      C output("Hello, Aaron");

      }

      D if(yourtitle == "tester")

      {

      E output("Hello, my dear tester");

      }

      }

      很明顯即使我們輸入參數”uniquestudiowcd“”tester“,”woman“和”uniquestudiowcd“”tester“”man“,這兩個用例的路徑走的分支是一樣的,但是條件覆蓋不一樣,實際上兩者的”路徑“也是不一樣的。

      上面主要介紹的測試覆蓋率的一些基本知識,在關于測試覆蓋率的第二篇文章中,我將介紹歸納一下測試覆蓋率的用處,或者說測試覆蓋率的意義。

    延伸閱讀

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

    TAG: 分類 覆蓋率 軟件測試


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