第5講基于狀態(tài)的測試_第1頁
第5講基于狀態(tài)的測試_第2頁
第5講基于狀態(tài)的測試_第3頁
第5講基于狀態(tài)的測試_第4頁
第5講基于狀態(tài)的測試_第5頁
已閱讀5頁,還剩32頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、基于狀態(tài)的軟件測試技術(shù)基于狀態(tài)的軟件測試技術(shù)有窮狀態(tài)機有窮狀態(tài)機( (Finite State Machine, FSM) )基于基于FSM的測試的測試狀態(tài)圖狀態(tài)圖基于狀態(tài)圖的測試基于狀態(tài)圖的測試FSMlMealy機機狀態(tài)是被動的,輸出和狀態(tài)沒有聯(lián)系狀態(tài)是被動的,輸出和狀態(tài)沒有聯(lián)系lMoore機機 狀態(tài)是主動的,輸出與變換沒有聯(lián)系狀態(tài)是主動的,輸出與變換沒有聯(lián)系FSMMealy機機6元組(元組(S,I,O, , ,s0)S為有限狀態(tài)集,為有限狀態(tài)集, s0S為初始狀態(tài)為初始狀態(tài)I為有限輸入字符集為有限輸入字符集O為有限輸出字符集為有限輸出字符集 : SIS為狀態(tài)轉(zhuǎn)換函數(shù)為狀態(tài)轉(zhuǎn)換函數(shù) : SI

2、O為輸出函數(shù)為輸出函數(shù)FSM示例示例游戲開始游戲開始P1發(fā)球發(fā)球P2發(fā)球發(fā)球P1贏贏P2贏贏P1_start / SimulateVolleyP2_start / SimulateVolleyP1_Win P1_Score 20 /P1AddPoint, SimulateVolleyP2_Win P2_Score 20 / P2AddPoint, SimulateVolleyP2_Win/SimulateVolleyP1_Win/SimulateVolleyP1_Win P1_Score = 20 /P1AddPointP2_Win P1_Score = 20 /P2AddPointP1_Is

3、Winner P2_IsWinner FSMMoore機機6元組(元組(S,I,O, , ,s0),其中:),其中:S為有限狀態(tài)集,為有限狀態(tài)集, s0S為初始狀態(tài)為初始狀態(tài)I為有限輸入字符集為有限輸入字符集O為有限輸出字符集為有限輸出字符集 : SIS為狀態(tài)轉(zhuǎn)換函數(shù)為狀態(tài)轉(zhuǎn)換函數(shù) : SO為輸出函數(shù)為輸出函數(shù)Mealy機和機和Moore機可以相互轉(zhuǎn)換機可以相互轉(zhuǎn)換FSM示例示例游戲開始P1繼續(xù)P1AddPoint, SimulateVolleyP1贏P1AddPointP1_startP2_startP1_Win P2_WinP1_WinP1_Win P1_Score = 20 P1發(fā)球Si

4、mulateVolleyP2發(fā)球SimulateVolleyP1_Win P1_Score 20 選手2繼續(xù)P2AddPoint, SimulateVolleyP2贏P2AddPointP2_Win P2_Win P2_Score = 20 P2_Win P2_Score 20 P2_WinP1_WinP1贏了P1_IsWinnerP2贏了P1_IsWinnerP2_IsWinner基于基于FSM的測試的測試經(jīng)典測試方法經(jīng)典測試方法lT方法(方法(Transition Tour)lU方法(方法(Unique Input/Output , UIO)lD方法(方法( Distinguishing

5、sequence)lW方法(方法( Characterization set W)假定有窮狀態(tài)機是最小、強連通和完全的假定有窮狀態(tài)機是最小、強連通和完全的基于基于FSM的測試的測試示例示例03241A/0B/1A/1B/1A/0A/1A/0B/0B/1B/基于基于FSM的測試的測試T方法方法遷移回路法遷移回路法所有遷移被覆蓋所有遷移被覆蓋檢錯能力較差檢錯能力較差測試序列測試序列:B A B A B A A A A A A A B B 0 1 0 1 0 0 1 0 1 1 0 1 1基于基于FSM的測試的測試UIO序列序列uU方法方法產(chǎn)生產(chǎn)生每個狀態(tài)每個狀態(tài)的的UIO序列序列為每個遷移,產(chǎn)生測

6、試子序列為每個遷移,產(chǎn)生測試子序列聯(lián)合子序列,產(chǎn)生整個測試序列聯(lián)合子序列,產(chǎn)生整個測試序列測試序列:測試序列:rAAAAAAA rAAAABB rAAABBB rAABB rABBBrBB基于基于FSM的測試的測試狀態(tài)狀態(tài)UIO1a/12a/0, a/13b/1, a/1通過?通過?Uv方法方法對對UIO序列的唯一性進行驗證序列的唯一性進行驗證基于基于FSM的測試的測試基于基于FSM的測試的測試基于基于FSM的測試的測試uD方法方法發(fā)現(xiàn)區(qū)分發(fā)現(xiàn)區(qū)分所有狀態(tài)所有狀態(tài)的區(qū)分序列的區(qū)分序列為每個遷移,產(chǎn)生測試子序列為每個遷移,產(chǎn)生測試子序列聯(lián)合測試子序列,產(chǎn)生測試序列聯(lián)合測試子序列,產(chǎn)生測試序列結(jié)果

7、測試序列結(jié)果測試序列rAAAAABBrAAAABBBrAAABBBrAABBBrABBBrBBB基于基于FSM的測試的測試uW方法方法發(fā)現(xiàn)區(qū)分發(fā)現(xiàn)區(qū)分所有狀態(tài)所有狀態(tài)的特征集的特征集( (W集集) )為每個遷移產(chǎn)生測試子序列為每個遷移產(chǎn)生測試子序列聯(lián)合測試子序列,產(chǎn)生測試序列聯(lián)合測試子序列,產(chǎn)生測試序列W集集: A, AA, BStates(A)s(AA) s(B)000 1111201030114101狀態(tài)圖狀態(tài)圖u有窮狀態(tài)機的局限有窮狀態(tài)機的局限l限制了可伸縮性限制了可伸縮性當狀態(tài)數(shù)非常多時,怎樣畫出清晰的、易理解的狀態(tài)圖?當狀態(tài)數(shù)非常多時,怎樣畫出清晰的、易理解的狀態(tài)圖?l不能表示并發(fā)不

8、能表示并發(fā)不適合表示兩個或多個轉(zhuǎn)換同時發(fā)生的情況不適合表示兩個或多個轉(zhuǎn)換同時發(fā)生的情況積狀態(tài)機?狀態(tài)數(shù)成指數(shù)增長,大量不相關(guān)或不可達狀態(tài)積狀態(tài)機?狀態(tài)數(shù)成指數(shù)增長,大量不相關(guān)或不可達狀態(tài)u模型擴展模型擴展狀態(tài)圖狀態(tài)圖lHarel狀態(tài)圖(狀態(tài)圖(Statechart)lUML狀態(tài)圖(狀態(tài)圖(Statechart Diagram)狀態(tài)圖狀態(tài)圖uHarel狀態(tài)圖狀態(tài)圖狀態(tài)圖狀態(tài)圖 = = 狀態(tài)圖形狀態(tài)圖形 + + 深度深度 + + 正交性正交性 + + 廣播通信廣播通信l深度(狀態(tài)分層)深度(狀態(tài)分層)OROR狀態(tài)狀態(tài)是一個子狀態(tài)圖。當處于是一個子狀態(tài)圖。當處于OROR狀態(tài)時,必須處狀態(tài)時,必須處于

9、其子狀態(tài)圖的一個且僅一個狀態(tài)于其子狀態(tài)圖的一個且僅一個狀態(tài)l 正交正交ANDAND狀態(tài)狀態(tài)可以分解為多個子狀態(tài),當一個對象處可以分解為多個子狀態(tài),當一個對象處于于ANDAND狀態(tài)時,它必須處于每個子狀態(tài)狀態(tài)時,它必須處于每個子狀態(tài)l事件廣播事件廣播遷移輸出的事件向整個狀態(tài)圖廣播遷移輸出的事件向整個狀態(tài)圖廣播狀態(tài)圖狀態(tài)圖示例示例狀態(tài)圖狀態(tài)圖歷史態(tài)歷史態(tài) l最近被訪問的狀態(tài)最近被訪問的狀態(tài)H H:表示同級中最近進入的狀態(tài):表示同級中最近進入的狀態(tài)H H* *:最近訪問的處于任意深度級別上的子狀態(tài)集:最近訪問的處于任意深度級別上的子狀態(tài)集狀態(tài)圖狀態(tài)圖正交性正交性l同步轉(zhuǎn)換同步轉(zhuǎn)換狀態(tài)圖狀態(tài)圖UML狀

10、態(tài)圖狀態(tài)圖l在在Harel狀態(tài)圖的基礎(chǔ)上擴展了一些新特征狀態(tài)圖的基礎(chǔ)上擴展了一些新特征l組合狀態(tài)、子機狀態(tài)、狀態(tài)內(nèi)部遷移組合狀態(tài)、子機狀態(tài)、狀態(tài)內(nèi)部遷移狀態(tài)圖狀態(tài)圖基于狀態(tài)圖的測試基于狀態(tài)圖的測試用狀態(tài)圖來描述事件序列,或用例場景用狀態(tài)圖來描述事件序列,或用例場景測試評價標準測試評價標準測試生成測試生成狀態(tài)圖(層次化)狀態(tài)圖(層次化)有窮狀態(tài)機有窮狀態(tài)機測試規(guī)格說明書測試規(guī)格說明書測試用例測試用例模型轉(zhuǎn)換模型轉(zhuǎn)換圖形遍歷圖形遍歷/覆蓋覆蓋輸入實例化輸入實例化基于狀態(tài)圖的測試基于狀態(tài)圖的測試狀態(tài)圖狀態(tài)圖有窮狀態(tài)機有窮狀態(tài)機基于狀態(tài)圖的測試基于狀態(tài)圖的測試轉(zhuǎn)換規(guī)則轉(zhuǎn)換規(guī)則l格局格局指在某一時刻,狀

11、態(tài)圖指在某一時刻,狀態(tài)圖S中的最大活動狀態(tài)集合中的最大活動狀態(tài)集合狀態(tài)子集狀態(tài)子集C構(gòu)成一個格局當且僅當構(gòu)成一個格局當且僅當 C包含根節(jié)點包含根節(jié)點 AND狀態(tài)狀態(tài)q C,則:,則: q (q) q C OR狀態(tài)狀態(tài)q C,則:,則: q (q) q Cl全局狀態(tài)全局狀態(tài)l轉(zhuǎn)換步(轉(zhuǎn)換沖突?)轉(zhuǎn)換步(轉(zhuǎn)換沖突?)基于狀態(tài)圖的測試基于狀態(tài)圖的測試生成測試規(guī)格說明書生成測試規(guī)格說明書l遍歷狀態(tài)遷移圖,產(chǎn)生測試場景遍歷狀態(tài)遷移圖,產(chǎn)生測試場景生成測試用例生成測試用例l 根據(jù)測試場景,選擇輸入數(shù)據(jù)根據(jù)測試場景,選擇輸入數(shù)據(jù)l 一個測試場景可以產(chǎn)生一個或多個測試用例一個測試場景可以產(chǎn)生一個或多個測試用例

12、基于狀態(tài)圖的測試基于狀態(tài)圖的測試示例示例- -ATM系統(tǒng)測試系統(tǒng)測試 基于狀態(tài)圖的測試基于狀態(tài)圖的測試示例示例ATM的有窮狀態(tài)機的有窮狀態(tài)機基于狀態(tài)圖的測試基于狀態(tài)圖的測試TS1:SbT1S1T2S2T5S4T6S5T9S5T12S9T14S1 u測試場景測試場景1 基于狀態(tài)圖的測試基于狀態(tài)圖的測試u測試場景測試場景2 TS2:SbT1S1T2S2T5S4T7S6T12S9T14S1 基于狀態(tài)圖的測試基于狀態(tài)圖的測試u測試場景測試場景3 TS3:SbT1S1T2S2T5S4T8S7T10S7T12S9T14S1 基于狀態(tài)圖的測試基于狀態(tài)圖的測試TS4:SbT1S1T2S2T3S2T3S2T4S

13、3 u測試場景測試場景4 基于狀態(tài)圖的測試基于狀態(tài)圖的測試由測試場景產(chǎn)生測試用例由測試場景產(chǎn)生測試用例 在需要輸入數(shù)據(jù)的步驟輸入一系列各不相同的測試值,在需要輸入數(shù)據(jù)的步驟輸入一系列各不相同的測試值,來檢驗在各種情況下系統(tǒng)是否滿足需求來檢驗在各種情況下系統(tǒng)是否滿足需求u示例示例賬號賬號PIN帳戶余額帳戶余額977764435433543452765$5760977763436571288332456$355.56基于狀態(tài)圖的測試基于狀態(tài)圖的測試測試用例輸入輸出(系統(tǒng)響應(yīng))TC1歡迎界面插卡要求用戶輸入PINPIN要求用戶選擇服務(wù)選擇“取款”事務(wù)要求用戶輸入取款金額無效取款額提示輸入無效,要求重新輸入有效取款額詢問是否繼續(xù)其他交易選擇“不繼續(xù)”回到歡迎界面示例示例場景場景1測試用例模板測試用例模板基于狀態(tài)圖的測試基于狀態(tài)圖的測試測試用例輸入輸出說明TC1歡迎界面插卡要求用戶輸入PIN452765要求用戶選擇服務(wù)選擇“取款”服務(wù)要求用戶輸入取款金額0提示輸入無效,要求重新輸入20詢問是否繼續(xù)其他交易選擇“否”回到歡迎界面場景場景1的測試用例的測試用例1TC1基于狀態(tài)圖的測試基于狀態(tài)圖的測試測試用例輸入輸出說明TC2歡迎界面插卡要求用戶輸入PIN452765要求用戶選擇

溫馨提示

  • 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)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論