今天去面試,技術面試官問我白盒測試具體是怎么個過程(我上家公司是做白盒測試工具的,我的上一份工作就是測試這個白盒測試工具)
我所理解的白盒測試過程,就是先了解被測模塊內部結構,基於邏輯來設計用例來測試,白盒測試的標准主要是覆蓋率數據
覆蓋率分為,基本語句塊覆蓋率SC0,條件真語句塊覆蓋率TRUE,條件假語句覆蓋率FALSE,條件真假語句都執行覆蓋率BOTH,條件分支語句覆蓋Branch,和判定覆蓋C/DC(條件真假分支都覆蓋),修正判定覆蓋MC/DC(這個需要足夠的測試用例來確定各個條件能夠影響到包含的判定的結果。要求滿足兩個條件:首先,每一個程序模塊的入口和出口點都要考慮至少要被調用一次,每個程序的判定到所有可能的結果值要至少轉換一次;其次,程序的判定被分解為通過邏輯操作符(and、or)連接的布爾條件,每個條件對於判定的結果值是獨立不同的)
白盒測試,一部分是靜態測試,即分析代碼是否規范,代碼結構分析,另一部分就是動態測試,即設計預期輸入,查看輸出是否符合預期結果。
以上,是我回答面試官的問題;
面試官認為我回答的比較淺面,沒有講到具體怎么去實現,這就有點讓我怯場了,當時是面試官又問了其它的,然后回來后,我也是及時搜索相關詞條(百度),補充下白盒測試其它的方法。
如下:
白盒測試的測試方法中運用最為廣泛的是基本路徑測試法。
工具方法
2.程序的
控制流圖:描述程序控制流的一種圖示方法。
流圖只有二種圖形符號:
1.圖中的每一個圓稱為流圖的結點,代表一條或多條語句。
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