白盒測試方法:工具
1 程序結構分析:測試
程序的結構形式是白盒測試的主要依據。程序結構分析包括: 優化
一、控制流分析: 設計
對於程序結構提出如下4點基本要求,這些要求是寫出的程序不該包含:blog
① 轉向並不存在的標號; 開發
② 沒有用的語句標號;編譯器
③ 從程序入口進入後沒法達到的語句;it
目前主要是經過編譯器和程序分析工具來實現程序控制流分析。編譯
二、數據流分析: 容器
三、信息流分析 :
2 邏輯覆蓋:
一、語句覆蓋:
爲方便討論,咱們將結合一程序段加以說明各類邏輯覆蓋則:
IF (( A > 1) AND ( B = 0 ))THEN
X = X / A
IF (( A = 2) OR ( X > 1 ) THEN
X = X + 1
其中「AND」和「OR」是兩個邏輯運算符。右圖給出了它的流程圖。a、b、c、d和e是控制流上的若干程序點。
該程序共有4條語句,其中2條條件判斷語句,2條賦值語句。
語句覆蓋的含意是,在測試時,首先設計若干個測試用例,而後運行被測程序,使程序中的每一個可執行語句至少執行一次。
對於上述程序段,選用的測試用例是:A=2,B=0,X=3 case1
則程序按路徑a c e執行。這樣該程序段的4個語句均獲得執行,從而做到了語句覆蓋。
二、斷定覆蓋:
按斷定覆蓋準則進行測試是指,設計若干測試用例,運行被側程序,使得程序中每一個判斷的取真分支和取假分支至少經歷一次,即判斷的真假值均曾被知足。
斷定覆蓋又稱爲分支覆蓋。
仍以上述程序段爲例,若選用的兩組測試用例是: A=2,B=0,X=3; A=1,B=0,X=1
則可分別執行路徑ace和abd,從而使兩個判斷的4個分支c、e和b、d分別獲得覆蓋。
三、條件覆蓋:
條件覆蓋是指,設計若干測試用例,執行被測程序之後,要使每一個判斷中每一個條件的可能取值至少知足一次。
四、斷定-條件覆蓋:
斷定-條件覆蓋要求設計足夠的測試用例,使得判斷中每一個條件的全部可能至少出現一次,而且每一個判斷自己的斷定結果也至少出現一次。
五、路徑覆蓋:
按路徑覆蓋要求進行測試是指,設計足夠多測試用例,要求覆蓋程序中全部可能的路徑
六、測試覆蓋準則:
一、FOSTER的ESTCA覆蓋準則
Foster 經過大量的實驗肯定了程序中謂詞最容易出錯的部分,得出了一套錯誤敏感測試用例分析ESTCA (Error Sensitive Test Cases Analysis)規則。事實上,規則十分簡單:
[規則1] 對於A rel B(rel能夠是<, =和>)型的分支謂詞,應適當地選擇A與B的值,使得測試執行到該分支語句時,A<B, A=B和A>B的狀況分別出現一次。
[規則2] 對於A rel1 C(rel1能夠是>或是<,A是變量,C是常量)型的分支謂詞,當rel1爲<時,應適當地選擇A的值,使:
A = C - M
(M是距C最小的容器允許正數,若A和C均爲整型時,M = 1)。一樣,當rel1爲>時,應適當地選擇A,使:
A = C + M
[規則3] 對外部輸入變量賦值,使其在每一測試用例中均有不一樣的值與符號,並與同一組測試用例中其它變量的值與符合不一致。
3 程序插裝:
4 其餘白盒測試方法簡介:
一、域測試:
一、分支問題
二、二義性問題
三、大程序問題
三、Z路徑覆蓋
四、程序變異
3.Z路徑覆蓋:
4.程序變異: