[軟件測試] 02 白盒 邏輯覆蓋測試 習題
目錄
軟件測試期末復習系列
課件知識點整合:
PTA習題匯總:
提示:
篇幅較長,可以使用Ctrl+F,在頁面中快速查詢關鍵詞(或者你要找的題目)并跳轉到指定的位置。
關鍵詞:白盒測試,邏輯覆蓋測試
單選題
-
以下不屬于邏輯覆蓋測試的是(C)
A. 語句覆蓋
B. 判定覆蓋
C. 基本路徑覆蓋
D. 條件覆蓋
根據不同的測試要求,邏輯覆蓋測試可以分為語句覆蓋、判定覆蓋(分支覆蓋)、條件覆蓋、判定-條件覆蓋(分支-條件覆蓋)、條件組合覆蓋、路徑覆蓋六種覆蓋測試方法。
注:路徑覆蓋和基本路徑測試是兩個容易混淆的概念,不存在”基本路徑覆蓋“這個概念。
它們的關系是:
白盒測試包含邏輯覆蓋測試和基本路徑測試等等,而路徑覆蓋屬于邏輯覆蓋測試中的一種。
-
在軟件測試中,邏輯覆蓋標準主要用于(B)
A. 黑盒測試
B. 白盒測試
C. 文檔測試
D. 軟件驗收
-
下列不屬于白盒測試技術的是(D)
A. 路徑覆蓋
B. 判定覆蓋
C. 條件覆蓋
D. 需求覆蓋
-
在邏輯覆蓋準則中,覆蓋性最強的是(D)
A. 語句覆蓋
B. 判定覆蓋
C. 條件覆蓋
D. 條件組合覆蓋
各種測試覆蓋率之間的關系

-
在下面所列舉的邏輯測試覆蓋中,測試覆蓋最弱的是(C)
A. 條件覆蓋
B. 條件組合覆蓋
C. 語句覆蓋
D. 判定/條件覆蓋
-
下面的個人所得稅程序中,滿足語句覆蓋測試用例是(D)

A. income=(800,1500,2000,2001)
B. income=(800,801,1999,2000)
C. income=(799,1499,2000,2001)
D. income=(799,1500,1999,2000)
-
條件組合覆蓋是一種邏輯覆蓋,滿足條件組合覆蓋級別的測試用例也滿足(A)級別的測試。
A. 語句覆蓋、判定覆蓋、條件覆蓋、判定/條件覆蓋
B. 判定覆蓋、條件覆蓋、判定/條件覆蓋
C. 語句覆蓋、判定覆蓋、判定/條件覆蓋
D. 路徑覆蓋、判定覆蓋、條件覆蓋、判定/條件覆蓋
這道題D可以先排除,因為條件組合覆蓋不包含路徑覆蓋。
而對于B和C,都是A的子集,也不能算錯。不過這道選擇題的出題人給出的答案是最充分的A選項。
-
下列有關測試過程V模型的說法中,正確的是(B)
A. 驗收測試應確定成程序的執行是否滿足軟件設計的要求
B. 系統測試應確定系統功能和性能的質量特性是否達到系統要求的指標
C. 單元測試和集成測試應確定軟件的實現是否滿足用戶需要或合同的要求
D. 集成測試在編碼結束前就可以開始
-
下列不屬于軟件測試過程模型的一項是(A)
A. 瀑布模型
B. H模型
C. V模型
D. W模型
瀑布模型是軟件生命周期模型
-
使用白盒測試方法時,確定測試數據應根據(A)和指定的覆蓋標準。
A. 程序的內部邏輯
B. 程序的復雜程度
C. 使用說明書
D. 程序的功能
-
如果一個判定中的復合條件表達式為(A>1)or (b<=3),則為了達到100%的條件覆蓋率,至少需要設計多少個測試用例(B)
A. 1
B. 2
C. 3
D. 4
條件覆蓋:設計測試用例時應保證程序中每個復合判定表達式中,每個簡單判定條件(子條件)的取真和取假情況至少執行一次。
根據條件覆蓋的定義,我們可以只設計兩個測試用例,滿足兩個子條件的布爾值分別為(True, False)和(False,True),就能實現100%的條件覆蓋率。
-
通常可分為白盒測試和黑盒測試。白盒測試是根據程序的(A)來設計測試用例,黑盒測試是根據軟件的規格說明來設計測試用例。
A. 內部邏輯
B. 功能
C. 輸入數據
D. 應用范圍
主觀題
- 什么是黑盒測試,什么是白盒測試?
答:
簡單版本
-
黑盒測試是忽略系統或部件的內部機制只集中于響應所選擇的輸入和執行條件產生的輸出的一種測試。
-
白盒測試側重于系統或部件內部機制的測試,類型分為分支測試、路徑測試、語句測試。
詳細版本
- 黑盒測試又稱功能測試或數據驅動測試,是通過測試來檢測每個功能是否都能正常使用。是通過軟件的外部表現來發現缺陷和錯誤。黑盒測試把測試對象看成一個黑盒子,完全不考慮程序內部結構和處理過程,在程序接口進行測試,它只檢查程序功能是否按照需求規格說明書的規定正常使用,程序是否能適當地接收輸入數據而產生正確的輸出信息。測試者僅依據程序功能的需求規范考慮,確定測試用例和推斷測試結果的正確性,它是站在使用軟件或程序的角度,從輸入數據與輸出數據的對應關系出發進行的測試。
- 白盒測試又稱結構測試或邏輯驅動測試,指通過對程序內部結構的分析、檢測來尋找問題。白盒測試把程序看成裝在一個透明的白盒子里,也就是清楚了解程序結構和處理過程,檢查是否所有的結構及路徑都是正確的,檢查軟件的內部動作是否按照設計說明的規定正常進行。
- 運用邏輯覆蓋的方法測試以下程序段:

