- 測試的概念:
- 白盒測試
- 黑盒測試
- 白盒測試、黑盒測試優劣比較
- 測試用例的設計
一般而言,在所有的方法中效率最低的是隨機輸入測試,即在所有可能的輸入值中隨機選取某個子集來對程序進行測試的過程。
白盒測試的方法:1)語句覆蓋。2)判定覆蓋。3)條件覆蓋。4)判定/條件覆蓋。5)多重條件覆蓋。
1.>語句覆蓋:較弱的准則,將程序中的每條語句至少執行一次。
2.>判定覆蓋或分支覆蓋:較強的邏輯覆蓋准則,必需編寫足夠的測試用例,使得每個判斷都至少有一個為真和為假的輸出結果。也就是說每條分支路勁都必須至少遍歷一次
3.>條件覆蓋:比判定覆蓋更強的准則,條件覆蓋要編寫足夠的測試用例以確保將一個判斷中的每個條件的所有可能的結果至少執行一次。
4.>判定/條件覆蓋:設計出充足的測試用例,將一個判斷中的每個條件的所有可能的結果至少執行一次,將每個判斷的所有可能的結果至少執行一次,將每個入口點都至少調用一次。
5.> 多重條件覆蓋:要求編寫足夠多的測試用例,將每個判定中的所有可能的條件結果的組合,以及所有的入口點都至少執行一次。 總的來說,對於包含每個判斷只存在一種條件的程序,最簡單的測試准則就是設計出足夠數量的測試用例,實現:1)將每個判斷的所有結果 都至少執行一次;2)將所有的程序入口(例如入口點或ON單元)都至少調用一次,以確保全部的語句都至少執行一次。而對於包含多重條件判斷的程序最簡單的測試准則是設計出足夠數量的測試用例,將每個判斷的所有可能的條件結果的組合,以及所有的入口點都至少執行一次(加入“可能” 二字, 是因為有些組合情況難以生成)。
黑盒測試的方法:1)等價類划分。2)邊界值分析。3)因果圖分析。4)錯誤猜想。
1.>等價類划分:1)確定等價類;2)生成測試用例。
確定等價類:選取每一個輸入條件(通常是規格說明中的一個句子或短語)並將其划分為兩個或更多的組。有效等價類(代表對程序的有效輸入)無效等價類(代表的則是其他任何可能的輸入條件,即不正確的輸入值)。
生成測試用例:1)為每個等價類設置一個不同的編號。2)編寫新的測試用例,盡可能的覆蓋那些未被覆蓋的有效等價類,直到所有的有效等價類都被測試用例覆蓋(包含進去)。3)編寫新的用例,覆蓋一個且僅一個尚未被涵蓋的無效等價類,直到所有的無效等價類都被測試用例所覆蓋。
2.>邊界值分析:指輸入和輸出等價類中的那些恰好處於邊界、或超越邊界、或在邊界以下的狀態。
1)與從等價類中挑選出任意一個元素作為代表不同,邊界值分析需要選擇一個或多個元素,以便等價類的每個邊界都經過一次測試。
2)與僅僅關注輸入條件(輸入空間)不同,還需要考慮從結果空間(輸出等價類)設計測試用例。
3.>因果圖:是一種形式語言,用自然語言描述的規格說明可以轉換為因果圖。因果圖實際上是一種數字邏輯電路(一個組合的邏輯網絡),但沒有使用標准的電子符號,而是使用了稍微簡單點的符號。
1) 將規格說明分解為可執行的片段。
2) 確定規格說明中的因果關系。
3) 分析規格說明的語義內容,並將其轉換為連接因果關系的布爾圖。所謂的因果圖。
4) 給圖加上注解符號,說明由於語法或環境的限制而不能聯系起來的“因”和“果”。
5) 通過仔細的跟蹤圖中的狀態變化情況,將因果圖轉換成一個有限項的判定表。表中的每一列代表一個測試用例。
6) 將判定表中的列轉換成測試用例。
因果圖方法是一個根據條件的組合而生成測試用例的系統性的方法。可以替代這種方法的是特殊選取的條件組合,但在這個過程中,很可能會遺漏很多可由因果圖方法確定的“令人感興趣”的測試用例。
4.>錯誤猜測:利用直覺和經驗猜測出錯的可能類型,然后編寫測試用例來暴露這些錯誤。
測試策略:1)如果規格說明中包含輸入條件組合的情況,應首先使用因果圖分析方法。 2)在任何情況下都應使用邊界值分析方法。3)應為輸入和輸出確定有效和無效等價類,在必要情況下對上面確認的測試用例進行補充。 4)使用錯誤猜測技術增加更多的測試用例。5)針對上述測試用例集檢查程序的邏輯結構。