全球专业中文经管百科,由121,994位网友共同编写而成,共计435,843个条目

條件覆蓋

用手机看条目

出自 MBA智库百科(https://wiki.mbalib.com/)

目錄

什麼是條件覆蓋

  條件覆蓋是指設計足夠多的測試用例,運行被測程式,使得每一判定語句中每個邏輯條件的可能取值至少滿足一次。

  條件覆蓋率=被評價到的條件取值的數量/條件取值的總數*100%

  條件覆蓋的含義是:使每個判定表達式中的每個條件都取到各種可能的結果。


條件覆蓋的舉例分析

  例1:

  PROCEDURE M(VAR A,B,X:REAL);

  BEGIN

   IF (A>1) AND (B=0) THEN X:=X/A;

   IF (A=2) OR (X>1) THEN X:=X+1;

  END.

  例1的程式有四個條件:

   A>1、 B=0、A=2、X>1

  為達到“條件覆蓋”標準,需執行足夠的測試用例使得在a點有:

   A>1、A≤1、B=0、B≠0

  等各種結果出現,以及在b點有:

   A=2、A≠2、X>1、X≤1

  等各種結果出現。

  現在只需設計以下兩個測試用例就可滿足這一標準

  ① A=2,B=0,X=4 (沿路徑ace執行);

  ② A=1,B=1,X=1 (沿路徑abd執行)。

  例2:

  void DoWork(int x,int y,int z)

  { int k=0,j=0;

   if((x>3)&&(z<10))

   { k=x*y-1; //語句塊1

   j=sqrt(k);

   }

   if((x= =4)||(y>5))

   j=x*y+10; //語句塊2

   j=j%3; //語句塊3

  }

  對例2中的所有條件取值加以標記。

  對於第一個判斷:

  條件x>3 取真值為T1,取假值為-T1

  條件z<10 取真值為T2,取假值為-T2

  對於第二個判斷:

  條件x=4 取真值為T3,取假值為-T3

  條件y>5 取真值為T4,取假值為-T4

  則可以設計測試用例如下:

測試用例通過路徑條件取值覆蓋分支
x=4、y=6、z=5abdT1T2T3T4bd
x=2、y=5、z=5ace-T1T2、-T3、-T4ce
x=4、y=5、z=15acdT1、-T2T3、-T4cd

上面的測試用例不但覆蓋了所有分支的真假兩個分支,而且覆蓋了判斷中的所有條件的可能值。

  “條件覆蓋”並不包含“分支覆蓋

  如對語句

   IF(A AND B) THEN S

  設計2個測試用例,使其滿足“條件覆蓋”:

   1、使A為真並使B為假;

   2、使A為假而且B為真;

  但是它們都未能使語句S得以執行。

  對例2設計了下麵的測試用例,則雖然滿足了條件覆蓋,但只覆蓋了第一個條件的取假分支和第二個條件的取真分支,不滿足分支覆蓋的要求。

測試用例通過路徑條件取值覆蓋分支
x=2、y=6、z=5acd-T1T2、-T3T4cd
x=4、y=5、z=15acdT1、-T2T3、-T4cd
本條目對我有幫助12
MBA智库APP

扫一扫,下载MBA智库APP

分享到:
  如果您認為本條目還有待完善,需要補充新內容或修改錯誤內容,請編輯條目投訴舉報

本条目由以下用户参与贡献

Tracy,赵先生.

評論(共0條)

提示:評論內容為網友針對條目"條件覆蓋"展開的討論,與本站觀點立場無關。

發表評論請文明上網,理性發言並遵守有關規定。

打开APP

以上内容根据网友推荐自动排序生成

下载APP

闽公网安备 35020302032707号