1. 程式人生 > >黑盒測試設計--判定表法

黑盒測試設計--判定表法

可能 軟件設計 優點 邏輯 cells 問題 進行 條件 輸出

. 方法簡介

1.定義:判定表是分析和表達多邏輯條件下執行不同操作的情況的工具。

2.判定表的優點

能夠將復雜的問題按照各種可能的情況全部列舉出來,簡明並避免遺漏。因此,利用判定表能夠設計出完整的測試用例集合。

在一些數據處理問題當中,某些操作的實施依賴於多個邏輯條件的組合,即:針對不同邏輯條件的組合值,分別執行不同的操作。判定表很適合於處理這類問題。

3、判定表有幾個要素:

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

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

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

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

技術分享圖片

4、規則及規則合並

1)規則:任何一個條件組合的特定取值及其相應要執行的操作稱為規則。在判定表中貫穿條件項和動作項的一列就是一條規則。顯然,判定表中列出多少組條件取值,也就有多少條規則,既條件項和動作項有多少列。

2)化簡:就是規則合並有兩條或多條規則具有相同的動作,並且其條件項之間存在著極為相似的關系。

技術分享圖片

5、判定表設計法舉例:

書籍閱讀指南中有以下建議:

如果覺得疲倦並且對書的內容感興趣,不糊塗的話,回到本章重讀

如果覺得疲倦並且對書的內容感興趣,但糊塗的話,繼續讀下去

如果不覺得疲倦並且對書的內容感興趣,但糊塗的話,回到本章重讀

如果覺得疲倦並且對書的內容不感興趣,但不糊塗,跳到下一章去閱讀

如果覺得疲倦並且對書的內容不感興趣,但糊塗的話,請停止閱讀,休息

不疲倦,對書的內容感興趣,書中的內容不糊塗,繼續讀下去

不疲倦,不感興趣,書中內容糊塗,跳到下一章去讀

不疲倦,不感興趣,書中內容不糊塗,跳到下一章去讀

s1:根據需求將條件樁、條件項、動作樁、動作項分別列出來

技術分享圖片

s2:根據化簡規則對判定表進行化簡:

只要覺得疲憊,那麽其他兩項就不再考慮,直接休息,所以上圖1~4可以簡化合並成一條

不疲憊且感興趣時,無論是否糊塗,都直接休息,簡化以後的測試用例如下:

1

2

3

4

你覺得疲倦嗎?

-

-

Y

N

你對內容感興趣嗎?

Y

Y

N

N

書中內容使你胡塗嗎?

Y

N

-

-

請回到本章開頭重讀

x

繼續讀下去

X

跳到下一章去讀

x

停止閱讀,請休息

x

6、判定表的優點和缺點

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

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

合並存在漏測的風險。一個顯然易見的原因是,雖然某個輸入條件在輸出接口上是無關的,但是在軟件設計上,內部針對這個條件走了不同的程序分支(因分析內部業務流程而定);輸入和輸出的邏輯關系,明確用判定表,不是很明了用因果圖然後使用判定表。

7、適合使用判定表設計測試用例的條件:

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

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

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

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

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

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

黑盒測試設計--判定表法