軟考之軟體工程 測試2

2021-05-28 10:45:12 字數 3085 閱讀 1275

下面就是舉個例子說明一下白盒測試中的六種覆蓋方法:語句覆蓋、判定覆蓋、條件覆蓋、判定條件覆蓋、條件組合覆蓋、路徑覆蓋。

白盒測試的目的:通過檢查軟體內部的邏輯結構,對軟體中的邏輯路徑進行覆蓋測試;在程式不同地方設立檢查點,檢查程式的狀態,以確定實際執行狀態與預期狀態是否一致。

白盒測試的特點:依據軟體設計說明書進行測試、對程式內部細節的嚴密檢驗、針對特定條件設計測試用例、對軟體的邏輯路徑進行覆蓋測試。

白盒測試的實施步驟:

1.測試計畫階段:根據需求說明書,制定測試進度。

2.測試設計階段:依據程式設計說明書,按照一定規範化的方法進行軟體結構劃分和設計測試用例。

3.測試執行階段:輸入測試用例,得到測試結果。

4.測試總結階段:對比測試的結果和**的預期結果,分析錯誤原因,找到並解決錯誤。

白盒測試的優缺點

1. 優點                               

·迫使測試人員去仔細思考軟體的實現

·可以檢測**中的每條分支和路徑

·揭示隱藏在**中的錯誤

·對**的測試比較徹底

·最優化   

2. 缺點

·昂貴·無法檢測**中遺漏的路徑和資料敏感性錯誤

·不驗證規格的正確性

例子:1、語句覆蓋

1)主要特點:語句覆蓋是最起碼的結構覆蓋要求,語句覆蓋要求設計足夠多的測試用例,使得程式中每條語句至少被執行一次。

2)用例設計:(如果此時將a路徑上的語句1—〉t去掉,那麼用例如下)xy

路徑15050

obde290

70obce

3)優點:可以很直觀地從源**得到測試用例,無須細分每條判定表示式。

4)缺點:由於這種測試方法僅僅針對程式邏輯中顯式存在的語句,但對於隱藏的條件和可能到達的隱式邏輯分支,是無法測試的。在本例中去掉了語句1—〉t去掉,那麼就少了一條測試路徑。在if結構中若源**沒有給出else後面的執行分支,那麼語句覆蓋測試就不會考慮這種情況。但是我們不能排除這種以外的分支不會被執行,而往往這種錯誤會經常出現。再如,在do-while結構中,語句覆蓋執行其中某乙個條件分支。那麼顯然,語句覆蓋對於多分支的邏輯運算是無法全面反映的,它只在乎執行一次,而不考慮其他情況。

2、判定覆蓋

1)主要特點:判定覆蓋又稱為分支覆蓋,它要求設計足夠多的測試用例,使得程式中每個判定至少有一次為真值,有一次為假值,即:程式中的每個分支至少執行一次。每個判斷的取真、取假至少執行一次。

2)用例設計:xy

路徑19090

oae2

5050

obde390

70obce

3)優點:判定覆蓋比語句覆蓋要多幾乎一倍的測試路徑,當然也就具有比語句覆蓋更強的測試能力。同樣判定覆蓋也具有和語句覆蓋一樣的簡單性,無須細分每個判定就可以得到測試用例。

4)缺點:往往大部分的判定語句是由多個邏輯條件組合而成(如,判定語句中包含and、or、case),若僅僅判斷其整個最終結果,而忽略每個條件的取值情況,必然會遺漏部分測試路徑。

3、條件覆蓋

1)主要特點:條件覆蓋要求設計足夠多的測試用例,使得判定中的每個條件獲得各種可能的結果,即每個條件至少有一次為真值,有一次為假值。

2)用例設計:   xy

路徑19070

obc2

4070

obd

3)優點:顯然條件覆蓋比判定覆蓋,增加了對符合判定情況的測試,增加了測試路徑。

4)缺點:要達到條件覆蓋,需要足夠多的測試用例,但條件覆蓋並不能保證判定覆蓋。條件覆蓋只能保證每個條件至少有一次為真,而不考慮所有的判定結果。

