软件说明书可以进行百合测试吗,软件工程白盒测试.doc.doc
軟件工程白盒測試.doc
白盒測試
白盒測試以程序的結構為依據,所有又稱為結構測試。早期的白盒測試把注意力放在流程圖的各個判定框,使用不同的邏輯覆蓋標準來表達對程序進行測試的詳盡程度。隨著測試技術的發展,人們越來越重視對程序執行路徑的考察,并且用程序圖代替流程圖來設計測試用例。為了區分這兩種白盒測試技術,以下把前者稱為邏輯覆蓋測試,后者稱為路徑測試。
一、邏輯覆蓋測試
邏輯覆蓋測試法(Logic Coverage Testing)考察的重點是圖中的判定框(菱形框)。因為這些判定若不是與選擇結構有關,就是與循環結構有關,是決定程序結構的關鍵成分。
按照對被測程序所作測試的有效程度,邏輯覆蓋測試可由弱到強區分為5種覆蓋標準:
發現錯誤的能力
弱
強語句覆蓋每條語句至少執行一次判定覆蓋每一判定的每個分支至少執行一次條件覆蓋每一判定中的每個條件,分別按“真”、“假”至少各執行一次判定/條件覆蓋同時滿足判定覆蓋和條件覆蓋的要求條件組合覆蓋求出判定中所有條件的各種可能組合值,每一可能的條件組合至少執行一次
舉例說明:
有一個程序段如下:
a
b F T c
d F T e
語句覆蓋:設計若干個測試用例,運行被測程序,使得每一個可執行語句至少執行一次。例如在上圖所給出的例子中,正好所有的可執行語句都在路徑L1(a->c->e)上,所以選擇路徑L1設計測試用例,就可以覆蓋所有的可執行語句。
L1(a->c->e)
={(A>1) and (B=0) } and {(A=2) or (x/A>1)}
=(A=2) and (B=0) or {(A>1) and (B=0) and (x/A>1)}
測試用例可以設計為:【(2,0,4),(2,0,3)】覆蓋ace【L1】
從程序中每個可執行語句都得到執行這一點來看,語句覆蓋的方法似乎能夠比較全面的檢驗每一個可執行語句。但與后面介紹的其它覆蓋相比,語句覆蓋是最弱的邏輯覆蓋準則。
判定覆蓋
所謂判定覆蓋就是設計若干個測試用例,運行被測試程序,使得程序中每個判斷的取真分支和取假分支至少經歷一次。判定覆蓋又稱為分支覆蓋。如上例如果選擇路徑L1(a->c->e)和L2(a->b->d),可得滿足要求得測試用例:
L2(a->b->d)
={(A<=1) or (B≠0) } and {(A≠2) and (x<=1)}
=( A<=1) and (x<=1) or {( B≠0) and (A≠2) and (x<=1)}
測試用例可以設計為:
【(2,0,4),(2,0,3)】覆蓋ace【L1】
【(1,1,1),(1,1,1)】覆蓋abd【L2】
如果選取路徑L3(a->b->e)和L4(a->c->d)
L3(a->b->e)
={(A<=1) or (B≠0) } and {(A=2) or (x>1)}
={( A<=1) and (x>1)} or {( B≠0) and (A=2) } or {( B≠0) and (x>1)}
L4(a->c->d)
={(A>1) and (B=0) } and {(A≠2) and (x/A<=1)}
還可以得到另一組可用得測試用例:
【(2,1,1),(2,1,2)】覆蓋abe【L3】
【(3,0,3),(3,1,1)】覆蓋acd【L4】
所有測試用例得取法不唯一。注意有例外情況,例如,如果把上例中第二個判定中的條件x>1錯寫成x<1,那么利用上面兩組測試用例,仍能得到同樣的結果。這表明,只是判定覆蓋,還不能保證一定能查出在判斷得條件中存在得錯誤。因此還需要更強的邏輯覆蓋準則檢驗判斷內部條件。
條件覆蓋
所謂條件覆蓋就是設計若干個測試用例,運行被測程序,使得程序中每個判斷的每個條件的可能取值至少執行一次。上例中,我們事先可對所有條件得取值加以標記。例如:
對于第一個判斷:條件A>1取真值為T1,取假值為T1
條件B=1取真值為T2,取假值為T2
對于第二個判斷:條件A=2取真值為T3,取假值為T3
條件x>1取真值為T4,取假值為T4
則可選取測試用例如下:
測試用例 通過路徑 條件取值 覆蓋分支【(2,0,4),(2,0,3)】 ace(L1) T1 T2 T3 T4 c,e
【(1,0,1),(1,0,1)】
總結
以上是生活随笔為你收集整理的软件说明书可以进行百合测试吗,软件工程白盒测试.doc.doc的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 录屏时计算机休眠,硬盘录像机里硬盘提示休
- 下一篇: 程序员的十大级别--看看你是哪个级别