白盒測試的測試用例設計方法多重條件覆蓋
Ⅰ 白盒測試的測試用例設計有哪些方法
白盒測試用例設計技術可分為邏輯覆蓋和路徑覆蓋,邏輯覆蓋又可分為以下幾種,從弱到強:
語句覆蓋(SC):設計足夠多的測試用例,確保每條語句都被執行過。
判定覆蓋(DC):設計足夠多的測試用例,確保每個判定都分別取真值與假值。
條件覆蓋(CC):設計足夠多的測試用例,確保每個條件都分別取真值與假值。(一個判定里可能包含多個條件)
判定/條件覆蓋(DCC):設計足夠多的測試用例,確保每個判定和條件分別取真值和假值。
條件組合覆蓋(CMC):設計足夠多的測試用例,確保覆蓋每個判定中的各個條件的所有組合情況。(只考慮同一個判定內的各條件組合情況)
路徑覆蓋:設計足夠多的測試用例,確保每條路徑都被執行。如果程序復雜,比如包含循環的情況,路徑覆蓋的測試用例數將會是個天文數字,無法實現。可以採用簡化了的路徑覆蓋,即將循環看成是一個判定,只考慮循環被執行和未執行兩種情況。
Ⅱ 白盒測試都要滿足條件覆蓋 邏輯覆蓋嗎
白盒測試技術中的邏輯覆蓋 一個或者多個條件組成一個判定,一個程序中可以有多個判定。 首要的是建立一個二維的真值表,各列為判定和條件,各行為每組值的T或者F。 1、語句覆蓋 為了暴露程序中的錯誤,至少每個語句應該執行一次。 這也是最弱的邏輯覆蓋標准咯。 2、判定覆蓋 每個判定的每種可能結果都要執行一次。 建立判定表以後,要保證每種判定的結果中都包含了T和F,才滿足判定覆蓋。 3、條件覆蓋 不但每個語句需要執行一次,而且判定表達式中的每個條件都要取到可能的結果。 建立判定表以後,要保證每種條件的結果中都包含了T和F,才滿足條件覆蓋。 4、判定/條件覆蓋 使得每個判定以及每個判定中的每個條件都取到可能的結果。 建立判定表以後,要保證每個判定結果包含T和F,而且每種條件的結果包含T和F。 也就是綜合了上面的條件覆蓋和判定覆蓋。 5、條件組合覆蓋 使得每個判定中的條件的各種組合至少出現一次。 也就是說,先把程序中的條件列出來,排列組合,寫出所有的可能性,看有沒有那組值同時滿足這些排列組合。 6、路徑覆蓋 每條可能的路徑都至少執行一次。
Ⅲ 4. 白盒測試設計測試用例的原則是什麼
採用白盒測試方法必須遵循以下幾條原則:
1.保證一個模塊中的所有獨立路徑至少被測試一次
2.所有邏輯值均需測試真(TRUE)和假(FALSE)兩種情況
3.檢查程序的內部數據結構,保證其結構的有效性
4.在上下邊界及可操作范圍內運行所有循環。
Ⅳ 誰知道白盒測試中的分支條件覆蓋和條件組合覆蓋的區別,最好能給舉個例子
程序1如下:
Function js(float A,float B,float X)
{
if(A>1&&B=0)X=X/A;
if(A=2||X>1)X=X+1;
}
程序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
}
A、語句覆蓋:語句覆蓋使程序中每個語句至少都能夠被執行一次。
例如,在程序1中,為使程序中每個語句至少執行一次,只需設計一個能通過路徑a-c-e的數據就可以了,例如選擇輸入數據為:A=2,B=0,X=3就可以達到「語句覆蓋」標准。
在程序2中,如測試用例輸入為:x=4,y=5,z=5程序執行的路徑是a-b-d。
B、判定覆蓋
比語句覆蓋稍強的覆蓋標準是判定覆蓋。按判定覆蓋准則進行測試是指,設計若干測試用例,運行被測程序,使得程序中每個判斷的取真分支和取假分支至少經歷一次,即判斷的真假值均曾被滿足。判定覆蓋又稱為分支覆蓋。
C、條件覆蓋
再設計程序中,一個判定語句是由多個條件組合而成的復合判定。
條件覆蓋的含義是:構造一組測試用例,使得每一判定語句中每個邏輯條件的可能值至少滿足一次。
D、條件判定組合覆蓋
條件判定組合覆蓋的含義是:設計足夠的測試用例,使得判定中每個條件的所有可能(真/假)至少出現一次,並且每個判定本身的判定結果(真/假)也至少出現一次。
E、多條件覆蓋
多條件覆蓋也成為條件組合覆蓋,它的含義是:設計足夠的測試用例,使得每個判定中條件的各種可能組合都至少出現一次。顯然滿足多條件覆蓋的測試用例是一定滿足判定覆蓋、條件覆蓋和條件判定組合覆蓋的。
級別太低,流程圖插不上,汗....
Ⅳ 為如圖設計白盒測試用例,實現條件組合覆蓋符合要求的測試用例
Ⅵ 請簡要說明白盒測試技術中,判定覆蓋,條件覆蓋,判定條件覆蓋和組合條件覆
類型 關注點 錯誤類型
判定覆蓋 每個分支結果至少走1次 分支缺陷
條件覆蓋 每個條件因素至少1次 條件因素缺陷
判定條件覆蓋 每個條件因素至少1次+每個分支結果至少1次 分支缺陷或者條件缺陷
組合條件覆蓋 所有條件因素的所有組合情形至少1次 比較全的缺陷,但也不能檢測到全部,因為有些特殊的或者是設計上的東西
Ⅶ 在白盒測試方法中,語句覆蓋,判定覆蓋,條件覆蓋和路徑覆蓋,哪一種覆蓋率高為什麼
一般而言是路徑覆蓋。因為一個程序中往往有多個條件判斷的節點,路徑覆蓋是要把所有節點的可能輸出結果的組合都覆蓋到的。
但是,路徑覆蓋和條件覆蓋的方向並不相同,二者有互相交叉的方面。
路徑覆蓋並不能包含到條件覆蓋的所有CASE。所以,在只有少數判斷分支,且每個分支的判斷都是由多個子條件組合而成時,條件覆蓋卻更嚴密一些。
所以,從理論上講,最嚴密的白盒覆蓋方式是路徑覆蓋+條件組合覆蓋。但是,由於條件組合覆蓋過於復雜且產生的用例數過多,大多數情況下是不使用的。
在測試實踐中,我們一般認為,最嚴密的白盒覆蓋方式就是路徑覆蓋。