資源描述:
《白盒測試用例設計方法.doc》由會員上傳分享,免費在線閱讀,更多相關內容在教育資源-天天文庫。
1、1.白盒測試用例設計方法1.1.白盒測試概述由于邏輯錯誤和不正確假設與一條程序路徑被運行的可能性成反比。由于我們經常相信某邏輯路徑不可能被執(zhí)行,而事實上,它可能在正常的情況下被執(zhí)行。由于代碼中的筆誤是隨機且無法杜絕的,因此我們要進行白盒測試。白盒測試又稱結構測試,透明盒測試、邏輯驅動測試或基于代碼的測試。白盒測試是一種測試用例設計方法,盒子指的是被測試的軟件,白盒指的是盒子是可視的,你清楚盒子內部的東西以及里面是如何運作的。1.白盒的測試用例需要做到?保證一個模塊中的所有獨立路徑至少被使用一次;?對所有邏輯值均需測試true和fal
2、se;?在上下邊界及可操作范圍內運行所有循環(huán);?檢查內部數(shù)據(jù)結構以確保其有效性。2.白盒測試的目的通過檢查軟件內部的邏輯結構,對軟件中的邏輯路徑進行覆蓋測試;在程序不同地方設立檢查點,檢查程序的狀態(tài),以確定實際運行狀態(tài)與預期狀態(tài)是否一致。3.白盒測試的特點依據(jù)軟件設計說明書進行測試、對程序內部細節(jié)的嚴密檢驗、針對特定條件設計測試用例、對軟件的邏輯路徑進行覆蓋測試。4.白盒測試的實施步驟1)測試計劃階段:根據(jù)需求說明書,制定測試進度。2)測試設計階段:依據(jù)程序設計說明書,按照一定規(guī)范化的方法進行軟件結構劃分和設計測試用例。3)測試執(zhí)行
3、階段:輸入測試用例,得到測試結果。4)測試總結階段:對比測試的結果和代碼的預期結果,分析錯誤原因,找到并解決錯誤。1.白盒測試的方法總體上分為靜態(tài)方法和動態(tài)方法兩大類。?靜態(tài)分析:是一種不通過執(zhí)行程序而進行測試的技術。靜態(tài)分析的關鍵功能是檢查軟件的表示和描述是否一致,沒有沖突或者沒有歧義。?動態(tài)分析:主要特點是當軟件系統(tǒng)在模擬的或真實的環(huán)境中執(zhí)行之前、之中和之后,對軟件系統(tǒng)行為的分析。動態(tài)分析包含了程序在受控的環(huán)境下使用特定的期望結果進行正式的運行。它顯示了一個系統(tǒng)在檢查狀態(tài)下是正確還是不正確。在動態(tài)分析技術中,最重要的技術是路徑和
4、分支測試。下面要介紹的六種覆蓋測試方法屬于動態(tài)分析方法。2.白盒測試的優(yōu)缺點?優(yōu)點:迫使測試人員去仔細思考軟件的實現(xiàn);可以檢測代碼中的每條分支和路徑;揭示隱藏在代碼中的錯誤;對代碼的測試比較徹底;最優(yōu)化?缺點:費用昂貴;無法檢測代碼中遺漏的路徑和數(shù)據(jù)敏感性錯誤;不驗證規(guī)格的正確性。1.1.白盒測試基本技術1.1.1.控制流圖1.1.1.1.定義程序流程圖是軟件開發(fā)過程中進行詳細設計時,表示模塊內部邏輯的一個常用的、也非常有效的圖示法。程序流程圖詳細地反映了程序內部控制流的處理和轉移過程,它一般是進行模塊編碼的參考依據(jù)。在程序流程圖中
5、,通常擁有很多種圖示元素,例如,“矩形框”表示一個計算處理過程,而“菱形框”表示一個判斷條件等。通常測試人員為某個程序模塊做白盒測試過程中,在做與路徑相關的各種分析的時候,這些非常細節(jié)的信息往往是不太重要。因此,為了更清晰突出地顯示出程序的控制結構,反映控制流的轉移過程,一種簡化了的程序流程圖便出現(xiàn)了,就是程序的控制流圖。在控制流圖中一般只有兩種簡單的圖示符號:節(jié)點和控制流。1)節(jié)點。以標有編號的圓圈表示。它一般代表了程序流程圖中矩形框所表示的處理、以及領形框所表示的判定條件,以及兩條活多條節(jié)點的匯合點等。一個節(jié)點就是一個基本的程序
6、塊,它可以是一個單獨的語句(如if條件判斷語句,或循環(huán)語句),也可以是多個順序執(zhí)行的語句塊。2)控制流。以帶箭頭的弧線表示,用來連接相關的兩個節(jié)點。它與程序流程圖中的控制流所表示的意義是一致的,都是知識了程序控制的轉移過程。為了便于處理,每個控制流也可以標有名字,這是繼就相當于向圖中的邊。每條邊必須要終止某一節(jié)點。1.1.1.1.控制流圖的基本控制結構的圖形符號在控制流圖中,其基本的控制結構所對應的圖形符號如下圖。(a)順序結構(b)IFELSE結構(c)多分支結構(d)循環(huán)結構1.1.2.六種覆蓋方法首先為了下文的舉例描述方便,這
7、里先給出一張程序流程圖。1.語句覆蓋1)主要特點:語句覆蓋是最起碼的結構覆蓋要求,語句覆蓋要求設計足夠多的測試用例,使得程序中每條語句至少被執(zhí)行一次。2)用例設計:(如果此時將A路徑上的語句1—〉T去掉,那么用例如下)??X?Y?路徑?1?50?50?OBDE?2?90?70?OBCE3)優(yōu)點:可以很直觀地從源代碼得到測試用例,無須細分每條判定表達式。4)缺點:由于這種測試方法僅僅針對程序邏輯中顯式存在的語句,但對于隱藏的條件和可能到達的隱式邏輯分支,是無法測試的。在本例中去掉了語句1—〉T去掉,那么就少了一條測試路徑。在if結構中
8、若源代碼沒有給出else后面的執(zhí)行分支,那么語句覆蓋測試就不會考慮這種情況。但是我們不能排除這種以外的分支不會被執(zhí)行,而往往這種錯誤會經常出現(xiàn)。再如,在Do-While結構中,語句覆蓋執(zhí)行其中某一個條件分支。那么顯然,語句覆蓋對于多分