




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、白盒測試的測試方法有代碼檢查法、靜態結構分析法、靜態質量度量法、邏輯覆蓋法、基本路徑測試法、域測試、符號測試、Z路徑覆蓋、程序變異。其中運用最為廣泛的是基本路徑測試法。基本路徑測試法是在程序控制流圖的基礎上,通過分析控制構造的環路復雜性,導出基本可執行路徑集合,從而設計測試用例的方法。設計出的測試用例要保證在測試中程序的每個可執行語句至少執行一次。在程序控制流圖的基礎上,通過分析控制構造的環路復雜性,導出基本可執行路徑集合,從而設計測試用例。包括以下4個步驟和一個工具方法:1. 程序的控制流圖:描述程序控制流的一種圖示方法。2. 程序圈復雜度:McCabe復雜性度量。從程序的環路復雜性可導出程
2、序基本路徑集合中的獨立路徑條數,這是確定程序中每個可執行語句至少執行一次所必須的測試用例數目的上界。3. 導出測試用例:根據圈復雜度和程序結構設計用例數據輸入和預期結果。4. 準備測試用例:確保基本路徑集中的每一條路徑的執行。工具方法:圖形矩陣:是在基本路徑測試中起輔助作用的軟件工具,利用它可以實現自動地確定一個基本路徑集。程序的控制流圖:描述程序控制流的一種圖示方法。圓圈稱為控制流圖的一個結點,表示一個或多個無分支的語句或源程序語句 流圖只有二種圖形符號:圖中的每
3、一個圓稱為流圖的結點,代表一條或多條語句。流圖中的箭頭稱為邊或連接,代表控制流任何過程設計都要被翻譯成控制流圖。如何根據程序流程圖畫出控制流程圖?在將程序流程圖簡化成控制流圖時,應注意:n 在選擇或多分支結構中,分支的匯聚處應有一個匯聚結點。n 邊和結點圈定的區域叫做區域,當對區域計數時,圖形外的區域也應記為一個區域。如下頁圖所示 n 如果判斷中的條件表達式是由一個或多個邏輯運算符 (OR, AND, NAND, NOR) 連接的復合條件表達式,則需要改為一系列只有單條件的嵌套的判斷。例如:1 if a or b
4、2 x3 else4 y對應的邏輯為: 獨立路徑:至少沿一條新的邊移動的路徑 基本路徑測試法的步驟:o 第一步:畫出控制流圖流程圖用來描述程序控制結構。可將流程圖映射到一個相應的流圖(假設流程圖的菱形決定框中不包含復合條件)。在流圖中,每一個圓,稱為流圖的結點,代表一個或多個語句。一個處理方框序列和一個菱形決測框可被映射為一個結點,流圖中的箭頭,稱為邊或連接,代表控制流,類似于流程圖中的箭頭。一條邊必須終止于一個結點,即使該結點
5、并不代表任何語句(例如:if-else-then結構)。由邊和結點限定的范圍稱為區域。計算區域時應包括圖外部的范圍。 畫出其程序流程圖和對應的控制流圖如下 第二步:計算圈復雜度圈復雜度是一種為程序邏輯復雜性提供定量測度的軟件度量,將該度量用于計算程序的基本的獨立路徑數目,為確保所有語句至少執行一次的測試數量的上界。獨立路徑必須包含一條在定義之前不曾用到的邊。有以下三種方
6、法計算圈復雜度:流圖中區域的數量對應于環型的復雜性;給定流圖G的圈復雜度V(G),定義為V(G)=E-N+2,E是流圖中邊的數量,N是流圖中結點的數量;給定流圖G的圈復雜度V(G),定義為V(G)=P+1,P是流圖G中判定結點的數量。 第三步:導出測試用例根據上面的計算方法,可得出四個獨立的路徑。(一條獨立路徑是指,和其他的獨立路徑相比,至少引入一個新處理語句或一個新判斷的程序通路。V(G)值正好等于該程序的獨立路徑的條數。)ü 路徑1:4-14
7、2; 路徑2:4-6-7-14ü 路徑3:4-6-8-10-13-4-14ü 路徑4:4-6-8-11-13-4-14根據上面的獨立路徑,去設計輸入數據,使程序分別執行到上面四條路徑。o 第四步:準備測試用例為了確保基本路徑集中的每一條路徑的執行,根據判斷結點給出的條件,選擇適當的數據以保證某一條路徑可以被測試到,滿足上面例子基本路徑集的測試用例是: 舉例說明:例:下例程序流程圖描述了最多輸入50個值(以1作為輸入結束標志),計算其中有效的學生分數的個數、總分數和平均
8、值。 步驟1:導出過程的流圖。 步驟2:確定環形復雜性度量V(G):1)V(G)= 6 (個區域)2)V(G)=EN+2=1612+2=6其中E為流圖中的邊數,N為結點數;3)V(G)=P+1=5+1=6其中P為謂詞結點的個數。在流圖中,結點2、3、5、6、9是謂詞結點。步驟3:確定基本路徑集合(即獨立路徑集合)。于是可確定6條獨立的路徑:路徑1:1-2-9
9、-10-12路徑2:1-2-9-11-12路徑3:1-2-3-9-10-12路徑4:1-2-3-4-5-8-2路徑5:1-2-3-4-5-6-8-2路徑6:1-2-3-4-5-6-7-8-2步驟4:為每一條獨立路徑各設計一組測試用例,以便強迫程序沿著該路徑至少執行一次。1)路徑1(1-2-9-10-12)的測試用例:scorek=有效分數值,當k < i ;scorei=1, 2i50;期望結果:根據輸入的有效分數算出正確的分數個數n1、總分sum和平均分average。2)路徑2(1-2-9-11-12)的測試用例:score 1 = 1 ;期望的結果:average = 1 ,其他量
10、保持初值。3)路徑3(1-2-3-9-10-12)的測試用例:輸入多于50個有效分數,即試圖處理51個分數,要求前51個為有效分數;期望結果:n1=50、且算出正確的總分和平均分。4)路徑4(1-2-3-4-5-8-2)的測試用例:scorei=有效分數,當i<50;scorek<0, k< i ;期望結果:根據輸入的有效分數算出正確的分數個數n1、總分sum和平均分average。 連接權為“1”表示存在一個連接,在圖中如果一行有兩個或更多的元
11、素“1”,則這行所代表的結點一定是一個判定結點,通過連接矩陣中有兩個以上(包括兩個)元素為“1”的個數,就可以得到確定該圖圈復雜度的另一種算法。2.3.3 基本路徑測試法基本路徑測試法是在程序控制流圖的基礎上,通過分析控制構造的環路復雜性,導出基本可執行的路徑集合,從而設計測試用例的方法。設計出的測試用例要保證在測試中程序的每個執行語句至少執行一次。基本路徑測試法的重點內容如下:程序的控制流圖:描述程序控制流的一種圖示方法。程序環形復雜度:McCabe復雜性度量。從程序的環路復雜性可導出程序基本路徑集合中的獨立路徑條數,這是確定程序中每個可執行語句至少執行一次所必需的測試用例數目的上界。導出測
12、試用例:根據圈復雜度和程序結構設計用例數據輸入和預期結果。準備測試用例:確保基本路徑集中的每一條路徑的執行。程序控制流圖(可簡稱流圖)是對程序流程圖進行簡化后得到的,它突出表示程序控制流的結構。程序控制流圖是描述程序控制流的一種方式,其要點如下:1)圖形符號:圓圈代表一個結點,表示一個或多個無分支的語句或源程序語句。2)程序控制流邊和點圈定的部分叫做區域。當對區域計數時,圖形外的一個部分也應記為一個區域。3)判斷語句中的條件為復合條件(即條件表達式由一個或多個邏輯運算符連接的邏輯表達式(a and b))時,則需要改變復合條件的判斷為一系列只有單個條件的嵌套的判斷。結點由帶標號的圓圈表示,可代
13、表一個或多個語句、一個處理框序列和一個條件判定框(假設不包含復合條件)。控制流線由帶箭頭的弧或線表示,可稱為邊,它代表程序中的控制流。為了滿足路徑覆蓋,必須首先確定具體的路徑以及路徑的個數。我們通常采用控制流圖的邊(弧)序列和節點列表示某一條具體路徑。路徑測試就是從一個程序的入口開始,執行所經歷的各個語句的完整過程。任何關于路徑分析的測試都可以叫做路徑測試。完成路徑測試的理想情況是做到路徑覆蓋,但對于復雜性高的程序要做到所有路徑覆蓋(測試所有可執行路徑)是不可能的。在不能實現所有路徑覆蓋的前提下,如果某一程序的每一個獨立路徑都被測試過,那么可以認為程序中的每個語句都已經檢驗過了,即達到了語句覆
14、蓋。這種測試方法就是通常所說的基本路徑測試方法。基本路徑測試方法是在控制流圖的基礎上,通過分析控制結構的環形復雜度,導出執行路徑的基本集,再從該基本集設計測試用例。基本路徑測試方法包括以下4個步驟:1)畫出程序的控制流圖。2)計算程序的環形復雜度,導出程序基本路徑集中的獨立路徑條數,這是確定程序中每個可執行語句至少執行一次所必需的測試用例數目的上界。3)導出基本路徑集,確定程序的獨立路徑。4)根據步驟3)中的獨立路徑,設計測試用例的輸入數據和預期輸出。程序控制流圖如圖2-4所示。 (點擊查看大圖)圖2-4 程序控制流程程序的環形復雜度也稱為圈復雜度,它是一種為程序邏輯復雜度提供定量尺
15、度的軟件度量。將環形復雜度用于基本路徑方法,可以提供程序基本集的獨立路徑數量,確保所有語句至少執行一次測試。獨立路徑是指程序中至少引入了一個新的處理語句集合或一個新條件的程序通路,包括一組以前沒有處理的語句或條件的一條路徑。通常環形復雜度以圖論為基礎,提供軟件度量。可用如下方法來計算環形復雜度:1)控制流圖中區域的數量對應于環形復雜度。2)給定控制流圖G的環形復雜度V(G),其定義為:V(G)= E-N+2其中,E是控制流圖中邊的數量,N是控制流圖中的節點數量。計算環形復雜度如圖2-5所示。 圖2-5 計算環形復雜度圖計算結果為節點數量N=8,導出邊的數量E=10(用、編號表示),V
16、(G)= E-N+2=10-8+2= 10(條邊)- 8(個節點)+ 2 = 4,導出獨立路徑用路徑1、路徑2、路徑3、路徑4編號表示。四、基本路徑測試如果把覆蓋的路徑數壓縮到一定限度內,例如,程序中的循環體只執行零次和一次,就成為基本路徑測試。它是在程序控制流圖的基礎上,通過分析控制構造的環路復雜性,導出基本可執行路徑集合,從而設計測試用例的方法。設計出的測試用例要保證在測試中,程序的每一個可執行語句至少要執行一次。1.程序的控制流圖控制流圖是描述程序控制流的一種圖示方法。基本控制構造的圖形符號如圖10-4-7所示。符號稱為控制流圖的一個結點,一組順序處理框可以映射為一個單一的結點。控制流圖
17、中的箭頭稱為邊,它表示了控制流的方向,在選擇或多分支結構中分支的匯聚處,即使沒有執行語句也應該有一個匯聚結點。邊和結點圈定的區域叫做區域,當對區域計數時,圖形外的區域也應記為一個區域。圖 10-4-7控制流圖的各種圖形符號如果判定中的條件表達式是復合條件時,即條件表達式是由一個或多個邏輯運算符(OR,AND,NAND,NOR)連接的邏輯表達式,則需要改復合條件的判定為一系列只有單個條件的嵌套的判定。例如對應圖 10-4-8(a)的復合條件的判定,應該畫成如圖 10-4-8(b)所示的控制流圖。條件語句ifaORb中條件a和條件b各有一個只有單個條件的判定結點。2.計算程序環路復雜性進行程序的基
18、本路徑測試時,程序的環路復雜性給出了程序基本路徑集合中的獨立路徑條數,這是確保程序中每個可執行語句至少執行一次所必需的測試用例數目的上界。所謂獨立路徑,是指包括一組以前沒有處理的語句或條件的一條路徑。如在圖10-4-9(b)所示的控制流圖中,一組獨立的路徑是path1:1-11path2:1-2-3-4-5-10-1-11path3:1-2-3-6-8-9-10-1-11path4:1-2-3-6-7-9-10-1-11路徑path1,path2,path3,path4組成了圖 10-4-9(b)所示控制流圖的一個基本路徑集。只要設計出的測試用例能夠確保這些基本路徑的執行,就可以使得程序中的每個可執行語句至少執行一次,每個條件的取真和取假分支也能得到測試。基本路徑集
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年潛水及水下救撈裝備項目建議書
- 2025版清晰易懂的房屋租賃合同
- 2025年抗艾滋病用藥合作協議書
- 2025年大直徑硅單晶及新型半導體材料項目合作計劃書
- 2025年人工智能AI芯片項目建議書
- 線路樁施工方案
- 工序承包條款解讀3篇
- 度假村安全監管合同3篇
- 工期延誤導致的合同違約處理3篇
- 會計賬目清晰承諾書加強財務監督3篇
- 2025年財務管理考試題目分析試題及答案
- 鍍銀鏡子原片行業直播電商戰略研究報告
- 2025-2030中國流量儀表市場產銷規模及企業經營發展分析研究報告
- 浙江省嘉興市2025屆高三下學期4月二模試題 地理 含解析
- 2025年杭州市高三英語4月二模質檢考試卷附答案解析
- 預防觸電知識培訓
- 中藥煎藥室工作制度和流程
- 生產車間主管月度工作總結
- 2025年中考數學幾何模型綜合訓練專題16全等三角形模型之婆羅摩笈多模型解讀與提分精練(教師版)
- 手機終端采購合作協議書范本
- 社區衛生服務中心的運營與管理策略
評論
0/150
提交評論