[黑盒測試基本方法]狀態(tài)遷移法_第1頁
[黑盒測試基本方法]狀態(tài)遷移法_第2頁
[黑盒測試基本方法]狀態(tài)遷移法_第3頁
[黑盒測試基本方法]狀態(tài)遷移法_第4頁
[黑盒測試基本方法]狀態(tài)遷移法_第5頁
已閱讀5頁,還剩3頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

1、狀態(tài)遷移法一、概念1什么是狀態(tài)遷移法在定義狀態(tài)遷移法之前,先介紹一下程序的功能說明。一個程序的功能說明通常由動態(tài)說明和靜態(tài)說明組成。動態(tài)說明描述了輸入數(shù)據(jù)的次序或轉(zhuǎn)移的次序。靜態(tài)說明描述了輸入條件與輸出條件之間的對應(yīng)關(guān)系。對于較復(fù)雜的程序,由于存在大量的組合情況,因此,僅用靜態(tài)說明組成的規(guī)格說明對于測試來說往往是不夠的,必須用動態(tài)說明來補充功能說明。功能圖方法是用功能圖形式化地表示程序的功能說明,并機械地生成功能圖的測試用例。功能圖模型由狀態(tài)遷移圖和邏輯功能模型構(gòu)成:(1) 狀態(tài)遷移圖用于表示輸入數(shù)據(jù)序列以及相應(yīng)的輸出數(shù)據(jù)。用狀態(tài)和遷移來描述一個狀態(tài)指出數(shù)據(jù)輸入的位置(或時間),而遷移則指明狀

2、態(tài)的改變,同時要依靠判定表或因果圖表示的邏輯功能。在狀態(tài)遷移圖中,由輸入數(shù)據(jù)和當前狀態(tài)決定輸出數(shù)據(jù)和后續(xù)狀態(tài)。(2) 邏輯功能模型用于表示在狀態(tài)中輸入條件和輸出條件之間的對應(yīng)關(guān)系。邏輯功能模型只適合于描述靜態(tài)說明,輸出數(shù)據(jù)僅由輸入數(shù)據(jù)決定。(3) 測試用例則是由測試中經(jīng)過的一系列狀態(tài)和在每個狀態(tài)中必須依靠輸入/輸出數(shù)據(jù)滿足的一對條件組成。如何從狀態(tài)遷移圖中選取用例?我們采用節(jié)點代替狀態(tài),弧線代替遷移,那么狀態(tài)遷移圖就轉(zhuǎn)換成為一個程序的控制流程圖,問題也就隨之轉(zhuǎn)換為路徑測試的問題了。所以,功能圖方法其實是是一種黑盒/白盒混合使用的用例設(shè)計方法。比如在功能圖方法中,用到的邏輯覆蓋與路徑測試的概念和

3、方法,就是屬于白盒測試方法中的內(nèi)容。(邏輯覆蓋是以程序內(nèi)部的邏輯結(jié)構(gòu)為基礎(chǔ)的測試用例設(shè)計方法,該方法要求測試人員對程序的邏輯結(jié)構(gòu)有清楚的了解。由于覆蓋測試的目標不同,邏輯覆蓋可分為:語句覆蓋,判定覆蓋,判定-條件覆蓋,條件組合覆蓋及路徑覆蓋。)注意:測試人員應(yīng)當注意區(qū)分黑盒測試中系統(tǒng)功能或者系統(tǒng)水平上的邏輯覆推薦精選蓋與路徑,和白盒測試中所指的程序內(nèi)部的邏輯覆蓋的區(qū)別。狀態(tài)遷移法的目標是設(shè)計足夠的用例達到對系統(tǒng)狀態(tài)的覆蓋、狀態(tài)條件組合的覆蓋以及狀態(tài)遷移路徑的覆蓋。測試用例的生成規(guī)則:為了把狀態(tài)遷移(測試路徑)的測試用例與邏輯模型(局部測試用例)的測試用例組合起來,從功能圖生成實用的測試用例,須

4、在一個結(jié)構(gòu)化的狀態(tài)遷移(SST)中,定義三種形式的循環(huán)順序、選擇和重復(fù)。然后按照以下四個過程從功能圖中生成測試用例。1. 生成局部測試用例。在每個狀態(tài)中,從因果圖生成局部測試用例。局部測試用例由原因值(輸入數(shù)據(jù))組合與對應(yīng)的結(jié)果值(輸出數(shù)據(jù)或狀態(tài))構(gòu)成。2. 測試路徑生成。利用上面的規(guī)則(順序、選擇、重復(fù))生成從初始狀態(tài)到最后狀態(tài)的測試路徑。3. 測試用例合成。合成測試路徑與功能圖中每個狀態(tài)中的局部測試用例,結(jié)果是初始狀態(tài)到最后狀態(tài)的一個狀態(tài)序列,以及每個狀態(tài)中輸入數(shù)據(jù)與對應(yīng)輸出數(shù)據(jù)的組合。4. 測試用例的合成算法。采用條件構(gòu)造樹。二、操作步驟及實例分析借鑒實例(?)手機中MP3的播放功能。在

5、手機中使用MP3,R鍵功能為倒退,P鍵功能為播放,F(xiàn)鍵功能為快進,RC鍵功能為錄音,S鍵功能為暫停;其中沒有選擇MP3曲目時不能按任何鍵,并且當MP3曲目在起點時不能按R鍵,當MP3曲目在末端時不能按P、F鍵;MP3只有在暫停狀態(tài)下才可以錄音。本工程方法具體的實施步驟如下:步驟1:繪制狀態(tài)遷移圖推薦精選圖:手機中MP3的播放功能狀態(tài)遷移圖步驟2:定義狀態(tài)條件表當前狀態(tài)事件下一狀態(tài)輸出中途停止P播放F前進R后退RC錄音播放F前進R后退S中途停止前進P播放R后退S中途停止自動終點停止后退P播放F前進S中途停止自動終點停止錄音S停止起點停止P播放F前進RC錄音終點停止R后退步驟3:根據(jù)狀態(tài)遷移圖推到

6、測試路徑推薦精選- a 從初始狀態(tài)節(jié)點(可以有多個)出發(fā),依據(jù)廣度優(yōu)先原則遍歷狀態(tài)遷移圖,遍歷到結(jié)束狀態(tài)節(jié)點或已經(jīng)遍歷過的節(jié)點為一次遍歷結(jié)束,得到一條測試路徑。- b 選取需要測試的路徑,達到規(guī)定的路徑覆蓋率。這里每條路經(jīng)對應(yīng)一個或幾個測試用例規(guī)格。其中“覆蓋路徑”指該用例覆蓋的路徑的分支序列;“覆蓋狀態(tài)條件組合”指該分支序列上各狀態(tài)點和條件的組合。用例編號測試用例覆蓋路徑覆蓋的狀態(tài)條件組合為了更好地進行遍歷,可以借助于狀態(tài)轉(zhuǎn)換樹,使用狀態(tài)轉(zhuǎn)換樹首先要確定一個根節(jié)點,比如狀態(tài)遷移圖中的“起點停止”狀態(tài),然后從該狀態(tài)往后延伸,有三個方向,可以分別轉(zhuǎn)換到播放狀態(tài)、快進狀態(tài),錄音狀態(tài)。然后再分別從這

7、三個狀態(tài)往后延伸,直到所有的狀態(tài)轉(zhuǎn)換都包含到該狀態(tài)轉(zhuǎn)換樹中。從根節(jié)點到最后的葉子節(jié)點就是需要測試的路徑。圖:手機中MP3的播放功能狀態(tài)轉(zhuǎn)換樹推薦精選步驟4:選取測試數(shù)據(jù),構(gòu)造測試用例對選定的每條需要測試的路徑,結(jié)合等價類、邊界值分析,確定每個狀態(tài)節(jié)點的輸入,沿著該路經(jīng)通過表格將各種測試數(shù)據(jù)的輸入輸出對應(yīng)起來,這樣就完成了測試用例的設(shè)計。如果有足夠的時間,就應(yīng)該測試軟件的每一個分支不僅是連接兩個狀態(tài)的每一條線,而是每一種線路組合。但是覆蓋所有分支是不可能的,正如對數(shù)據(jù)等價分配一樣,大量的可能性也需要減少可操作的測試用例數(shù)目。我們可以通過以下5種方法減少測試用例:1. 每種狀態(tài)至少訪問一次。無論用

