• <tr id="yyy80"></tr>
  • <sup id="yyy80"></sup>
  • <tfoot id="yyy80"><noscript id="yyy80"></noscript></tfoot>
  • 99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

    面向C/S結(jié)構(gòu)的軟件自動(dòng)化測(cè)試工具的設(shè)計(jì)

    2010-08-18 00:58:54劉漢燁
    電子設(shè)計(jì)工程 2010年6期
    關(guān)鍵詞:測(cè)試軟件測(cè)試工具關(guān)鍵字

    劉漢燁

    (榆林學(xué)院 信息工程學(xué)院,陜西 榆林 719000)

    隨著IT技術(shù)的迅速發(fā)展,軟件的規(guī)模越來越大,軟件測(cè)試在整個(gè)開發(fā)流程中所占的比重越來越大。有關(guān)統(tǒng)計(jì)表明,在軟件開發(fā)總成本中,軟件測(cè)試所占的開銷為30%~50%[1-2]。有人估計(jì),測(cè)試階段的開銷要占到整個(gè)軟件生存周期開銷的50%甚至50%以上。如此巨大的軟件測(cè)試工作量,以往以手工測(cè)試為主的軟件測(cè)試方法往往會(huì)顯得力不從心,這為整個(gè)自動(dòng)化測(cè)試?yán)碚摰漠a(chǎn)生提供重要的應(yīng)用背景。

    軟件自動(dòng)化測(cè)試是解決當(dāng)今軟件復(fù)雜化測(cè)試的一個(gè)必然方向。軟件測(cè)試過程有很多操作是重復(fù)性的、非智力創(chuàng)造性、細(xì)致的工作。這類型的工作很適合做自動(dòng)化,因此如果能將軟件測(cè)試中大部分這種類型的工作實(shí)現(xiàn)自動(dòng)化測(cè)試,將會(huì)對(duì)軟件開發(fā)工作的質(zhì)量、成本和周期帶來非常顯著的效果[2]。

    1 相關(guān)概念

    1.1 回歸測(cè)試

    在軟件開發(fā)過程中,測(cè)試工作的很大一部分是回歸測(cè)試(Regression Testing)?;貧w測(cè)試主要是驗(yàn)證系統(tǒng)的變更是否影響系統(tǒng)在變更前所具有的功能,保證當(dāng)前變更功能的正確性。在漸進(jìn)和快速迭代開發(fā)中,新版本的連續(xù)發(fā)布使回歸測(cè)試的執(zhí)行更加頻繁,而在產(chǎn)品即將發(fā)布的時(shí)間段內(nèi),更是要求每天都進(jìn)行若干次回歸測(cè)試。為了驗(yàn)證修改的正確性及其影響,就需要進(jìn)行回歸測(cè)試,執(zhí)行回歸測(cè)試時(shí),首要應(yīng)考慮覆蓋范圍足夠大,而且用盡可能少的時(shí)間執(zhí)行回歸測(cè)試,盡量進(jìn)行自動(dòng)化的回歸測(cè)試[3]。

    1.2 關(guān)鍵字驅(qū)動(dòng)技術(shù)

    為了讓測(cè)試程序按照我們的意圖去執(zhí)行測(cè)試,就需要使用一組控制命令來控制腳本的執(zhí)行。這些控制命令是由測(cè)試軟件的共享函數(shù)庫來解釋的[4]。這些控制命令就是關(guān)鍵字,代表某個(gè)動(dòng)作。關(guān)鍵字的不同組合可以構(gòu)成不同的測(cè)試邏輯。

    2 自動(dòng)化測(cè)試工具的設(shè)計(jì)

    2.1 總體框架模型的設(shè)計(jì)

    測(cè)試工具包括以下組件:測(cè)試引擎、測(cè)試用例列表、測(cè)試用例配置文件集、測(cè)試用例集、日志生成器及公共函數(shù)庫等。測(cè)試工具的體系結(jié)構(gòu)如圖1所示。

    圖1 測(cè)試工具系統(tǒng)架構(gòu)

    2.2 自動(dòng)測(cè)試框架的實(shí)現(xiàn)

    測(cè)試軟件的測(cè)試框架基于3層腳本驅(qū)動(dòng)方案,即測(cè)試軟件的測(cè)試腳本分為3類:高層腳本、中層腳本及低層腳本[4-6]。高層腳本為測(cè)試引擎,其主要工作為解析測(cè)試用例表,并將解析出的結(jié)果傳遞給中層腳本或底層腳本。中層腳本位于測(cè)試腳本集中。測(cè)試腳本集是中層腳本和底層腳本所在目錄,測(cè)試腳本根據(jù)測(cè)試用例的不同分類分布在不同的文件夾下。中層腳本主要負(fù)責(zé)接收高層腳本的解析結(jié)果,并調(diào)動(dòng)底層腳本。底層腳本為測(cè)試用例具體執(zhí)行腳本,是測(cè)試過程的主要實(shí)施者,每個(gè)測(cè)試用例對(duì)應(yīng)1個(gè)底層腳本,腳本名與測(cè)試用例名一致。

    2.3 測(cè)試工具主要模塊

    2.3.1 測(cè)試引擎的設(shè)計(jì)

    測(cè)試引擎主要由初始化、命令行解析、測(cè)試用例執(zhí)行及系統(tǒng)清理和恢復(fù)等4個(gè)模塊組成。

    1)初始化模塊 主要負(fù)責(zé)處理初始化工作。初始化工作包括檢查被測(cè)軟件的工作狀態(tài),修改相關(guān)文件夾屬性,載入相關(guān)運(yùn)行函數(shù)庫等。

    2)命令行參數(shù)解析模塊 主要負(fù)責(zé)解析運(yùn)行測(cè)試工具的命令行,以便完成不同類型的測(cè)試。

    3)配置文件備份和恢復(fù)模塊 主要負(fù)責(zé)測(cè)試工具運(yùn)行前被測(cè)軟件部分配置文件的備份情況,以便在測(cè)試工具發(fā)生運(yùn)行錯(cuò)誤時(shí)及時(shí)恢復(fù)被測(cè)環(huán)境。

    4)測(cè)試用例執(zhí)行模塊 測(cè)試引擎4個(gè)模塊中最核心的模塊。該模塊的主要任務(wù)有:從測(cè)試用例表中自動(dòng)調(diào)用所需的測(cè)試用例并執(zhí)行之;生成測(cè)試日志和測(cè)試報(bào)告;從已結(jié)束的測(cè)試用例中獲取返回信息;清理及重新初始化系統(tǒng)。

    2.3.2 配置模塊設(shè)計(jì)

    配置模塊主要負(fù)責(zé)測(cè)試工具測(cè)試環(huán)境的配置。測(cè)試工作所需的各種環(huán)境變量都是可配置的,測(cè)試人員在測(cè)試時(shí)可以根據(jù)自己的測(cè)試場(chǎng)景選擇配置。該配置模塊中主要有用戶配置、機(jī)器配置、測(cè)試用例列表、測(cè)試數(shù)據(jù)文件及測(cè)試軟件測(cè)試過程中所需要的其他配置信息。測(cè)試用例列表是整個(gè)配置模塊的核心文件,整個(gè)測(cè)試工具在測(cè)試過程中所要用到的有關(guān)測(cè)試用例的信息全部在測(cè)試用例列表中獲取。測(cè)試用例列表最基本的組成部分應(yīng)包括測(cè)試用例ID、測(cè)試用例執(zhí)行腳本的目錄位置及測(cè)試用例功能描述信息等。測(cè)試數(shù)據(jù)文件中包含的內(nèi)容有測(cè)試用例測(cè)試邏輯、關(guān)鍵字及測(cè)試數(shù)據(jù)等。在測(cè)試的執(zhí)行過程中,測(cè)試工具會(huì)依據(jù)不同的測(cè)試場(chǎng)景從中取得所需要的數(shù)據(jù),用以替代測(cè)試驅(qū)動(dòng)和執(zhí)行腳本中的變量。

    2.3.3 日志系統(tǒng)設(shè)計(jì)

    日志系統(tǒng)也是測(cè)試工具的設(shè)計(jì)中非常重要的一個(gè)模塊。測(cè)試工具的日志系統(tǒng)包括3部分,分別是單個(gè)測(cè)試用例的測(cè)試日志,測(cè)試用例組的測(cè)試報(bào)告及整個(gè)測(cè)試過程的測(cè)試報(bào)告。從日志系統(tǒng)產(chǎn)生的日志類型來劃分,日志由2部分組成:一部分是輸出到測(cè)試機(jī)器屏幕上的日志,用戶使用輸出到測(cè)試機(jī)器屏幕上的日志可以很方便的跟蹤測(cè)試過程;另一部分是以文件的形式保存起來的日志。后一種類型的日志保存在一個(gè)文件夾內(nèi),該文件夾是測(cè)試日志的頂級(jí)目錄,文件夾內(nèi)的測(cè)試日志又以不同分類的測(cè)試用例而歸類保存。日志系統(tǒng)目錄結(jié)構(gòu)圖如圖2所示。

    圖2 日志目錄結(jié)構(gòu)圖

    2.4 測(cè)試用例模板方案

    被測(cè)軟件測(cè)試點(diǎn)依據(jù)功能的復(fù)雜程度來劃分,一般情況下可以劃分為2大類:復(fù)雜功能測(cè)試點(diǎn)和簡(jiǎn)單功能測(cè)試點(diǎn)。針對(duì)這兩種不同類型的測(cè)試點(diǎn),可以采用兩種不同的設(shè)計(jì)方案。即結(jié)構(gòu)化單腳本測(cè)試模板方案和關(guān)鍵字驅(qū)動(dòng)技術(shù)方案[7]。

    2.4.1 結(jié)構(gòu)化單腳本模板方案

    結(jié)構(gòu)化腳本模板方案主要是針對(duì)復(fù)雜的功能測(cè)試點(diǎn)而設(shè)計(jì)的。被測(cè)軟件的測(cè)試用例被劃分成了很多測(cè)試組,每一組測(cè)試用例在功能上基本接近,組內(nèi)不同測(cè)試用例有可能只是所用的參數(shù)不同。那么這類測(cè)試用例就可以使用結(jié)構(gòu)化單腳本模板方案。該方案的實(shí)施方法是:首先為測(cè)試用例開發(fā)一個(gè)模板腳本,組內(nèi)其他測(cè)試用例腳本負(fù)責(zé)向模板腳本傳遞參數(shù)。

    2.4.2 關(guān)鍵字驅(qū)動(dòng)技術(shù)方案

    關(guān)鍵字驅(qū)動(dòng)技術(shù)方案主要是針對(duì)功能比較單一的測(cè)試點(diǎn)而設(shè)計(jì)的。該方案的實(shí)施方法是:首先在配置文件目錄中新建一個(gè)數(shù)據(jù)文件,數(shù)據(jù)文件中存儲(chǔ)的是各測(cè)試用例的配置信息,具體包括測(cè)試邏輯的定義、測(cè)試所需的數(shù)據(jù)及定義好的關(guān)鍵字。由于該方案主要針對(duì)于單一測(cè)試點(diǎn),所以測(cè)試邏輯可以分為4大部分,邏輯結(jié)構(gòu)可用以下結(jié)構(gòu)來表示:

    其中,Begin和End是測(cè)試工具保留字,用來定義每個(gè)測(cè)試用例的開始和結(jié)束,緊接著它們的是測(cè)試用例的測(cè)試序列號(hào),該測(cè)試序列號(hào)在整個(gè)測(cè)試工具中是唯一的。preAction用來定義測(cè)試用例執(zhí)行之前的一系列初始化操作,比如測(cè)試時(shí)所需要?jiǎng)?chuàng)建的文件、配置所需配置信息等。testAction是真正的測(cè)試用例執(zhí)行步驟,測(cè)試用例在測(cè)試中所需完成的測(cè)試動(dòng)作都需要在這一項(xiàng)定義。resultCheck是用來檢測(cè)測(cè)試用例執(zhí)行結(jié)果的,判斷測(cè)試用例是否通過測(cè)試。postAction負(fù)責(zé)一系列的收尾工作,比如刪除測(cè)試過程中產(chǎn)生的臨時(shí)文件、殺死進(jìn)程等工作。

    配置信息中的關(guān)鍵字是根據(jù)被測(cè)試用例的特點(diǎn)而設(shè)計(jì)的,比如需要運(yùn)行命令,可以設(shè)計(jì)一個(gè)關(guān)鍵字gRuncmd,需要?jiǎng)?chuàng)建文件可以設(shè)計(jì)一個(gè)關(guān)鍵字gCheckfile,關(guān)鍵字的解釋需要專門的函數(shù)庫來支撐。

    2.5 測(cè)試工具的測(cè)試流程

    測(cè)試工具的測(cè)試流程如下:

    1)向CVS服務(wù)器發(fā)送更新代碼請(qǐng)求,獲取最新的測(cè)試工具代碼。

    2)啟動(dòng)測(cè)試引擎,并解析配置信息文件。

    3)根據(jù)測(cè)試配置信息中的配置信息,確定啟動(dòng)相應(yīng)的測(cè)試方案。如果是為測(cè)試點(diǎn)編輯了單獨(dú)的測(cè)試腳本,那么根據(jù)配置信息中提供的腳本路徑尋找腳本;如果測(cè)試點(diǎn)選用關(guān)鍵字驅(qū)動(dòng)技術(shù)方案進(jìn)行測(cè)試,那么調(diào)用測(cè)試數(shù)據(jù)文件并解析之,驅(qū)動(dòng)數(shù)據(jù)文件中的關(guān)鍵字執(zhí)行測(cè)試。

    4)自動(dòng)判斷測(cè)試成功與否,并將結(jié)果實(shí)時(shí)返回。

    5)在執(zhí)行各個(gè)測(cè)試用例的同時(shí)啟動(dòng)日志產(chǎn)生程序,將每個(gè)測(cè)試用例的測(cè)試日志按組保存在測(cè)試報(bào)告文件夾中。

    3 結(jié)束語

    測(cè)試工具主要使用B-shell語言實(shí)現(xiàn),可以使測(cè)試軟件部署在不同的操作系統(tǒng)中;測(cè)試工具使用測(cè)試引擎自動(dòng)調(diào)動(dòng)測(cè)試用例及配置測(cè)試環(huán)境,提高了測(cè)試效率;根據(jù)測(cè)試軟件功能塊的不同特點(diǎn),設(shè)計(jì)了2種不同的測(cè)試方案,增強(qiáng)了測(cè)試軟件的靈活性。該測(cè)試方案在platform公司Job scheduler產(chǎn)品上完成了實(shí)施,取得了預(yù)期的效果。但該方案也有一定的缺陷。由于該工具主要使用B-shell語言實(shí)現(xiàn)測(cè)試腳本,速度比較慢。所以如果測(cè)試軟件測(cè)試用例比較多的話,建議使用其他語言來實(shí)現(xiàn)測(cè)試引擎及測(cè)試腳本,比如Perl或Java。

    [1]Cen Kaner,Jack Falk,Hung Quoc Nguyen.計(jì)算機(jī)軟件測(cè)試技術(shù)[M].王峰,陳杰,喻琳,譯.北京:機(jī)械工業(yè)出版社,1992:19-46.

    [2]陳雷.基于軟件功能的自動(dòng)化回歸測(cè)試技術(shù)的研究與應(yīng)用[D].西安:西北工業(yè)大學(xué),2005.

    [3]商宇.基于STAF的自動(dòng)化測(cè)試工具的研究和設(shè)計(jì)[J].云南大學(xué)學(xué)報(bào),2009,18(3):279-282.

    [4]朱菊,王志堅(jiān),楊雪.基于數(shù)據(jù)驅(qū)動(dòng)的軟件自動(dòng)化測(cè)試框架[J].計(jì)算機(jī)技術(shù)與發(fā)展,2006,16(5):69-70.

    [5]徐振良,樊濱溫,王志鵬.關(guān)鍵字驅(qū)動(dòng)技術(shù)在SAFS中的研究[J].微計(jì)算機(jī)信息,2006,22(15):80-83.

    [6]王鐵江,酈萌.基于關(guān)鍵字驅(qū)動(dòng)腳本的安全軟件自動(dòng)測(cè)試系統(tǒng)[J].同濟(jì)大學(xué)學(xué)報(bào),2002,30(6):720-722.

    [7]王蕾.基于數(shù)據(jù)驅(qū)動(dòng)的軟件自動(dòng)化測(cè)試框架系統(tǒng)的研究與實(shí)現(xiàn)[J].軟件導(dǎo)刊,2009,8(6):32-33.

    猜你喜歡
    測(cè)試軟件測(cè)試工具關(guān)鍵字
    邊緣智力兒童及其智力測(cè)試工具的研究進(jìn)展
    履職盡責(zé)求實(shí)效 真抓實(shí)干勇作為——十個(gè)關(guān)鍵字,盤點(diǎn)江蘇統(tǒng)戰(zhàn)的2021
    網(wǎng)絡(luò)自適應(yīng)測(cè)試軟件運(yùn)行方法設(shè)計(jì)
    成功避開“關(guān)鍵字”
    Http并發(fā)連接測(cè)試工具
    自動(dòng)化檢測(cè)EPU10A板卡系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)
    福祿克推出先進(jìn)的連接式測(cè)試工具系統(tǒng)
    遠(yuǎn)程開放教育學(xué)生自主學(xué)習(xí)能力評(píng)價(jià)的研究
    一款重型包裝抗壓系統(tǒng)控制軟件的設(shè)計(jì)與開發(fā)
    軟件工程(2014年7期)2014-09-24 20:03:26
    基于用戶反饋的關(guān)系數(shù)據(jù)庫關(guān)鍵字查詢系統(tǒng)
    黄平县| 桃江县| 新泰市| 清远市| 阳城县| 维西| 德钦县| 烟台市| 巴林右旗| 嘉定区| 西畴县| 浪卡子县| 凯里市| 攀枝花市| 南宁市| 花莲县| 读书| 营山县| 来宾市| 黄平县| 高淳县| 惠水县| 拉萨市| 东海县| 曲沃县| 健康| 沾益县| 黄冈市| 巫溪县| 金坛市| 温宿县| 察雅县| 上饶市| 井陉县| 长垣县| 漳州市| 定边县| 蓬莱市| 赤水市| 辽源市| 古丈县|