新聞中心
狀態(tài)轉(zhuǎn)換圖的組成:
創(chuàng)新互聯(lián)專注網(wǎng)站設(shè)計(jì),以設(shè)計(jì)驅(qū)動(dòng)企業(yè)價(jià)值的持續(xù)增長(zhǎng),網(wǎng)站,看似簡(jiǎn)單卻每一個(gè)企業(yè)都需要——設(shè)計(jì),看似簡(jiǎn)潔卻是每一位設(shè)計(jì)師的心血 十余年來(lái),我們只專注做網(wǎng)站。認(rèn)真對(duì)待每一個(gè)客戶,我們不用口頭的語(yǔ)言來(lái)吹擂我們的優(yōu)秀,成百上千的成功案例見(jiàn)證著我們的成長(zhǎng)。
1、狀態(tài):以圓圈表示,開(kāi)始和結(jié)束是特殊狀態(tài);
2、轉(zhuǎn)換:由于事件的驅(qū)動(dòng),系統(tǒng)從一個(gè)狀態(tài)到另一個(gè)狀態(tài);
3、事件:以系統(tǒng)的相關(guān)接口觸發(fā),和特定的轉(zhuǎn)換關(guān)聯(lián);
4、活動(dòng):以“/”表示,活動(dòng)由狀態(tài)轉(zhuǎn)換觸發(fā);
5、條件:以“[ ]”表示,說(shuō)明狀態(tài)轉(zhuǎn)換只有在滿足這個(gè)條件后進(jìn)行。
狀態(tài)轉(zhuǎn)換測(cè)試:是根據(jù)狀態(tài)轉(zhuǎn)換來(lái)設(shè)計(jì)測(cè)試用例的一種方法。一個(gè)系統(tǒng)或組件的兩個(gè)允許狀態(tài)之間的切換。
基于狀態(tài)轉(zhuǎn)換的測(cè)試方法是探測(cè)Web程序動(dòng)態(tài)行為異常的有效途徑.Web程序狀態(tài)的變遷由鏈接序列和提交數(shù)據(jù)共同構(gòu)成的導(dǎo)航場(chǎng)景決定.本文用活動(dòng)頁(yè) 面導(dǎo)航圖(APND)來(lái)描述頁(yè)面間的鏈接轉(zhuǎn)換行為,用狀態(tài)變量的組合對(duì)象狀態(tài)圖(COSD)來(lái)刻畫(huà)由提交數(shù)據(jù)導(dǎo)致的系統(tǒng)狀態(tài)變量改變,再將兩者統(tǒng)一成一個(gè) 較為全面的動(dòng)態(tài)行為模型Web程序狀態(tài)轉(zhuǎn)換圖(WSTD).最后,采用線索k叉樹(shù)并加以改進(jìn)來(lái)自動(dòng)生成測(cè)試用例。
狀態(tài)轉(zhuǎn)換圖----->狀態(tài)轉(zhuǎn)換樹(shù)
1、將開(kāi)始狀態(tài)作為狀態(tài)轉(zhuǎn)換樹(shù)的根;
2、從左到右檢查當(dāng)前層次的節(jié)點(diǎn),將該節(jié)點(diǎn)對(duì)應(yīng)的所有下一個(gè)可能狀態(tài)作為其子節(jié)點(diǎn);
3、重復(fù)第二部的動(dòng)作,直到遇到前面層次的節(jié)點(diǎn),則該節(jié)點(diǎn)為最終節(jié)點(diǎn),最終到結(jié)束節(jié)點(diǎn)。
循環(huán)轉(zhuǎn)換機(jī)-->n-switch
N-Switch是由TSUN S. CHOW在1978年提出的,他將N-Switch定義為程序圖中長(zhǎng)度為n+1的連續(xù)的邊或弧線(通常在狀態(tài)圖中表示循環(huán))的序列。所以單獨(dú)的一條邊(或者轉(zhuǎn)換)就是一個(gè)0-Switch,兩條連續(xù)的邊的序列就是1-Switch。
下面以圖1所示的狀態(tài)機(jī)分別說(shuō)明0-Switch和1-Switch的概念和區(qū)別。圖1所示的狀態(tài)機(jī)示例,其中圓圈表示狀態(tài),帶箭頭的邊表示轉(zhuǎn)換,同時(shí)為每個(gè)轉(zhuǎn)換定義了一個(gè)英文字母的標(biāo)識(shí)。
圖1 狀態(tài)機(jī)示例圖
1)0-Switch
針對(duì)0-Switch,狀態(tài)轉(zhuǎn)換圖轉(zhuǎn)化為狀態(tài)轉(zhuǎn)換樹(shù)的基本規(guī)則或者步驟如下:
● 步驟1:將初始狀態(tài)或者開(kāi)始狀態(tài)作為狀態(tài)轉(zhuǎn)換樹(shù)的根,根在整個(gè)狀態(tài)轉(zhuǎn)換樹(shù)中的層次是1。
● 步驟2:假設(shè)當(dāng)前生成狀態(tài)轉(zhuǎn)換樹(shù)的層次為K,那么從左到右檢查所有層次為K上的節(jié)點(diǎn);將該節(jié)點(diǎn)對(duì)應(yīng)的所有下一個(gè)可能的狀態(tài)作為它的子節(jié)點(diǎn),狀態(tài)之間的轉(zhuǎn)換作為兩個(gè)狀態(tài)的邊。
● 步驟3:重復(fù)步驟2,直到一個(gè)位于層次K上的節(jié)點(diǎn)出現(xiàn)在層次J上,且J小于等于K,那么這個(gè)節(jié)點(diǎn)就成為最終的葉節(jié)點(diǎn),而無(wú)需繼續(xù)生成其子節(jié)點(diǎn);或者節(jié)點(diǎn)的狀態(tài)是結(jié)束狀態(tài),也不需要針對(duì)該節(jié)點(diǎn)繼續(xù)進(jìn)行狀態(tài)轉(zhuǎn)換。
根據(jù)0-Switch的定義,該狀態(tài)機(jī)對(duì)應(yīng)的所有的0-Switch為:a、b、c、d、e、f。同時(shí)根據(jù)上面0-Switch狀態(tài)轉(zhuǎn)換樹(shù)生成規(guī)則,生成的狀態(tài)圖如圖2所示。
圖2 0-Switch狀態(tài)轉(zhuǎn)換圖示例
2)N-Switch
再來(lái)看一下1-Switch。根據(jù)1-Switch的定義,該狀態(tài)機(jī)對(duì)應(yīng)的所有1-Switch為:ab、ac、bb、bc、cd、ce、dd、de、 ea、ef、fd、fe。1-Switch狀態(tài)轉(zhuǎn)換樹(shù)的生成規(guī)則是在0-Switch狀態(tài)轉(zhuǎn)換樹(shù)基礎(chǔ)上,再增加一個(gè)層次,即針對(duì)0-Switch狀態(tài)轉(zhuǎn)換 樹(shù)的所有葉節(jié)點(diǎn),把每個(gè)葉節(jié)點(diǎn)可能的下一個(gè)狀態(tài)作為該節(jié)點(diǎn)的子節(jié)點(diǎn)。這里需要注意的是,只需要增加一個(gè)層次既可。生成后的1-Switch的狀態(tài)轉(zhuǎn)換圖如 圖3所示。
圖3 1-Switch狀態(tài)轉(zhuǎn)換圖示例
假如1-Switch還是無(wú)法滿足測(cè)試的強(qiáng)度,那么,可以根據(jù)上面的思路,繼續(xù)增加一個(gè)層次,使之達(dá)到2-Switch。但是,需要注意的是,測(cè)試強(qiáng)度的增加,是以指數(shù)形式增加測(cè)試用例為代價(jià)的。這兩者之間的平衡,是測(cè)試人員采用什么樣的測(cè)試強(qiáng)度的時(shí)候必須考慮的。
名稱欄目:黑盒測(cè)試之狀態(tài)轉(zhuǎn)換測(cè)試法
URL網(wǎng)址:http://fisionsoft.com.cn/article/gojjgj.html