软件测试-黑盒测试方法(一)---等价类划分、边界值、因果图、判定表
有關正交實驗法、場景圖、錯誤推測法,可參考文章:??????????????軟件測試-黑盒測試方法(二)---正交實驗法、場景圖、錯誤推測法
一、等價類劃分
? ? ? ? 使用等價類劃分最主要的原因就是窮舉測試不可能。
? ? ? ? 定義:把所有可能輸入的數據,分成若干部分(子集),在該子集合中,各個輸入數據對于揭露程序中錯誤的作用都是等價的。
????????在子集合中,各個輸入數據對于揭露程序中錯誤的作用都是等價的。因為無法保證完全等價,所以使用等價類測試后,不能完全保證軟件沒有缺陷。
? ? ? ? 應用場合:只要有數據輸入的地方,都可以使用等價類劃分法。使用最少的數據,盡可能達到最大的覆蓋。
? ? ? ? 有效等價類:指對于程序的需求來說是合理的、有意義的輸入數據構成的集合。程序接收到有效等價類數據,可以正確執行。
? ? ? ? 無效等價類:指對程序的需求是不合理的或無意義的輸入數據所構成的集合。程序接收到無效等價類,應給出錯誤提示,或根本不讓用戶輸入。
? ? ? ? 操作步驟:
????????(1)明確需求
????????(2)劃分等價類,建立等價類表,確定有效和無效等價類
?? ??????????????先找到有效等價類(需求中給出的輸入條件)
? ? ? ? ? ? ? ? ?按照條件相反,找到一部分無效等價類
? ? ? ? ? ? ? ? ?再找特殊細節(中文、英文、小數、空格、空,具體情況具體再分析)
?? ?????注意事項:
?? ?? ? ①找一些用戶經常可能會使用的字符,那些不經常使用的可以不用添加到無效等價類中,比如數據類型:要考慮漢字、字母、特殊符號;但是不用考慮:日語、西班牙語.....
? ? ? ??②注意正數和負數的計算方法不一樣,最好將其劃分為兩個有效等價類,以便更能滿足等價類劃分法的假設條件
????????(3)根據等價類表設計測試用例
? ? ? ? ? ? ? ? ?在保證其它控件輸入正確的情況下,逐一對某一個控件進行測試。
二、邊界值?(對輸入或輸出的邊界值進行測試)
? ? ? ? 作用:作為對等價類劃分法的補充,其測試用例來自等價類的邊界。大量的錯誤是發生在輸入或輸出范圍的邊界上,而不是發生在輸入輸出范圍的內部。針對各種邊界情況設計測試用例,可以查出更多的錯誤。
? ? ? ? 應用場合:只要有數據輸入的地方,一般就可以使用邊界值。
? ? ? ? 與等價類的區別:邊界值分析不是從某等價類中隨便挑一個作為代表,而是使這個等價類的每個邊界都要作為測試條件。邊界值分析不僅考慮輸入條件,還要考慮輸出空間產生的測試情況。
? ? ? ??邊界取值規則:選取正好等于,剛剛大于或剛剛小于邊界的值作為測試數據,而不是選取等價類中的典型值或任意值作為測試數據。
? ? ? ? 操作步驟:
????????(1)明確需求,劃分好有效等價類和無效等價類
????????(2)通常輸入和輸出等價類的邊界,就是應著重測試的邊界情況
????????(3)根據分析的數據設置測試用例
? ? ? ? 用例優化:
????????一條測試用例盡可能覆蓋多的現在還有沒有覆蓋到的有效等價類,一條用例最多只能包含一條無效等價類。將所有的邊界值,區分為有效等價類和無效等價類,區分好后,再按照上一句話進行用例的優化。
三、因果圖(通過帶箭頭的線,將質量問題與原因之間的關系表示出來,是分析影響產品質量的諸因素之間關系的一種工具;根據輸入條件的組合、約束關系與輸出條件的因果關系,分析輸入條件的各種組合情況,從而設計測試用例的方法。)
? ? ? ? 使用場合:有多個輸入條件,輸入條件之間可以進行組合,每種輸入組合都有對應的一個輸出結果。
? ? ? ?因(輸入條件)、果(輸出條件)之間的關系:恒等、非、與、或
????????
? ? ? ? 因與因之間的約束關系:互斥、包含、唯一、要求
????????
? ? ? ? 果與果之間的約束關系:強制
????????
? ? ? ? 操作步驟:
????????(1)分析需求,讀懂需求
????????(2)找出所有的輸入條件,并對所有條件進行統一編號
????????(3)找出所有的輸出結果,并對輸出結果進行統一編號
????????(4)明確所有輸入條件之間的制約關系以及組合關系
?? ??????????????哪些條件可以組合在一起,哪些不能
????????(5)根據輸入條件的限制,繪制因果圖
????????(6)找出什么樣的輸入條件組合會產生哪種輸出結果,并根據組合關系繪制因果圖
????????(7)根據因果圖來設計測試用例
?????????注意:因果圖可以將種輸入條件組合和對應的輸出組合,單獨繪制一張因果圖,也可以將所有的組合繪制在一張圖里面。可以添加中間狀態,從而讓因果圖的可讀性更強,如果輸入控件太多,會導致因果圖非常復雜,所以說這種情況下不建議使用因果圖。
四、判定表(將所有的組合情況都會羅列出來,類似于窮舉測試)
? ? ? ? 使用場景:和因果圖的使用場合一樣,一個功能,有多個輸入條件,并且輸入條件之間可以進行組合,每種輸入條件的組合都有對應的輸出結果。
? ? ? ? 相關概念:判定表也稱決策表,能表示輸入條件的組合,以及與每一輸入組合對應的動作組合。判定表法主要側重輸入條件之間的邏輯關系。
????????條件樁:輸入條件
????????條件項:輸入條件的組合
????????動作樁:輸出的結果
????????動作項:輸出結果的組合
? ? ? ? 操作步驟:
????????(1)分析需求,列出條件樁和動作樁
????????(2)對所有條件項進行組合,把組合情況羅列出來
? ? ? ? ? ? ? ? ?條件組合的數量2^n,n指輸入條件的個數
????????(3)對所有輸入組合進行檢查,將不合理的輸入組合刪除
????????(4)明確每個組合對應的動作項,形成判定表
????????(5)根據判定表設計測試用例,每一列就是一條測試用例
? ? ? ? 簡化(規則合并):
????????????????前提:同時滿足①動作項完全一樣②每個用例的條件只有一個不同
? ? ? ? ? ? ? ? 合并可能會存在漏測的風險:程序對于某個條件有不同的分支,若錯誤的將其合并,導致某條或某些路徑沒有被測試覆蓋,造成漏測。(原因:條件類似且動作相同的路徑,在程序內部可能有不同的分支,簡化會喪失對某些程序分支的覆蓋)。
總結
以上是生活随笔為你收集整理的软件测试-黑盒测试方法(一)---等价类划分、边界值、因果图、判定表的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Python基础之函数
- 下一篇: Django第二篇