999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

軟件測(cè)試用例生成中的前置條件分析

2007-01-01 00:00:00付劍平陸民燕

摘 要:在實(shí)踐的基礎(chǔ)上總結(jié)了測(cè)試用例生成中的前置條件,進(jìn)行了分類和參數(shù)化,并將研究結(jié)果應(yīng)用于測(cè)試用例自動(dòng)生成工具,生成了軟件可靠性測(cè)試用例。結(jié)果表明對(duì)前置條件的研究能夠促進(jìn)測(cè)試用例的自動(dòng)化生成過(guò)程。

關(guān)鍵詞: 前置條件; 測(cè)試用例; 測(cè)試用例生成; 測(cè)試用例自動(dòng)生成

中圖分類號(hào):TP311文獻(xiàn)標(biāo)志碼:A

文章編號(hào):1001—3695(2007)03—0103—03

前置條件(Precondition)描述這樣一些狀態(tài),由這些狀態(tài),可以成功地執(zhí)行一個(gè)操作[1]。在一些系統(tǒng)測(cè)試用例的自動(dòng)生成過(guò)程中,自動(dòng)化工具根據(jù)前置條件的滿足情況選擇不同的路徑自動(dòng)產(chǎn)生測(cè)試用例。前置條件還是測(cè)試用例的一個(gè)組成部分,它和由某種測(cè)試方法所標(biāo)志的實(shí)際輸入一起構(gòu)成了測(cè)試用例的完整輸入[2]。在測(cè)試過(guò)程中,測(cè)試人員或自動(dòng)化工具根據(jù)前置條件決定是否執(zhí)行測(cè)試用例,因此對(duì)前置條件的分類和參數(shù)化有助于提高軟件測(cè)試的自動(dòng)化過(guò)程。

當(dāng)前存在的測(cè)試用例開(kāi)發(fā)方法很少涉及前置條件,如實(shí)時(shí)軟件測(cè)試用例開(kāi)發(fā)方法主要講述如何根據(jù)實(shí)時(shí)軟件的特點(diǎn)生成測(cè)試輸入,沒(méi)有提過(guò)前置條件[3];部分基于Z規(guī)格說(shuō)明或UML規(guī)格說(shuō)明的測(cè)試用例自動(dòng)生成技術(shù),為了實(shí)現(xiàn)自動(dòng)生成測(cè)試用例而在其形式化規(guī)格說(shuō)明中描述了前置條件,但也存在諸多不足[4—7]。

形式化規(guī)格說(shuō)明是對(duì)軟件系統(tǒng)或構(gòu)件的接口,即對(duì)程序輸入與輸出之間約束關(guān)系進(jìn)行的形式化描述[8]。目前使用最為廣泛的一種形式化規(guī)格說(shuō)明語(yǔ)言是Z語(yǔ)言,但Z語(yǔ)言描述的前置條件不但隱晦而且煩瑣,需要進(jìn)行一定的變換和簡(jiǎn)化[1,9]。Anuradha Sridhar等人使用C—Expressions來(lái)表達(dá)頂層設(shè)計(jì)轉(zhuǎn)換的前置條件[10],但C—Expressions只能描述控制流圖中的并發(fā)、條件和循環(huán)控制 [11]。無(wú)論是Z語(yǔ)言、C—Expressions,還是面向?qū)ο蟮腢ML語(yǔ)言,均無(wú)法描述本文后面提到的前置約束和時(shí)間約束等前置條件。

1 前置條件分析

軟件功能和使用方式的復(fù)雜性決定了前置條件的多樣性。在測(cè)試用例的生成過(guò)程中,前置條件可能涉及時(shí)間、資源、輸入數(shù)據(jù)和輸出數(shù)據(jù)等諸多方面。有的前置條件比較單一,僅包含其中的一個(gè)方面;有的比較復(fù)雜,是其中多個(gè)方面的組合。假設(shè)前置條件是由若干個(gè)最基本的前置條件組合而成的,本文將這種最基本的前置條件稱為約束,只要整理出約束的不同類型和相互之間的關(guān)系就不難分析出前置條件。從實(shí)踐中總結(jié)出前置條件的約束類型包括前置約束、環(huán)境約束、時(shí)間約束和值約束。

1.1 前置約束

