朱立一


【摘要】軟件測試作為軟件質量保證的重要手段備受關注。邏輯覆蓋測試技術成為了白盒測試的主要方法,本文詳細闡述了各種邏輯覆蓋方法,通過案例分析說明了各目的優缺點。
【關鍵詞】白盒測試 邏輯覆蓋 測試原則
1.引言
隨著軟件產業的蓬勃發展,軟件質量成為了計算機軟件備受關注的焦點。軟件測試成為了保證軟件質量的重要手段,為軟件的正確性、健壯性、可維護性等提供了技術支持。軟件測試是利用測試工具,選擇測試方法,按照測試計計劃,通過執行測試用例,對軟件功能和性能進行檢測。軟件測試從軟件的透明性上分為白盒測試和黑盒測試。白盒測試,以程序內部結構為基礎,在程序流程圖的框架下,檢測程序源代碼的執行情況和正確性。[1]
白盒測試的主要方法有程序結構分析、程序邏輯覆蓋、基本路徑測試等。其中邏輯覆蓋在白盒測試起到了重要作用。
2.邏輯覆蓋技術
根據覆蓋測試的目標不同,邏輯覆蓋分為語句覆蓋、判定覆蓋、判定一條件覆蓋、條件組臺覆蓋和路徑覆蓋。
(1)語句覆蓋:設計多個測試用例,執行被測程序,使得每一條執行語句至少執行一次。又稱為點覆蓋,只針對每一條語句,忽略了程序的邏輯性,其邏輯覆蓋性最低。
(2)判定覆蓋:設計多個測試用例,執行被測程序,使得程序中每個判斷的真假都至少執行一次。又稱為分支覆蓋,只保證每條分支都執行了。邏輯覆蓋性強與語句覆蓋。
(3)條件覆蓋:設計多個測試用例,執行被測程序,使得程序中判斷的組成條件的真假都至少執行一次。只針對每個條件的結果的真假均出現,其不一定能夠滿足判斷覆蓋的準則。
(4)判定一條件覆蓋:設計多個測試用例,執行被測程序,使得程序中判斷的每個條件的真假都至少執行一次,每個判斷的真假也至少執行一次,要求每個判斷的所有條件真假出現的組合均執行一次。
(5)條件組合覆蓋:設計多個測試用例,使得被測程序中每個判斷的所有條件取值至少執行一次。相當于對所有條件取值進行笛卡爾積,只針對每個判斷,不存在交叉組合。
(6)路徑覆蓋:構造從源節點到匯節點的路徑集合,設計多個測試用例,使得每一條路徑至少執行一次。[2]
3.案例分析
本文構造程序數據流程圖,如圖I所示。有兩個判斷語句,判斷1:條件1&&條件2,判斷2:條件3!!條件4,通過設計測試案例來說明各種邏輯覆蓋的優缺點。測試用例如圖2所示:
從上述測試用例中,可以看出語句覆蓋只從源代碼角度考慮每條語句的執行,而判定覆蓋關注每個判斷結果的真假,而不去關心語句的執行;條件覆蓋關注每個條件的真假情況是否都出現,而忽視了判斷結果的真假以及語句是否執行;判斷一條件覆蓋關心每個判定和條件的真假情況,但是忽視條件的所有組合;條件組臺覆蓋將所有的條件組合情況全部融合,但是隨著條件的增加,需要的測試用例數量會出現幾何增加。[3]
4.結語
白盒測試關心程序的內部結構,強調程序的邏輯結構,邏輯覆蓋成為了白盒測試的重點。本文利用多個測試用例來說明各種邏輯覆蓋的特點,為程序員進行測試提供一定的指導價值。
參考文獻:
[1]趙翀,孫寧.軟件測試技術一基于案例的測試[M],機械工業出版社,2011
[2]古樂,史九林.軟件測試技術概論[M],清華大學出版社,2004
[3]趙斌.軟件測試技術經典教程[M],科學出版社,2007