1. 程式人生 > >白盒測試:覆蓋方式

白盒測試:覆蓋方式

語句覆蓋(statement coverage):語句覆蓋是指程式的每一行程式碼是否都被覆蓋到;語句覆蓋是最常用的一種程式碼覆蓋率指標,也非常簡單。但是對一些控制結構的程式碼而言,它不能真正表示是否完全覆蓋到。

決策覆蓋(decision coverage):又叫分支覆蓋決策覆蓋是指在控制結構的程式碼塊,如if, while中的整個bool表示式是否在false和true條件下,各被執行一次。決策覆蓋不考慮組成該條件表示式的各個子條件是否被完全覆蓋到。於是,通常對於c/c++/java語言,由於short circuit operators,對於一個由多個條件以與關係組成的一個條件表示式,當出現第一個條件被檢測為false時,其後所有的條件都不會被執行了。

條件覆蓋(condition coverage):條件覆蓋是指每個條件都必須有true和false的情況,這裡一個條件是一個邏輯操作符的運算元,但是不含該邏輯操作符。注意和決策覆蓋的區別,如

bool f(bool e){    return false;    }
bool a[2]={false, false};
if(f(a&&b)) ...
if(a[int(a&&b)]) ...
if((a&&b)?false:false) ...
該程式碼塊的3個if條件中,一共包含2個條件a,b;共四種情況a=true, a=false, b=true, b=false
;我們只需取a,b分別為true和false的組合(a=true, b=false和a=false, b=true)即可使條件覆蓋為100%;而實際上,無論a,b取什麼值,3個if語句的分支始終都返回false。而分支覆蓋只看每個if語句的整體是否是true忽然false。

多重條件覆蓋(multiple condition coverage):多重條件覆蓋是指各個條件的每個可能的組合是否被檢查到。多重條件覆蓋中的各個條件組合是一種排列關係,而不是組合。通常多重條件覆蓋的測試案例設計都非常複雜,因為在考慮到各個條件之間的排列關係時,其數量本身就多,而且還要考慮關係之間的相互影響,剔除無效的排列。

條件/決策覆蓋(condition/decision coverage):條件決策覆蓋是條件覆蓋和決策覆蓋的聯合運算,它具有比多重條件覆蓋簡單的優勢,同時又沒有條件覆蓋和決策覆蓋的缺點。

改進的條件/決策覆蓋(modified condition/decision coverage):其定義是程式中的每個入口和出口都至少被呼叫一次,一個決策的每個條件都至少有一次所有可能的輸出,程式中的每個決策都至少有一次所有可能的輸出,一個決策中的每個條件都能獨立的影響該決策的輸出(該條件改變,而其他條件保持不變)。

路徑覆蓋(path coverage):路徑決策指示函式中的每個可能的路徑是否被執行到。一條路徑是一個唯一的從函式入口到出口的分支序列。路徑覆蓋通常能比較徹底的進行測試,但是它也有兩個非常嚴重的缺陷:其一,路徑的數量是分支數量的幾何級數。例如,一個具有10個if語句的函式,需要1024個路徑測試;而我們再加一條if語句,則有2048個路徑需要測試。

相關推薦

測試覆蓋方式

語句覆蓋(statement coverage):語句覆蓋是指程式的每一行程式碼是否都被覆蓋到;語句覆蓋是最常用的一種程式碼覆蓋率指標,也非常簡單。但是對一些控制結構的程式碼而言,它不能真正表示是否完全覆蓋到。 決策覆蓋(decision coverage):又叫分支覆蓋

測試語句覆蓋、條件覆蓋、判定覆蓋、條件-判定覆蓋、組合覆蓋、路徑覆蓋

語句覆蓋:所有的“語句”都要覆蓋一遍判定覆蓋:包含語句覆蓋,每個判斷T、F各一次條件覆蓋:包含語句覆蓋,每個條件T、F各一次判定條件覆蓋:包含判定覆蓋、條件覆蓋條件組合覆蓋:每個條件的每種組合路徑覆蓋:

測試邏輯覆蓋

看新定的測試覆蓋率標準,有點暈。 1、語句覆蓋率達到100% 2、分支覆蓋率不低於70% 開始覺得,這兩個限制有點矛盾,語句覆蓋率都達到100%了,分支覆蓋率還沒達到100%?答案:是。舉個例子說明:  if   A   and   B   then   Action1   

軟體測試 測試--邏輯覆蓋法&基本路徑測試法