軟件的某項(xiàng)操作可能要求必須在其他某項(xiàng)或某幾項(xiàng)的操作執(zhí)行完成之后才能進(jìn)行。以數(shù)據(jù)庫(kù)為例,只有完成打開(kāi)數(shù)據(jù)庫(kù)的操作之后才能進(jìn)行數(shù)據(jù)庫(kù)的添加、修改和刪除。前置約束就是用來(lái)標(biāo)志這種基本前置條件的約束。

1.2 環(huán)境約束

軟件的使用離不開(kāi)運(yùn)行環(huán)境,軟件的運(yùn)行環(huán)境除了運(yùn)行軟件本身需要的硬件支持(如主頻、內(nèi)存、硬盤空間要求等)外,還包括為實(shí)現(xiàn)軟件功能而交聯(lián)的其他硬件設(shè)備(如掃描儀、打印機(jī)等)。軟件測(cè)試時(shí)還可能需要某些特定的軟硬件來(lái)模擬測(cè)試輸入,捕獲測(cè)試輸出,構(gòu)成軟件的測(cè)試環(huán)境。本文通過(guò)環(huán)境約束來(lái)表征軟件的運(yùn)行環(huán)境和測(cè)試環(huán)境狀態(tài)。

定義2 如果軟件在執(zhí)行某項(xiàng)操作O之前要求環(huán)境(運(yùn)行環(huán)境、測(cè)試環(huán)境)的某硬件或軟件指標(biāo)必須在一定的范圍之內(nèi),那么就稱此指標(biāo)及其必須滿足的范圍是操作O的環(huán)境約束,邏輯表達(dá)式為

以打印功能為例,軟件在執(zhí)行打印功能時(shí)要求至少一臺(tái)打印機(jī)空閑,用環(huán)境變量SpareComputerNum表示空閑的打印機(jī)數(shù)量,打印功能的環(huán)境約束就可以用SpareComputerNum{(0,∞)}表示。

1.3 時(shí)間約束

軟件有的操作可能不僅要求在此之前必須執(zhí)行過(guò)某項(xiàng)操作,還要求必須在某項(xiàng)操作開(kāi)始執(zhí)行或執(zhí)行完畢后的某段時(shí)間內(nèi)才能執(zhí)行。在實(shí)時(shí)嵌入式系統(tǒng)中這類要求比較常見(jiàn),如飛機(jī)的SMP要求在發(fā)出投彈命令的x秒內(nèi)發(fā)射導(dǎo)彈,否則將認(rèn)為導(dǎo)彈故障。在前置條件分析過(guò)程中將這類條件歸為時(shí)間約束。

定義3 如果操作O必須在前面某項(xiàng)操作PreO開(kāi)始執(zhí)行或執(zhí)行完畢之后的某段時(shí)間之內(nèi)才能成功執(zhí)行,那么稱操作PreO開(kāi)始執(zhí)行或執(zhí)行完畢之后的這段時(shí)間為操作O的時(shí)間約束。時(shí)間約束根據(jù)相對(duì)PreO時(shí)間點(diǎn)的不同分成相對(duì)啟動(dòng)時(shí)刻約束和相對(duì)終止時(shí)刻約束。相對(duì)啟動(dòng)時(shí)刻約束是相對(duì)于PreO開(kāi)始執(zhí)行時(shí)刻的時(shí)間范圍,邏輯表達(dá)式為

以為無(wú)窮,在實(shí)際使用中表示時(shí)間的默認(rèn)邊界。

如果操作O在操作PreO開(kāi)始執(zhí)行或執(zhí)行完畢后的規(guī)定時(shí)間范圍內(nèi)執(zhí)行,則約束滿足,表達(dá)式的值為真;反之則約束不滿足,表達(dá)式的值為假。

上述SMP統(tǒng)計(jì)導(dǎo)彈故障的時(shí)間約束可以表示為STOP_TIME{FireMissile,[x, ∞]},其中FireMissile表示投彈操作,x表示時(shí)間。

1.4 值約束

值約束是前置條件中最復(fù)雜的一類約束,它以系統(tǒng)的輸入/輸出變量作為約束對(duì)象,而輸入/輸出變量與時(shí)間之間、輸入/輸出變量與環(huán)境變量之間、輸入變量與輸出變量相互之間以及輸入/輸出變量自身之間均可能存在約束。

定義4 如果軟件的某個(gè)輸入/輸出變量必須滿足一定的范圍,該范圍由其他變量或值進(jìn)行約束,操作O才能夠成功地執(zhí)行,那么稱該變量及其范圍為操作O的值約束。值約束的邏輯表達(dá)式為

