關於覆蓋率,網路上最常見的兩個詞應該是「測試覆蓋率」(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「,這兩個用例的路徑走的分支是一樣的,但是條件覆蓋不一樣,
實際上兩者的」路徑「也是不一樣的。
上面主要介紹的測試覆蓋率的一些基本知識,在關於測試覆蓋率的第二篇文章中,我將介紹歸納一下測試覆蓋率的用處,或者說測試覆蓋率的意義。
測試覆蓋率
摘要 在測試方法中粗略的介紹了幾種測試方法。其中,白盒測試的動態分析方法中提到邏輯覆蓋率測試有 語句覆蓋 分支覆蓋 判定覆蓋 條件覆蓋 條件 判定覆蓋和路徑覆蓋。這裡將詳細闡述邏輯覆蓋率測試。準備知識 可執行語句 可執行的一項操作 真 假分支 ture false 運算元 opreand 操作符 o...
測試覆蓋率
摘要 在 測試 方法中粗略的介紹了幾種測試方法。其中,白盒測試 的動態分析方法中提到邏輯覆蓋率測試有 語句覆蓋 分支覆蓋 判定覆蓋 條件覆蓋 條件 判定覆蓋和路徑覆蓋。這裡將詳細闡述邏輯覆蓋率測試。準備知識 可執行語句 可執行的一項操作 真 假分支 ture false 運算元 opreand 操作...
測試 覆蓋率
覆蓋率準則 覆蓋率是度量測試完整性的乙個手段,是測試有效性的乙個度量。通過已執行 表示,用於可靠性 穩定性以及效能的評測。測試覆蓋是對測試完全程度的評測。測試覆蓋是由測試需求和測試用例的覆蓋或已執行 的覆蓋表示的。建立在對測試結果的評估和對測試過程中確定的變更請求 缺陷 的分析的基礎上。測試覆蓋是就...