白盒測試,又稱結構測試,主要用于單元測試階段。它的前提是可以把程序看成裝在一個透明的白箱子裡,測試者完全知道程序的結構和處理算法。這種方法按照程序内部邏輯設計測試用例,檢測程序中的主要執行通路是否都能按預定要求正常工作。
白盒測試根據軟件的内部邏輯設計測試用例,常用的技術是邏輯覆蓋,主要的覆蓋标準有 6 種:語句覆蓋、判定覆蓋、條件覆蓋、判定/條件覆蓋、組合條件覆蓋和路徑覆蓋。
(1)語句覆蓋。語句覆蓋是指選擇足夠多的測試用例,使得運行這些測試用例時,被測程序的每個語句至少執行一次。 很顯然,語句覆蓋是一種很弱的覆蓋标準。
(2)判定覆蓋。判定覆蓋又稱分支覆蓋,它的含義是,不僅每個語句至少執行一次,而且每個判定的每種可能的結果(分支)都至少執行一次。判定覆蓋比語句覆蓋強,但對程序邏輯的覆蓋程度仍然不高。
(3)條件覆蓋。條件覆蓋的含義是,不僅每個語句至少執行一次,而且使判定表達式中的每個條件都取得各種可能的結果。條件覆蓋不一定包含判定覆蓋,判定覆蓋也不一定包含條件覆蓋。
(4)判定/條件覆蓋。同時滿足判定覆蓋和條件覆蓋的邏輯覆蓋稱為判定/條件覆蓋。
它的含義是,選取足夠的測試用例,使得判定表達式中每個條件的所有可能結果至少出現一
次,而且每個判定本身的所有可能結果也至少出現一次。
(5)條件組合覆蓋。條件組合覆蓋的含義是,選取足夠的測試用例,使得每個判定表達式中條件結果的所有可能組合至少出現一次。
顯然,滿足條件組合覆蓋的測試用例,也一定滿足判定/條件覆蓋。因此,條件組合覆蓋是上述 5 種覆蓋标準中最強的一種。然而,條件組合覆蓋還不能保證程序中所有可能的路徑都至少經過一次。
(6)路徑覆蓋。路徑覆蓋的含義是,選取足夠的測試用例,使得程序的每條可能執行到的路徑都至少經過一次(如果程序中有環路,則要求每條環路路徑至少經過一次)。
2.黑盒測試黑盒測試,又稱功能測試,主要用于集成測試和确認測試階段。它把軟件看作一個不透明的黑箱子,完全不考慮(或不了解)軟件的内部結構和處理算法,它隻檢查軟件功能是否能按照軟件需求說明書的要求正常使用,軟件是否能适當地接收輸入數據并産生正确的輸出信息,軟件運行過程中能否保持外部信息(例如文件和數據庫)的完整性等。
黑盒測試根據軟件需求說明書所規定的功能來設計測試用例,它不考慮軟件的内部結構和處理算法。
常用的黑盒測試技術包括等價類劃分、邊值分析、錯誤推測和因果圖等。
(1)等價類劃分
在設計測試用例時,等價類劃分是用得最多的一種黑盒測試方法。
所謂等價類就是某個輸入域的集合,對于一個等價類中的輸入值來說,它們揭示程序中錯誤
的作用是等效的。也就是說,如果等價類中的一個輸入數據能檢測出一個錯誤,那麼等價類
中的其他輸入數據也能檢測出同一個錯誤;反之,如果等價類中的一個輸入數據不能檢測出
某個錯誤,那麼等價類中的其他輸入數據也不能檢測出這一錯誤(除非這個等價類的某個子
集還屬于另一等價類)。
無效等價類是用來測試非正常的輸入數據的,因此每個無效等價類
都有可能查出軟件中的錯誤,所以要為每個無效等價類設計一個測試用例。
(2)邊值分析
經驗表明,軟件在處理邊界情況時最容易出錯。設計一些測試用例,使軟件恰好運行在邊界附近,暴露出軟件錯誤的可能性會更大一些。
通常,每一個等價類的邊界,都應該着重測試,選取的測試數據應該恰好等于、稍小于或稍大于邊界值。
(3)錯誤推測
錯誤推測法主要依靠測試人員的經驗和直覺,從各種可能的測試方案中選出一些最可能引起程序出錯的方案。
(4)因果圖
因果圖法是根據輸入條件與輸出結果之間的因果關系來設計測試用例的,它首先檢查輸入條件的各種組合情況,并找出輸出結果對輸入條件的依賴關系,然後為每種輸出條件的組合設計測試用例。
,更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!