白盒測試中幾種邏輯覆蓋法及其優缺點

語句覆蓋法:

詳述:

https://blog.csdn.net/hanhanwanghaha/article/details/105633019

定義:設計若干個測試用例,使被測試程序中的每條可執行語句至少執行一次。比如說我們測試用例裏面有10個語句,那麼這10個語句都要被測試到。
優點:可以很直觀地從源代碼得到測試用例,無須細分每條判定表達式 ;
缺點:種測試方法僅僅針對程序邏輯中顯式存在的語句,但對於隱藏的條件和可能到達的隱式邏輯分支,是無法測試的。例如在判斷中把&&錯誤的寫成了||,測試用例仍可以覆蓋所有的執行語句。 一般認爲“語句覆蓋”是很不充分的一種標準,是最弱的邏輯覆蓋準則。

判定覆蓋法:

詳述:

https://blog.csdn.net/hanhanwanghaha/article/details/105641120

定義:判定覆蓋是設計足夠多的測試用例,使得程序中的每一個條件判斷至少獲得一次“真”和一次“假”,即使得程序流程圖中的每一個真假分支至少被執行一次。
優點:判定覆蓋具有比語句覆蓋更強的測試能力,同樣也無須細分每條判定表達式。
缺點:判定覆蓋能夠滿足條件的要求,但是不能對判斷條件進行檢查。

條件覆蓋法:

詳述:

https://blog.csdn.net/hanhanwanghaha/article/details/105653347

定義:設計測試用例,使得判定中的每個條件至少有一次取得真值,一次取得假值。所以,不僅程序中的每個語句至少被執行一次,而且使每個判定表達式中的每個條件都取到各種可能的結果。
優點:條件覆蓋比判定覆蓋增加了對判定中所有條件的測試,對於條件來說更加全面
缺點:但條件覆蓋並不能完全保證判定覆蓋。要達到條件覆蓋,需要足夠多的測試用例,但條件覆蓋並不能保證判定覆蓋。條件覆蓋只能保證每個條件至少有一次爲真,而不考慮所有的判定結果。

判定/條件覆蓋法:

詳述:

https://blog.csdn.net/hanhanwanghaha/article/details/105656204

定義:設計足夠多的測試用例,使被測程序中每個判定的每個條件的所有可能取值(真假)至少執行一次,並且每個判定的所有可能(真假)分支也至少執行一次 。通俗來講,就是條件和判定覆蓋的昇華!
優點:判定/條件覆蓋滿足判定覆蓋準則和條件覆蓋準則,彌補了二者的不足。
缺點:判定/條件覆蓋準則的缺點是未考慮條件的邏輯情況,對條件的依賴性很大,如果條件錯了,也無法判定出來。

條件組合覆蓋法:

詳述:

https://blog.csdn.net/hanhanwanghaha/article/details/105679336

定義:設計足夠多的測試用例,使被測程序中每個判定的所有可能的條件取值組合至少執行一次。
優點:多重條件覆蓋準則滿足判定覆蓋、條件覆蓋和判定/條件覆蓋準則。
缺點:
1.線性地增加了測試用例的數量。
2 可能不會覆蓋所有的路徑,例如上圖的abdf路徑就沒有執行。

路徑覆蓋法:

詳述:

https://blog.csdn.net/hanhanwanghaha/article/details/105680025

定義:運行所測程序,要覆蓋程序中所有可能的路徑。
優點:這種測試方法可以對程序進行徹底的測試路徑覆蓋面比前面五種都廣。
缺點:由於路徑覆蓋需要對所有可能的路徑進行測試(包括循環、條件組合、分支選擇等),那麼需要設計大量、複雜的測試用例,使得工作量呈指數級增長。而在有些情況下,一些執行路徑是不可能被執行的。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章