[ 黑盒測試方法 ] 判定表驅動法


  判定表是分析和表達多邏輯條件下執行不同操作的工具。它能夠將復雜的問題按照各種可能的情況全部列舉出來。因此,利用判定表能夠設計出完整的測試用例集合。在一些數據處理問題當中,某些操作的實施依賴於多個邏輯條件的組合,即:針對不同邏輯條件的組合值,分別執行不同的操作。判定表很適合於處理這類問題。另外,判定表通常與因果圖法結合使用。

判定表的組成

  判定表通常由四個部分組成如下圖所示。

(1)條件樁(Condition Stub):列出問題的所有條件。通常認為列出的條件的次序無關緊要。

(2)動作樁(Action Stub):列出問題規定可能采取的操作。這些操作的排列順序沒有約束。

(3)條件項(Condition Entry):列出針對它左列條件的取值。在所有可能情況下的真假值。

(4)動作項(Action Entry):列出在條件項的各種取值情況下應該采取的動作。

(5)規則:任何一個條件組合的特定取值及其相應要執行的操作稱為規則。在判定表中貫穿條件項和動作項的一列就是一條規則。顯然,判定表中列出多少組條件取值,也就有多少條規則,既條件項和動作項有多少列。注意化簡,即規則合並有兩條或多條規則具有相同的動作,並且其條件項之間存在着極為相似的關系。

判定表建立方法

(1)確定規則的個數。假如有n個條件,每個條件有兩個取值(0,1),故有2的n次方種規則。

(2)列出所有的條件樁和動作樁。

(3)填入條件項。

(4)填入動作項。制定初始判定表。

(5)簡化。合並相似規則或者相同動作。

判定表使用實例

1、需求描述:”……對功率大於50馬力的機器、維修記錄不全或已運行10年以上的機器,應給予優先的維修處理……” 。這里假定,“維修記錄不全”和“優先維修處理”均已在別處有更嚴格的定義 。請建立判定表。

(1)確定規則的個數。規則個數的取值為2的n次方,n為條件個數。需求描述中有有3個條件(功率大於50馬力、維修記錄不全、運行10年以上),每個條件有兩個取值,故應有2的3次方,共8種規則。

(2)列出所有的條件樁和動作樁。

(3)填入條件項。可以從第1列開始次序減去1。按照二進制計算方法。如7(111)、6(110)、...、0(000)。

(4)填入動作樁和動作頂。這樣便得到形如圖的初始判定表。

 

1

2

3

4

5

6

7

8

條件

功率大於50馬力嗎?

1

1

1

1

0

0

0

0

維修記錄不全嗎?

1

1

0

0

1

1

0

0

運行超過10年嗎?

1

0

1

0

1

0

1

0

動作

進行優先處理

1

1

1

 

1

 

1

 

作其他處理

 

 

 

0

 

0

 

0

(5)化簡,合並相似規則后得到圖。

 

1

2

3

4

5

條件

功率大於50馬力嗎?

1

1

1

0

0

維修記錄不全嗎?

1

0

0

-

-

運行超過10年嗎?

-

1

0

1

0

動作

進行優先處理

1

1

 

1

 

作其他處理

 

 

1

 

1

適合使用判定表的場景

  B. Beizer 指出了適合使用判定表設計測試用例的條件:

(1)規格說明以判定表形式給出,或很容易轉換成判定表。

(2)條件的排列順序不會也不影響執行哪些操作。

(3)規則的排列順序不會也不影響執行哪些操作。

(4)每當某一規則的條件已經滿足,並確定要執行的操作后,不必檢驗別的規則。

(5)如果某一規則得到滿足要執行多個操作,這些操作的執行順序無關緊要。

  B. Beizer提出這5個必要條件的目的是為了使操作的執行完全依賴於條件的組合。其實對於某些不滿足這幾條的判定表,同樣可以使用判定表設計測試用例,只不過還需要增加其它的測試用例。

判定表的優點和缺點

  優點:它能把復雜的問題按各種可能的情況一一列舉出來,簡明而易於理解,也可以避免遺漏。

  缺點:不能表達重復執行的動作,例如循環結構。

參考資料

1、判定表驅動法_百度百科

2、《黑盒測試用例設計方法》


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM