軟件測試方法與實踐講義-第八章_第1頁
軟件測試方法與實踐講義-第八章_第2頁
軟件測試方法與實踐講義-第八章_第3頁
軟件測試方法與實踐講義-第八章_第4頁
軟件測試方法與實踐講義-第八章_第5頁
已閱讀5頁,還剩33頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

第八章

基于狀態(tài)的軟件測試技術Tuesday,

December

10,1軟件測試講義主要內(nèi)容狀態(tài)轉換圖狀態(tài)圖Harel狀態(tài)圖的屬性從狀態(tài)圖變換到STDUML狀態(tài)圖基于狀態(tài)的測試測試步驟產(chǎn)生測試用例覆蓋分析12/10/2019第八章基于狀態(tài)的軟件測試技術2回歸測試簡介12/10/2019第八章基于狀態(tài)的軟件測試技術3基于狀態(tài)的軟件測試技術是一種基于模型的測試技術(Model-Based

Testing,MBT)。MBT利用系統(tǒng)需求模型和特殊功能模型,自動生成有效的測試用例。一種定義明確的有限狀態(tài)機常用來幫助描述系統(tǒng)的行為。從測試角度看,MBT技術帶來的最大的好處是針對可用的有限狀態(tài)機或變種,生成測試用例需要遍歷狀態(tài)機。MBT技術帶來的所有益處都在一個假設條件

下,即所建立的被測系統(tǒng)的狀態(tài)機“正確地”描述了系統(tǒng)的行為;換句話說,模型的質量決定著

MBT技術的成敗?;貧w測試簡介12/10/2019第八章基于狀態(tài)的軟件測試技術4狀態(tài)轉換圖(StateTransitionDiagram,STD作為一種圖形化標記用來描述計算機系統(tǒng)。20世紀50年代中期,G.H.Mealy和E.F.Moore同時引入了兩種狀態(tài)轉換圖的基本模型,這兩種模型在硬件設計領域一直發(fā)揮著重要的作用。近些年來,兩種模型得到廣泛擴展,增加了對諸如層次結構(Hierarchy)、適時(Timing)和通信這些方面的表達能力,使得可以使用這兩種模型對復雜的軟件系統(tǒng)進行建模。8.1狀態(tài)轉換圖12/10/2019第八章基于狀態(tài)的軟件測試技術51.Mealy自動機的定義Mealy和Moore奠定了有限自動機的理論。一個Mealy有限自動機是一個六元組(S,I,O,δr,s0),其中:√S—為有限狀態(tài)集;√I—為有限輸入字符表;√O—為有限輸出字符表;√δ:S×I→S為狀態(tài)轉換函數(shù);√r:S×I→O為輸出函數(shù);√s0

∈S為初始狀態(tài)。8.1狀態(tài)轉換圖12/10/2019第八章基于狀態(tài)的軟件測試技術61.Mealy自動機的定義Moore的有限自動機和Mealy有限自動機類似,只是輸出函數(shù)r被r’:S→O所代替,也就是說,輸出是和狀態(tài)有關而不是和轉換有關。從上述形式化定義,可以看到狀態(tài)轉換圖(STD)是一個簡單的有向圖,其中節(jié)點表示狀態(tài),表示在不同時刻的不同輸入值組合;標有觸發(fā)事件和條件的箭頭表示轉換,轉換是由輸入引起的狀態(tài)轉換,狀態(tài)轉換圖可以幫助理解系統(tǒng)的行為。8.1狀態(tài)轉換圖12/10/2019第八章基于狀態(tài)的軟件測試技術72.自動售貨機的例子在自動售貨機中。Bill和Coin處可以投入紙幣和

硬幣;Display是一個液晶顯示器,可以顯示投入的金額或還須投入的金額;Button處是多個按鈕,可以選擇不同的飲料;Change處遞出找回的零錢,而Dispenser處遞出飲料。8.1狀態(tài)轉換圖2.自動售貨機的例子S1:Idel/Star

StateS5:Return

MoneyS3:Display

AmountNeededS4:Deliver

Soda,Return

ChangePower

off12/10/2019第八章基于狀態(tài)的軟件測試技術8Power

onMoney

InputCancelEnough

MoneyCancelEnough

MoneyFake

MoneyNot

EnoughMoneyS2:Display

Amount

Money

Not

Enough8.1狀態(tài)轉換圖12/10/2019第八章基于狀態(tài)的軟件測試技術9自動售貨機的例子S={S1,S2,S3,S4,S5}I={EM,NEM,CL,FM,ε}O={Soda,Change,FM}δ={δi|1≤i≤11}δ1(S1,EM)=S2,δ2(S1,NEM)=S2,δ3(S1,FM)=S5,δ4(S2,EM)=S4,δ5(S2,NEM)=S3,δ6(S2,CL)=S5,δ7(S3,EM)=S4,δ8(S3,NEM)=S3,δ9(S3,CL)=S5,δ10(S4

,ε)=S1,

δ11(S5,

ε)=S1r

={ri|1≤i≤11}r1(S1,FM)=FM,

r2(S2,EM)=Soda,

r3(S3,EM)=Soda,r4(S2,CL)=Change,

r5(S3,

CL)=ChangeS0

=Sb8.2狀態(tài)圖12/10/2019第八章基于狀態(tài)的軟件測試技術101.狀態(tài)圖的概念狀態(tài)轉換圖是無層次結構,狀態(tài)數(shù)目與轉移數(shù)目隨著系統(tǒng)復雜性的增加呈指數(shù)增長趨勢,導致狀態(tài)雜亂,難以理解。為了解決STD圖的缺陷,Harel提出了狀態(tài)圖(Statechart),Harel的狀態(tài)圖是狀態(tài)轉換圖、有限自動機的擴展。狀態(tài)圖表示系統(tǒng)行為,提供可視化形式,以模塊化風格描述其狀態(tài)和轉移。狀態(tài)圖用來控制和組織詳細信息,如果這些信息采用表格形式表示,則所能提供的清晰度將降低。8.2狀態(tài)圖1.狀態(tài)圖的概念STUEH/CG/AFE/BF狀態(tài)轉換圖STUEH/CG/AE/BF12/10/2019第八章基于狀態(tài)的軟件測試技術11DH/C表示事件H觸發(fā),執(zhí)行動作C。狀態(tài)圖D是由S和T合并而成的超級狀態(tài)。8.2狀態(tài)圖2.Harel狀態(tài)圖的屬性狀態(tài)圖提供層次結構可減少系統(tǒng)建模復雜性,支持內(nèi)容抽象并發(fā)、正交性、全局通信機制、歷史狀態(tài),具有簡潔性、表達能力強、可進行狀態(tài)分解。(1)“或(OR)”狀態(tài):一個超態(tài)可以分解為任意多個OR子狀態(tài),當一個對象處于超態(tài)時,它必須處于其中的一個或者是唯一的一個“或”子狀態(tài)。UVt1t0S12/10/2019第八章基于狀態(tài)的軟件測試技術128.2狀態(tài)圖YSt1

t3t0

t1Zt22.Harel狀態(tài)圖的屬性(2)“與(AND)”狀態(tài):一個超態(tài)可以分解為任意多個AND子狀態(tài),當一個對象處于超態(tài)時,它必須處于每一個活性的“與”子狀態(tài)(對象正處于的狀態(tài)稱為活性狀態(tài))。CA

BX

R12/10/2019第八章基于狀態(tài)的軟件測試技術138.2狀態(tài)圖2.Harel狀態(tài)圖的屬性(3)聚類與細化:聚類(Clustering)是自底向上的概念,而細化(Refining)是自頂向下的概念。二者都是描述一個狀態(tài)和子狀態(tài)的關系。聚類是減少狀態(tài)圖中轉換的數(shù)量。為了看清狀態(tài)轉換內(nèi)部的細節(jié)情況,超態(tài)可以按照需要分解,展開,這個過程稱為細化。STUEH/CG/AE/BF12/10/2019第八章基于狀態(tài)的軟件測試技術14F8.2狀態(tài)圖STUEH/CG/AE/BFDUH/CF2.Harel狀態(tài)圖的屬性DE12/10/2019第八章基于狀態(tài)的軟件測試技術15聚類后的狀態(tài)圖細化后的狀態(tài)圖8.2狀態(tài)圖12/10/2019第八章基于狀態(tài)的軟件測試技術162.Harel狀態(tài)圖的屬性(4)歷史態(tài):狀態(tài)圖的歷史態(tài)(History

State)給出了超態(tài)最近被訪問的狀態(tài)。歷史態(tài)分為“淺”歷史態(tài)和“深”歷史態(tài)。簡單地說,“淺”歷史態(tài)H表示最近進入的并與其處于同級的狀態(tài),而“深”歷史態(tài)H*表示最近訪問的處于任意深度級別上的子狀態(tài)。8.2狀態(tài)圖2.Harel狀態(tài)圖的屬性(4)歷史態(tài)ABEEDHKABEEDH*K12/10/2019第八章基于狀態(tài)的軟件測試技術178.2狀態(tài)圖12/10/2019第八章基于狀態(tài)的軟件測試技術182.Harel狀態(tài)圖的屬性(5)正交性:正交性本質上是一個AND分解,但注重描述AND狀態(tài)之間和組件之間的同期并發(fā)情況。對于一個Y狀態(tài)有兩個正交組件組成:A和D,由AND運算關聯(lián)。處于狀態(tài)Y等價于既處于狀態(tài)A又處于狀態(tài)

D。那么我們可以通過將A和D中的兩個狀態(tài)合成表示目前Y所處于的子狀態(tài)。8.2狀態(tài)圖UVXYWRe12/10/2019第八章基于狀態(tài)的軟件測試技術19gjke3.從狀態(tài)圖變換到STD為了導出測試用例,需將層次化的狀態(tài)圖變換為

“平面”版的狀態(tài)轉換圖。pAf[in(Y)]T8.2狀態(tài)圖3.從狀態(tài)圖變換到STDApU,XU,WV,WV,XV,YU,Yj12/10/2019第八章基于狀態(tài)的軟件測試技術20ejkegegke

f8.2狀態(tài)圖12/10/2019第八章基于狀態(tài)的軟件測試技術214.UML狀態(tài)圖David

Harel發(fā)明的狀態(tài)圖最初是為面向功能的系統(tǒng)開發(fā)的,后來做少量的修改后用在面向對象系統(tǒng)。

UML狀態(tài)圖為對象管理服務,是在Harel的狀態(tài)圖

的基礎上擴展了一些新特性。屬性Harel狀態(tài)圖UML狀態(tài)圖內(nèi)嵌與正交狀態(tài)支持支持單個轉移代表從不同子狀態(tài)的相同的事件支持支持事件廣播支持支持歷史狀態(tài)支持支持8.2狀態(tài)圖12/10/2019第八章基于狀態(tài)的軟件測試技術224.UML狀態(tài)圖屬性Harel狀態(tài)圖UML狀態(tài)圖子狀態(tài)機支持支持重疊狀態(tài)支持無偽狀態(tài)無,但其連接符同樣操作支持Fork與Join方法利用Fork和Merge用偽狀態(tài)實現(xiàn)事件可以帶參數(shù)無支持自由轉移退出轉移離開組合邊界時,不一致通過定義自有邊界退出轉移實現(xiàn)同期的方法有限的方法,廣播通信多種方法對于事件的處理有最外層狀態(tài)機負責由最內(nèi)層狀態(tài)機負責8.3基于狀態(tài)的測試12/10/2019第八章基于狀態(tài)的軟件測試技術231.基于狀態(tài)的測試概念√定義基于狀態(tài)的測試是一種基于模型的測試技術,也就是通過建立描述系統(tǒng)行為的狀態(tài)機,來自動生成測試用例。√和白盒測試的區(qū)別基于狀態(tài)的測試一般是用狀態(tài)圖來描述事件序列,

或稱為用例場景,并由此產(chǎn)生測試用例。白盒測試

技術是以代碼覆蓋為標準來決定測試用例產(chǎn)生數(shù)量、測試結束標準;基于狀態(tài)的測試評價標準是狀態(tài)、

轉移覆蓋及對不正常、不相關事件的考慮,并由此

決定測試用例產(chǎn)生數(shù)量和測試結束條件。8.3基于狀態(tài)的測試2.測試步驟圖形化的規(guī)格說明書中介規(guī)格說明書測試說明書層次化的狀態(tài)圖平面狀態(tài)圖測試說明書使用標記表示特殊狀態(tài)轉移12/10/2019第八章基于狀態(tài)的軟件測試技術24使用通用方法產(chǎn)生測試用例8.3基于狀態(tài)的測試12/10/2019第八章基于狀態(tài)的軟件測試技術252.測試步驟(1)創(chuàng)建圖形化的規(guī)格說明書需求的圖形化表示模型包括數(shù)據(jù)流圖(DFD)、

實體關系圖(ERD)、狀態(tài)圖(Statechart)、狀態(tài)轉換圖(STD)、對話圖和類圖,它們可以作

為需求分析工具。用這些圖對問題域進行建模,

對于復雜的系統(tǒng)行為、語義進行描述,或者用于

創(chuàng)建新系統(tǒng)的概念表示法。另外,圖形有助于分

析者和客戶在需求方面形成一致的、綜合的理解,可以發(fā)現(xiàn)需求的錯誤。8.3基于狀態(tài)的測試12/10/2019第八章基于狀態(tài)的軟件測試技術262.測試步驟(2)產(chǎn)生中介規(guī)格說明書選用圖形規(guī)格說明書的目的是要方便生成測試說明書。其中狀態(tài)轉換圖和狀態(tài)圖是兩種常用的圖形化技術??紤]到測試不正常和不相關事件,可能需要在狀態(tài)轉化圖添加特殊狀態(tài)轉移標記;對于層次化狀態(tài)圖,需要將其轉換成狀態(tài)轉移圖即平面化。8.3基于狀態(tài)的測試12/10/2019第八章基于狀態(tài)的軟件測試技術272.測試步驟(3)生成測試規(guī)格說明書上面中介規(guī)格說明書是一種有向圖。其中一個節(jié)點為始點(可能是啞節(jié)點),一個節(jié)點為終點(也可能是啞節(jié)點)。遍歷從始點到終點的所有路徑,包括有效路徑和無效路徑。每條路徑對應于一個測試序列。有效路徑是指對于一系列有效輸入,系統(tǒng)相應的一系列相應;無效路徑是指對于一系列無效輸入,系統(tǒng)相應的一系列“意外”處理。8.3基于狀態(tài)的測試12/10/2019第八章基于狀態(tài)的軟件測試技術283.產(chǎn)生測試用例(1)ATM系統(tǒng)需求√用戶必須能從ATM卡的任一有效賬戶上提取現(xiàn)金,提取的金額是20的整數(shù)倍;√用戶必須能在ATM卡的任一有效賬戶上存款,指放入信封里的現(xiàn)金或支票;√用戶必須能在ATM卡的任兩個有效賬戶之間進行貨幣轉賬;√用戶必須能查詢ATM卡的任一有效賬戶上的存款余額。8.3基于狀態(tài)的測試3.產(chǎn)生測試用例(2)繪出狀態(tài)圖S1:ReadyS2:Asking

for

PINS9:Asking“Continue?”S5:PerformingWithdrawalS6:PerformingDepositT15:Power

offT1:Power

onS7:PerformingTransferS8:Report

failure12/10/2019第八章基于狀態(tài)的軟件測試技術29T3:PIN

is

invalidFirst

and

sencondT2:Insert

cardT14:Not

continueT13:continueT5:PIN

is

validT4:PIN

is

invalidThird

timeS3:Absobingthe

cardT6:WithdrawS4:asking

foTr7:Deposit

transactionT8:TransferT12:TransactionfinishedT11:FailedT9:Withdrawalaccountis

InvalidPerform

TransactionT10:Transferaccountis

Invalid8.3基于狀態(tài)的測試12/10/2019第八章基于狀態(tài)的軟件測試技術303.產(chǎn)生測試用例(3)由狀態(tài)轉換圖產(chǎn)生測試場景√從圖中抽取一條路徑,代表一個測試場景:

TS1:Sb·T1·S1

·T2

·S2

·T5

·S4

·T6

·S5

·T9

·S√把TS1中的S5狀態(tài)分別替換成S6或者S7,有:TS2:Sb·T1·S1

·T2

·S2

·T5

·S4

·T7

·S6

·T12

·TS3:Sb·T1·S1

·T2

·S2

·T5

·S4

·T8

·S7

·

T10

··S9

·T14√再考慮一條無效路徑,如下:TS4:Sb·T1·S1

·T2

·S2

·T3

·S2

·T3

·S2

·

T4

·S8.3基于狀態(tài)的測試3.產(chǎn)生測試用例(4)由測試場景產(chǎn)生測試用例√測試場景TS1S1:ReadyS2:Asking

for

PINS9:Asking“Continue?”S5:PerformingWithdrawalT1:Power

onS4:asking

fortransactionT2:Insert

card12/10/2019第八章基于狀態(tài)的軟件測試技術31T5:PIN

is

validT6:WithdrawT9:Withdrawalaccountis

InvalidT12:Transactionfinished8.3基于狀態(tài)的測試12/10/2019第八章基于狀態(tài)的軟件測試技術323.產(chǎn)生測試用例(4√:賬號)由測試場假設銀行的PIN景產(chǎn)生測試用數(shù)據(jù)庫中的用賬戶余額例戶信息如下977764435433543452765¥5760977764436571288332456¥355.568.3基于狀態(tài)的測試3.產(chǎn)生測試用例(4)由測試場景產(chǎn)生測試用例√使用賬戶977764435433543產(chǎn)生測試用例TC1測試場景測試用例輸入輸出輸出說明TS112/10/2019TC1SC1歡迎界面插卡SC2要求用戶輸入PIN452765SC3要求用戶選擇服務選擇“取款”服務SC4要求用戶輸入取款金額0SC4提示輸入無效,重新輸入20

第八章基S于C狀5

態(tài)的軟件詢測問試是技術否繼續(xù)

338.3基于狀態(tài)的測試3.產(chǎn)生測試用例(4)由測試場景產(chǎn)生測試用例√使用賬戶977764435433543產(chǎn)生測試用例TC2測試場景測試用例輸入輸出輸出說明TS112/10/2019TC2SC1歡迎界面插卡SC2要求用戶輸入PIN452765SC3要求用戶選擇服務選擇“取款”服務SC4要求用戶輸入取款金額635SC4提示輸入無效,重新輸入5760

溫馨提示

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

評論

0/150

提交評論