上述程序段的流程圖如下:

其中:
x=c+1; 為語句塊1
x=x=c; 為語句塊2
printf("a=%d,b=%d,c=%d,x=%d\n",a,b,c,x); 為語句塊3
return x; 為語句塊4
要求:根據給出的流程圖按講義上的格式分別寫出6種邏輯覆蓋(語句覆蓋、判定覆蓋、條件覆蓋、判定-條件覆蓋、條件組合覆蓋、路徑覆蓋)的測試用例。
答:




- 簡述邏輯覆蓋測試的6種覆蓋策略及各自的特點。
答:
根據不同的測試要求,覆蓋測試可以分為語句覆蓋、判定覆蓋、條件覆蓋、判定-條件覆蓋、條件組合覆蓋、路徑覆蓋。
① 語句覆蓋就是設計足夠的測試用例,使得被測試程序中的每條可執行語句至少被執行一次。
② 判定覆蓋又稱分支覆蓋,就是設計足夠的測試用例,使得被測試程序中的每個判斷的“真”、“假”分支至少被執行一次。
③ 條件覆蓋是指設計足夠的測試用例,使得被測試程序中的每個判斷語句中的每個邏輯條件的可能值(真、假)至少被滿足一次。或者說設計足夠多的測試用例,使得被測試程序中的每個邏輯條件的可能值(真、假)至少被滿足一次。
④ 判定-條件覆蓋是指設計足夠的測試用例,使得被測試程序中的每個判斷本身的判定結果(真、假)至少滿足一次,同時,每個邏輯條件的可能值(真、假)也至少被滿足一次。即同時滿足100%判定覆蓋和100%條件覆蓋的標準。在保證完成要求的情況下,測試用例的數目越少越好。
⑤ 條件組合覆蓋是指設計足夠的測試用例,使得被測試程序中的每個判斷的所有可能條件取值的組合至少被滿足一次。其測試用例應該注意如下三點:(1)條件組合只針對同一個判斷語句內存在多個條件的情況,讓這些條件的取值進行笛卡兒乘積組合。(2)不同的判斷語句內的條件取值之間無須組合。(3)對于單個條件的判斷語句,只需要滿足自己的所有取值即可。
⑥ 路徑覆蓋是指設計足夠的測試用例,運行被測程序,覆蓋程序中所有可能的路徑。

浙公網安備 33010602011771號