8、什么方法,必須測試每一種狀態(tài)。2. 測試看起來最常見最普遍的狀態(tài)轉(zhuǎn)換。我們可以根據(jù)審查產(chǎn)品說明書時分析收集到的信息確定某些用戶情況可能比其他更常見。3. 測試狀態(tài)之間最不常用的分支。這些分支是最容易被產(chǎn)品設(shè)計者和程序員忽視的。4. 測試所有錯誤狀態(tài)及其返回值。錯誤沒有得到正確處理、錯誤提示信息不正確、修復(fù)錯誤時未正確恢復(fù)軟件等情況是常有的。5. 利用工具自動執(zhí)行狀態(tài)轉(zhuǎn)換測試。步驟5:其他考慮運用其他測試方法,如錯誤推測法等增加異常測試等非正常性測試用例。三、實際應(yīng)用狀態(tài)遷移圖法的核心在于通過狀態(tài)轉(zhuǎn)換樹將不同狀態(tài)之間的轉(zhuǎn)換串起來進行測試,而這里所說的轉(zhuǎn)換也可以看成是修改、改變,因此凡是被涉及到改

9、變的地方都可以考慮使用狀態(tài)遷移圖法。狀態(tài)遷移圖法主要適用于以下幾種類似情況:1. 播放器、手機等存在工作狀態(tài)不斷改變的系統(tǒng);2. 編輯功能,如修改字體顏色、大小、格式等等。四、總結(jié)推薦精選 到目前為止,我們測試的是數(shù)據(jù),包括數(shù)字、文字、軟件輸入和輸出。軟件測試的另一方面是通過不同的狀態(tài)驗證程序的邏輯流程。軟件狀態(tài)是指軟件當前所處的情況或者模式,例如啟動Windows畫圖程序,程序處于鉛筆繪畫狀態(tài),我們可以通過選中噴槍工具改變軟件的狀態(tài),使它處于噴涂狀態(tài),也可以通過選擇其他工具、菜單項、顏色等使軟件的代碼進入某一個流程分支,觸發(fā)一些數(shù)據(jù)位。設(shè)置某些變量,讀取某些數(shù)據(jù),轉(zhuǎn)入一個新的狀態(tài)。軟件測試人

10、員必須測試程序的這些狀態(tài)及其轉(zhuǎn)換。如同窮舉數(shù)據(jù)測試是不可能的一樣。除了極其簡單的程序之外,基本上不可能覆蓋所有程序分支,達到所有狀態(tài)。目前軟件越來越復(fù)雜,特別是為了迎合日益豐富的用戶界面,提供了太多選擇和選項,致使程序分支爆炸式增長:與著名的流動推銷員問題類似:給定城市數(shù)目,以及任何兩個城市之間的距離,設(shè)法找出訪問到每一個城市并返回起點的最短路線。如果只有5個城市,則可以快速計算出共有120條不同的路線。走遍所有路線,從中找到最短的路線并不是太難,花費不了太長時間。如果城市數(shù)目增加到成百上千(或者在測試用例中增加成百上千種狀態(tài)),就形成一個難以解決的問題。要減少測試的風險,盡量全面測試程序的狀態(tài)及其轉(zhuǎn)換流程,可以首先根據(jù)產(chǎn)品說明書建立一個狀態(tài)轉(zhuǎn)換圖,用來描述系統(tǒng)設(shè)計和指導(dǎo)我們進行測試,然后運用等價分配技術(shù)選擇要測試的狀態(tài)和分支,這將是十分有效的方法。所以,狀態(tài)遷移圖法實際上是測試了各種狀態(tài)的轉(zhuǎn)換,這些狀態(tài)轉(zhuǎn)換的測試在實際工作中是容易遺漏的。只要能將這些狀態(tài)的轉(zhuǎn)換測試覆蓋到,是否采用了狀態(tài)遷移圖法其實并不重要,因為狀態(tài)遷移圖法僅僅是給出了一種將多個狀態(tài)的轉(zhuǎn)換串起來進行測試的思路而已。綜上所述,狀態(tài)轉(zhuǎn)換圖應(yīng)包括以下條目:1. 軟件可能進入的每一種獨立狀態(tài)。如果不能斷定是否為獨立狀態(tài),先把它設(shè)置為是。如

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論