如果Variable的值等于列出的某個(gè)表達(dá)式Expi的值或落在列出的某個(gè)范圍Rangej之內(nèi),則約束滿足,表達(dá)式的值為真;反之則約束不滿足,表達(dá)式的值為假。

假設(shè)某飛機(jī)要求進(jìn)入巡航的高度是6 000—10 000m,如果用Height表示高度,那么該飛機(jī)進(jìn)入巡航的值約束是Height{(6 000,10 000)}。

1.5 約束之間的關(guān)系

前置條件的四類約束之間不是相互孤立的,而是存在著聯(lián)系的。深入了解約束之間的相互關(guān)系,有助于在軟件測(cè)試過(guò)程中更好地分析和描述前置條件。各類約束之間的關(guān)系如下:

(1)時(shí)間約束隱含前置約束

從定義3不難看出所有時(shí)間約束均包含前置約束Cove rage{PreO}。

(2)值約束隱含前置約束

當(dāng)值約束中的Expi和Rangej是由其他輸入/輸出變量組成時(shí),為了達(dá)到當(dāng)前的狀態(tài)就必然要求執(zhí)行包含有相應(yīng)輸入/輸出變量的操作,這恰好滿足前置約束的定義,所以說(shuō)值約束隱含著前置約束。

(3)環(huán)境約束與值約束表達(dá)式的相似性

環(huán)境約束表達(dá)式與值約束表達(dá)式在形式上具有相似性。如果值約束的Expi和Rangej都是由常數(shù)組成的,則可以發(fā)現(xiàn)此時(shí)值約束的表達(dá)式與環(huán)境約束的表達(dá)式相同。

1.6 約束組合

約束是最基本的前置條件,約束之間可以通過(guò)邏輯組合形成其他前置條件。前置條件表達(dá)式就是用邏輯運(yùn)算符連接不同的約束表達(dá)式而成,考慮約束之間的相互關(guān)系和邏輯表達(dá)式自身的特點(diǎn),前置條件表達(dá)式最終可以簡(jiǎn)化,轉(zhuǎn)換成由∧、∨、「和約束組成的邏輯表達(dá)式[12],如

2 實(shí)現(xiàn)與實(shí)例

2.1 實(shí)現(xiàn)

以上研究?jī)?nèi)容在本單位開(kāi)發(fā)的測(cè)試用例自動(dòng)生成工具TCS中已經(jīng)得到實(shí)現(xiàn),在TCS中可以直接配置前置約束和時(shí)間約束。由于環(huán)境約束和值約束表達(dá)式存在形式上的相似,TCS使用變量約束的方法將兩者統(tǒng)一起來(lái)進(jìn)行配置。約束配置完成后再進(jìn)行約束組合就能表達(dá)出要求的前置條件,如圖1所示。在測(cè)試用例自動(dòng)生成過(guò)程中,TCS首先分析前置條件表達(dá)式中包含哪些約束和邏輯關(guān)系,接著確定單個(gè)約束的取值,最后根據(jù)邏輯關(guān)系得到前置條件的取值。如果前置條件滿足,TCS繼續(xù)為當(dāng)前測(cè)試用例生成輸入;否則,TCS根據(jù)不同情況決定是中止當(dāng)前測(cè)試用例生成還是選擇其他路徑繼續(xù)生成。

2.2 一個(gè)實(shí)例

以對(duì)本單位開(kāi)發(fā)的軟件可靠性評(píng)估工具SRET進(jìn)行的軟件可靠性測(cè)試為例來(lái)說(shuō)明如何分析和表示前置條件。

無(wú)失效驗(yàn)證方案參數(shù)確定是SRET的一項(xiàng)功能,為了使用SRET確定出無(wú)失效驗(yàn)證方案的參數(shù),就要求輸入變量測(cè)試類別的取值必須是無(wú)失效運(yùn)行測(cè)試,同時(shí)輸入變量對(duì)話框狀態(tài)的取值必須是關(guān)閉狀態(tài)。

