白盒測試到底是什么?


今天去面試,技術面試官問我白盒測試具體是怎么個過程(我上家公司是做白盒測試工具的,我的上一份工作就是測試這個白盒測試工具)

我所理解的白盒測試過程,就是先了解被測模塊內部結構,基於邏輯來設計用例來測試,白盒測試的標准主要是覆蓋率數據

覆蓋率分為,基本語句塊覆蓋率SC0,條件真語句塊覆蓋率TRUE,條件假語句覆蓋率FALSE,條件真假語句都執行覆蓋率BOTH,條件分支語句覆蓋Branch,和判定覆蓋C/DC(條件真假分支都覆蓋),修正判定覆蓋MC/DC(這個需要足夠的測試用例來確定各個條件能夠影響到包含的判定的結果。要求滿足兩個條件:首先,每一個程序模塊的入口和出口點都要考慮至少要被調用一次,每個程序的判定到所有可能的結果值要至少轉換一次;其次,程序的判定被分解為通過邏輯操作符(and、or)連接的布爾條件,每個條件對於判定的結果值是獨立不同的)

白盒測試,一部分是靜態測試,即分析代碼是否規范,代碼結構分析,另一部分就是動態測試,即設計預期輸入,查看輸出是否符合預期結果。

以上,是我回答面試官的問題;

面試官認為我回答的比較淺面,沒有講到具體怎么去實現,這就有點讓我怯場了,當時是面試官又問了其它的,然后回來后,我也是及時搜索相關詞條(百度),補充下白盒測試其它的方法。

如下:

白盒測試的測試方法中運用最為廣泛的是基本路徑測試法。
基本 路徑測試法是在程序控制流圖的基礎上,通過分析控制構造的環路復雜性,導出基本可執行 路徑集合,從而設計測試 用例的方法。設計出的 測試用例要保證在測試中 程序的每個可執行語句至少執行一次。
程序控制流圖的基礎上,通過分析控制構造的環路復雜性,導出基本可執行路徑集合,從而設計 測試用例。包括以下4個步驟和一個工具方法:
1. 程序 控制流圖:描述程序控制流的一種圖示方法。
2. 程序 圈復雜度:McCabe復雜性度量。從 程序的環路復雜性可導出程序基本 路徑集合中的獨立路徑條數,這是確定程序中每個可執行語句至少執行一次所必須的測試用例數目的 上界
3. 導出 測試用例:根據圈復雜度和 程序結構設計用例數據輸入和預期結果。
4. 准備 測試用例:確保基本 路徑集中的每一條路徑的執行。

工具方法

1.圖形 矩陣:是在基本 路徑測試中起輔助作用的 軟件工具,利用它可以實現自動地確定一個基本路徑集。
2.程序的 控制流圖:描述程序控制流的一種圖示方法。
3.圓圈稱為 控制流圖的一個結點,表示一個或多個無分支的語句或源 程序語句。
流圖只有二種圖形符號:
1.圖中的每一個圓稱為流圖的結點,代表一條或多條語句。
2.流圖中的箭頭稱為邊或連接,代表 控制流,任何過程設計都要被翻譯成 控制流圖
在將 程序流程圖簡化成 控制流圖時,應注意:
1.在選擇或多分支結構中,分支的匯聚處應有一個匯聚結點。
2.邊和結點圈定的區域叫做區域,當對區域計數時,圖形外的區域也應記為一個區域。

步驟

基本 路徑測試法的步驟:
第一步:畫出 控制流圖
流程圖用來描述程序控制結構。可將 流程圖映射到一個相應的流圖(假設流程圖的菱形決定框中不包含復合條件)。在流圖中,每一個圓,稱為流圖的結點,代表一個或多個語句。一個處理方框序列和一個菱形決測框可被映射為一個結點,流圖中的箭頭,稱為邊或連接,代表 控制流,類似於流程圖中的箭頭。一條邊必須終止於一個結點,即使該結點並不代表任何語句(例如:if-else-then結構)。由邊和結點限定的范圍稱為區域。計算區域時應包括圖外部的范圍。
第二步:計算圈復雜度
圈復雜度是一種為 程序邏輯復雜性提供定量測度的 軟件度量,將該度量用於計算程序的基本的獨立路徑數目,為確保所有語句至少執行一次的測試數量的 上界。獨立路徑必須包含一條在定義之前不曾用到的邊。
有以下三種方法計算圈復雜度:
流圖中區域的數量對應於環型的復雜性;
給定流圖G的圈復雜度V(G),定義為V(G)=E-N+2,E是流圖中邊的數量,N是流圖中結點的數量;
給定流圖G的圈復雜度V(G),定義為V(G)=P+1,P是流圖G中判定結點的數量。
第三步:導出 測試用例 根據上面的計算方法,可得出四個獨立的路徑。(一條獨立路徑是指,和其他的獨立路徑相比,至少引入一個新處理語句或一個新判斷的 程序通路。V(G)值正好等於該 程序的獨立路徑的條數。)
路徑1:4-14
路徑2:4-6-7-14
路徑3:4-6-8-10-13-4-14
路徑4:4-6-8-11-13-4-14
根據上面的獨立 路徑,去設計輸入數據,使 程序分別執行到上面四條路徑。

 


免責聲明!

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



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