白盒測試—邏輯覆蓋法&基本路徑測試法 題目一:使用邏輯覆蓋測試方法測試以下程式段 1.  int logicExample(int x, int y) 2.  { 3.      int magic=0; 4.      if(x>0 &&

測試的六種覆蓋方式

找了半天的資料,覺得這個比較好。 一、語句覆蓋(Statement coverage) “語句覆蓋”是一個比較弱的測試標準,它的含義是:選擇足夠的測試用例,使得程式中每個語句至少都能被執行一次。 圖6.4是一個被測試的程式,它的源程式是: PROCEDUREM(VA

負責撰寫實踐作業3測試---細化明確任務DAY5

提交 gpo 管理 image 人員 table 利用 nbsp images 收到老師給我寫的評論,感覺老師真的太認真,每個博客都有仔細的,參考了老師發給我的博客,我才明白老師想要的博客內容原來是具體實際的進展記錄。我們組其實這些東西早就確定了,會議也開了,但是我之前不明

實踐作業3測試----學習Junit框架DAY10.

測試套件 應用程序 可重復 lips ant 速度 div 一個 基線 JUnit - 測試框架 首先應該了解什麽是 Junit 測試框架? JUnit 是一個回歸測試框架,被開發者用於實施對應用程序的單元測試,加快程序編制速度,同時提高編碼的質量。JUnit 測試框架能夠

實踐作業3測試實踐(小組作業)記錄3

自己 logs 軟件學院 idt str strong span mil tro 會議時間:2017.12.21 會議地點:軟件學院北樓507 參會人員:魯慧敏、寧莉莎、張江、王瑞、李佳明 會議目的:將大家討論後回去自己完成版塊的單元測試和缺陷報告,靜態代碼評估遇到的問題拿

測試—六種覆蓋方法

版權宣告:本文為博主原創文章,未經博主允許不得轉載。 https://blog.csdn.net/write6/article/details/78702977  定義:    白盒測試又稱結構測試,透明盒測試、邏輯驅動測試或基於程式碼的測試。白盒測試是一種測試用例設計方法,

談談測試中的幾種覆蓋方法

 談談白盒測試中的幾種覆蓋方法  白盒測試用例設計的一個很重要的評估標準就是對程式碼的覆蓋度。一說到覆蓋,大家都感覺非常熟悉,但是常見的覆蓋都有哪些?各自有什麼優缺點?在白盒測試的用例設計中我們應該如何自如地運用呢?今天小編就為大家總結了一下幾種常見的覆蓋以及各自的優缺點。  白盒測試中常見的覆蓋有六種:語句

測試之邏輯覆蓋---軟考

   白盒測試也稱為結構測試,根據程式的內部結構和邏輯來設計測試用例,對程式的路徑和過程進行測試,檢查是否滿足設計的需要。    白盒測試常用的技術是邏輯覆蓋、迴圈覆蓋和基本路徑測試。    本次,小

軟體測試技術之 測試和黑測試

一般地,我們將軟體測試活動分為以下幾類:黑盒測試、白盒測試、靜態測試、動態測試、手動測試、自動測試等等。 黑盒測試 黑盒測試又叫功能測試、資料驅動測試或給予需求規格說明書的功能測試。這種測試注重於測試軟體的功能性需求。 採用這種測試方法,測試工程師把測試物件看作一個黑盒

【軟體測試測試的條件覆蓋標準強於判定覆蓋(錯)

白盒測試的條件覆蓋標準強於判定覆蓋(錯) 條件覆蓋:每個複合判定表示式的每個簡單判定條件的取真和取假情況至少執行一次; 判定覆蓋:又稱為分支覆蓋,其含義是保證程式中每個判定節點的取真和取假分支至

測試的中邏輯覆蓋的強弱

常用的軟體測試方法有兩大類:靜態測試方法和動態測試方法。其中軟體的靜態測試不要求在計算機上實際執行所測程式,主要以一些人工的模擬技術對軟體進行分析和測試;而軟體的動態測試是通過輸入一組預先按照一定的測試準則構造的例項資料來動態執行程式,而達到發現程式錯誤的過程。   白

測試之邏輯覆蓋

   語句覆蓋是指選擇足夠的測試用例,使得執行這些測試用例時,被測程式的每個可執行語句都至少執行一次    欲使每個語句都執行一次,只需執行路徑L1(sabcde)即可。 L1=(y=2) and (z=0) or (y>1) and (z=0) and (x>y) 測試用例如下:

測試的六種覆蓋準則

 白盒測試作為測試人員常用的一種測試方法,越來越受到測試工程師的重視。白盒測試並不是簡單的按照程式碼設計用例,而是需要根據不同的測試需求,結合不同的測試物件,使用適合的方法進行測試。因為對於不同複雜度的程式碼邏輯,可以衍生出許多種執行路徑,只有適當的測試方法,才能幫助我們從程

測試中邏輯覆蓋的六種方法

   1.語句覆蓋。這個是起碼要做到的覆蓋了,程式裡的每條可執行的語句都要至少執行一次。這個設計起來比較簡單,用例資料很直觀的就能看出來。但是語句裡的判定,分支等就沒什麼意義了。可以說這樣的測試是最低的要求了。  2.判定覆蓋。每個判斷的真假分支至少執行一次,就是真要至少取一次,假要至少取一次。這個設計起來也

[5]測試方法2—圖覆蓋準則

學習圖覆蓋準則需要了解一些其他基本概念。 可達:從某一個結點開始存在一條路徑可達子圖。 可達包括兩個方面:語法可達和語義可達。 語法可達:通過語法構建某種子圖結構當中,存在一條路徑可達到這個子圖。 語義可達:指在實際的程式當中存在這麼一個測試,可到到這個

測試中幾種覆蓋的區別

比較常用的邏輯覆蓋測試方法有:語句覆蓋、判定覆蓋、條件覆蓋、判定-條件覆蓋、條件組合覆蓋、路徑覆蓋。基本路徑測試:在程式控制圖的基礎上,通過分析控制構造的環行復雜性,匯出基本可執行路徑集合,從而設計測試用例的方法。設計出的測試用例要保證在測試中程式的每一個可執行語句至少執行

整理測試中的邏輯覆蓋

舉例public class Coverage{public void Main(){1 System.out.println("start main function:path a...");2 int A,B,X;3 if(A>1 and B==0){4 X=X/