上述分析表明,無(wú)失效驗(yàn)證方案參數(shù)確定的前置條件包括兩個(gè)變量約束:如果用TestType表示變量測(cè)試類別,用NoFai ̄lureTest表示TestType的取值無(wú)失效運(yùn)行測(cè)試,用DialogState表示變量對(duì)話框狀態(tài),用Closed表示DialogState的取值關(guān)閉狀態(tài),那么這兩個(gè)變量約束就可以表示為TestType{NoFailure ̄Test}和DialogState{Closed};又由于只有當(dāng)這兩個(gè)約束同時(shí)滿足時(shí)才能進(jìn)行參數(shù)確定,兩者之間存在邏輯與的關(guān)系,所以無(wú)失效驗(yàn)證方案參數(shù)確定的前置條件可以表示成TestType{NoFailureTest}∧DialogState{Closed}。

同理分析SRET其他功能的前置條件,最后根據(jù)分析結(jié)果自動(dòng)生成軟件可靠性測(cè)試用例。限于篇幅,生成的測(cè)試用例不在此處列出。

3 結(jié)束語(yǔ)

本文在工程實(shí)踐的基礎(chǔ)上較為系統(tǒng)地分析了測(cè)試用例生成過(guò)程中的前置條件,并對(duì)前置條件進(jìn)行了分類和參數(shù)化。研究結(jié)果既適用于在形式化規(guī)格說(shuō)明中描述前置條件,又適用于描述測(cè)試用例中的前置條件。實(shí)踐表明,本文的研究結(jié)果能夠準(zhǔn)確方便地描述前置條件,進(jìn)而提高了軟件測(cè)試用例的自動(dòng)生成過(guò)程。本文主要基于對(duì)嵌入式軟件的分析和研究,研究結(jié)果是否適用于其他類型的軟件還有待驗(yàn)證。

長(zhǎng)期以來(lái),前置條件在軟件測(cè)試中處于被忽略的地位,本文的撰寫希望引起有關(guān)人員的注意,將這方面的研究工作深入開(kāi)展下去。

本文中所涉及到的圖表、注解、公式等內(nèi)容請(qǐng)以PDF格式閱讀原文。

主站蜘蛛池模板: 国产成人一区| 亚洲性日韩精品一区二区| 国产麻豆aⅴ精品无码| 国产成人综合亚洲欧美在| 久久情精品国产品免费| 精品亚洲麻豆1区2区3区| 国产福利免费观看| 成人国产精品一级毛片天堂| 欧美性猛交一区二区三区| 麻豆精品在线视频| 中文字幕 91| 国产在线97| 四虎亚洲精品| 91小视频在线播放| 依依成人精品无v国产| 国产福利2021最新在线观看| 国内老司机精品视频在线播出| 国产麻豆福利av在线播放| 亚洲日韩Av中文字幕无码| 亚洲人成亚洲精品| 欧美国产在线一区| 在线色国产| 亚洲日韩精品无码专区| 国产精品流白浆在线观看| 青青草原国产免费av观看| 中文国产成人精品久久一| 欧美性天天| 91最新精品视频发布页| 国产中文一区二区苍井空| 国产原创演绎剧情有字幕的| 狠狠v日韩v欧美v| 国内精品免费| 亚洲国产日韩在线成人蜜芽| 高清久久精品亚洲日韩Av| 久久成人18免费| 中国成人在线视频| 手机精品福利在线观看| 五月天久久婷婷| 亚洲成aⅴ人在线观看| 婷婷色婷婷| 亚洲第一在线播放| 不卡无码h在线观看| 国产又黄又硬又粗| 伊人查蕉在线观看国产精品| 亚洲精品第一在线观看视频| 免费jizz在线播放| 久久综合色天堂av| 国产精品无码作爱| 国产伦精品一区二区三区视频优播| 国产精品女人呻吟在线观看| 免费国产黄线在线观看| 国产日本视频91| 婷婷色一区二区三区| 77777亚洲午夜久久多人| 毛片网站免费在线观看| 久久黄色视频影| 丁香五月激情图片| 精品99在线观看| 影音先锋丝袜制服| 久久亚洲黄色视频| 中文字幕亚洲电影| 免费国产在线精品一区| 国产美女丝袜高潮| 欧美福利在线观看| 欧美精品1区2区| 动漫精品啪啪一区二区三区| 国产成人毛片| 成人日韩欧美| 欧美成在线视频| 日本不卡在线播放| 国产三级韩国三级理| 亚洲欧洲综合| 亚洲中文字幕23页在线| 奇米影视狠狠精品7777| 国产香蕉在线| 亚洲综合狠狠| 亚洲欧洲国产成人综合不卡| 亚洲精品国产乱码不卡| 91成人免费观看| 超碰色了色| 日韩天堂在线观看| 国产精品污视频|