4、判定/條件覆蓋

1)主要特點:設計足夠多的測試用例,使得判定中每個條件的所有可能結果至少出現一次,每個判定本身所有可能結果也至少出現一次。

2)用例設計:   xy

路徑19090

oae2

5050

obde390

70obce470

90obce

3)優點:判定/條件覆蓋滿足判定覆蓋準則和條件覆蓋準則,彌補了二者的不足。

4)缺點:判定/條件覆蓋準則的缺點是未考慮條件的組合情況。

5、組合覆蓋

1)主要特點:要求設計足夠多的測試用例,使得每個判定中條件結果的所有可能組合至少出現一次。

2)用例設計:   xy

路徑19090

oae2

9070

obce390

30obde470

90obce530

90obde670

70obde750

50obde

3)優點:多重條件覆蓋準則滿足判定覆蓋、條件覆蓋和判定/條件覆蓋準則。更改的判定/條件覆蓋要求設計足夠多的測試用例,使得判定中每個條件的所有可能結果至少出現一次,每個判定本身的所有可能結果也至少出現一次。並且每個條件都顯示能單獨影響判定結果。

4)缺點:線性地增加了測試用例的數量。

6、路徑覆蓋

1)主要特點:設計足夠的測試用例,覆蓋程式中所有可能的路徑。

2)用例設計:   xy

路徑19090

oae2

5050

obde390

70obce470

90obce

3)優點:這種測試方法可以對程式進行徹底的測試,比前面五種的覆蓋面都廣。

4)缺點:由於路徑覆蓋需要對所有可能的路徑進行測試(包括迴圈、條件組合、分支選擇等),那麼需要設計大量、複雜的測試用例,使得工作量呈指數級增長。而在有些情況下,一些執行路徑是不可能被執行的,如:

if (!a)b++;

if (!a)d--;

白盒測試是一種被廣泛使用的邏輯測試方法,是由程式內部邏輯驅動的一種單元測試方法。只有對程式內部十分了解才能進行適度有效的白盒測試。但是貫穿在程式內部的邏輯存在著不確定性和無窮性,尤其對於大規模複雜軟體。因此我們不能窮舉所有的邏輯路徑,即使窮舉也未必會帶來好運(窮舉不能查出程式邏輯規則錯誤,不能查出資料相關錯誤,不能查出程式遺漏的路徑)。

那麼正確使用白盒測試,就要先從**分析入手,根據不同的**邏輯規則、語句執**況,選用適合的覆蓋方法。任何乙個高效的測試用例,都是針對具體測試場景的。邏輯測試不是片面的測試正確的結果或是測試錯誤的結果,而是盡可能全面地覆蓋每乙個邏輯路徑

軟考之軟體工程

考試結束了 雖然平時有總結 但是總還是沒有那麼系統的寫篇部落格 現在後悔還來得及不 顯然來不及了 不過不管怎麼樣總要再對自己的總結做乙個總結 不能錯過了考試又錯過了學習的過程 今天從軟體工程說起 開始的時候對這裡並沒有太在意 因為都是概念性的東西 在自己的內心裡總覺得那些計算題要比概念簡單的多 所以...

軟考複習之軟體工程專案管理2

iso iec軟體質量模型由三個層次組成 第一層是質量特性,第二層是質量子特性 第三層是度量指標 軟體評審的內容包括 設計質量評審,程式質量評審,執行環境介面的評審 評審的目標是 為了發現軟體的錯誤 採用mccabe度量法計算環路複雜度為 頂點數為m 邊數為n 圖中的強聯通分量 p 程式複雜度是 m...

軟考 軟體工程 軟體過程模型

演化模型 瀑布模型 增量模型 原型模型 螺旋模型 噴泉模型 基於構件的開發模型 形式化方法模型 條件線性順序 瀑布的基本成分和原型的迭代 需求模糊不清 風險分析 使用者需求為動力,物件作為驅動的模型 用預先包裝的構件來構造系統 建立在嚴格數學基礎上 清晰明確的需求 適合於面向的開發方法 優點有瀑布所...