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

基于Web的自動化測試框架的研究與實(shí)現(xiàn)

2012-06-09 10:26:08樊付星黃大慶
電子設(shè)計工程 2012年20期

樊付星,黃大慶,周 未

(1.南京航空航天大學(xué) 電子信息工程學(xué)院,江蘇 南京 210016;2.南京航空航天大學(xué) 無人機(jī)研究院,江蘇 南京 210016;3.南京軍代局駐南京大橋機(jī)器廠軍事代表室 江蘇 南京 211101)

為了提高測試效率,越來越多的測試工作引入了自動化測試的思想和方法。尤其隨著Web應(yīng)用的越來越復(fù)雜,對Web應(yīng)用的測試也提出了更高的要求,也對測試帶來了諸多問題如測試中重復(fù)的和非智力性的工作量越來越大。實(shí)踐證明,軟件自動化測試技術(shù)提高了軟件測試的速度和效率,節(jié)省了軟件測試成本,縮短了產(chǎn)品發(fā)布周期。同時,自動化測試技術(shù)也完成了許多手工測試無法實(shí)現(xiàn)的工作。所以,采用自動化測試方法和相應(yīng)的測試框架成為了軟件開發(fā)組織測試工作的重要支撐手段。但是自動化測試如果沒有經(jīng)過良好的設(shè)計,不但耗資大,而且還需要大量的維護(hù)工作。而設(shè)計良好的自動化測試框架不但維護(hù)成本低,且效率較高。因此,對Web自動化測試框架的研究具有重要意義[1]。

自動化測試框架就是一個由假設(shè)、概念以及為自動化測試提供支持的實(shí)踐的集合[2]。文中描述了5種基本的自動化測試框架:模塊化測試腳本框架,測試庫構(gòu)架框架,關(guān)鍵字驅(qū)動測試框架,數(shù)據(jù)驅(qū)動測試框架,混合自動化測試框架。現(xiàn)有的框架大多是在具體工具的基礎(chǔ)上而建立起來的,如QTP、WinRunner等,ACRAT框架沒有使用現(xiàn)成的測試工具,這也就避免了使用工具的不足。

1 自動化測試的優(yōu)點(diǎn)及局限性

自動化測試具有以下優(yōu)點(diǎn):1)令軟件新版本進(jìn)行回歸測試的開銷最小。2)可以在更短的時間內(nèi)完成更多的測試。3)可以完成一些手工測試不能或難以完成的測試。4)測試具有一致性和可重復(fù)性。5)更好地利用資源。6)測試的復(fù)用性高。7)可以更快地將軟件推向市場。

自動化測試并不是萬能的,自動化測試所完成的功能也有一定的局限性,主要表現(xiàn)在以下幾個方面:1)某些情況下不宜使用自動化測試。2)自動化測試對測試質(zhì)量的依賴性極大。3)自動化測試工具本身并不具有靈活性。4)自動化測試不能提高有效性。5)自動化測試比手工測試發(fā)現(xiàn)的缺陷更少。6)自動化測試可能會制約軟件開發(fā)。

通過以上分析可看出自動化測試并不能完全取代手工測試。認(rèn)識到軟件自動化測試的這些局限性有助于我們更加合理的對軟件測試進(jìn)行自動化,通過自動化測試與手工測試的完美結(jié)合,充分發(fā)揮各自優(yōu)勢,以達(dá)到更好的測試效果。

2 常用自動化測試框架

以下論述5種基本的自動化測試框架[3-5],這些框架是了解自動測試框架以及根據(jù)自己的需要和經(jīng)驗(yàn)來設(shè)計自己的自動測試框架的基礎(chǔ)。

2.1 測試腳本模塊化框架

測試腳本模塊化框架是通過創(chuàng)建小的獨(dú)立的腳本來代表被測試應(yīng)用程序的模塊和函數(shù),然后用一種分層的方式將這些小腳本組成更大的測試,從而實(shí)現(xiàn)一個特定的測試用例。

為了提高自動化測試套件的可維護(hù)性,測試腳本模塊化框架應(yīng)用了抽象和封裝的原則。它采用了一個很著名的編程策略,就是在一個部件前面構(gòu)建一個抽象層以掩藏應(yīng)用程序其它的部件。它把應(yīng)用程序從部件的修改中隔離出來,并規(guī)定了在應(yīng)用程序設(shè)計中的模塊性。這種測試框架在以后所提到的各種框架中是最容易精通和掌握的。

2.2 測試庫構(gòu)架框架

測試庫構(gòu)架框架和測試腳本模塊化框架非常相似,有著同樣的優(yōu)勢。但是它把被測應(yīng)用程序分成過程和函數(shù),而不是腳本。這種框架要求創(chuàng)建庫文件來代表被測應(yīng)用程序模塊、零件或函數(shù),然后這些庫文件被測試用例腳本直接調(diào)用。

2.3 數(shù)據(jù)驅(qū)動測試框架

將數(shù)據(jù)驅(qū)動腳本技術(shù)運(yùn)用到自動化測試框架中就形成了數(shù)據(jù)驅(qū)動測試框架。這種框架從某個數(shù)據(jù)文件(例如ODBC源文件、Excel文件、.CSV文件、ADO對象文件等)中讀取輸入、輸出的測試數(shù)據(jù),然后通過變量傳入事先錄制好的或手工編寫的測試腳本中。其中,這些變量被用作傳遞(輸入/輸出)用來驗(yàn)證應(yīng)用程序的測試數(shù)據(jù)。在這個過程當(dāng)中,數(shù)據(jù)文件的讀取、測試狀態(tài)和所有測試信息都被編寫進(jìn)測試腳本里;測試數(shù)據(jù)只包含在數(shù)據(jù)文件中,而不是腳本里,測試腳本只是一個“驅(qū)動”,或者說是一個傳送數(shù)據(jù)的機(jī)制。

數(shù)據(jù)驅(qū)動的自動化測試?yán)孟嗤臏y試過程測試不同的輸入、輸出組合。它將測試輸入和預(yù)期輸出組織為表,表中的一行對應(yīng)一個測試。然后創(chuàng)建一個從表中逐行讀入的自動化測試過程,執(zhí)行每個輸入步驟,并檢驗(yàn)預(yù)期結(jié)果。當(dāng)把數(shù)據(jù)驅(qū)動測試過程放在一起后,就可以反復(fù)使用該過程來執(zhí)行新測試。這種手段對于有很多不同數(shù)據(jù)選項(xiàng)的應(yīng)用來說最有效。

2.4 關(guān)鍵字驅(qū)動測試框架

到目前為止,比較理想的自動化測試框架是“關(guān)鍵字”驅(qū)動的自動化測試框架,有時候也稱為表驅(qū)動自動化測試框架,它是對數(shù)據(jù)驅(qū)動自動化測試的有效改進(jìn)和補(bǔ)充。這個框架需要開發(fā)數(shù)據(jù)表和關(guān)鍵字。這些數(shù)據(jù)表和關(guān)鍵字獨(dú)立于執(zhí)行它們的測試自動化工具,并可以用來“驅(qū)動”待測應(yīng)用程序和數(shù)據(jù)的測試腳本代碼,使自動化測試框架獨(dú)立于應(yīng)用程序。關(guān)鍵字驅(qū)動測試看上去與手工測試用例很類似。在一個關(guān)鍵字驅(qū)動測試中,把待測應(yīng)用程序的功能和每個測試用例的執(zhí)行步驟一起寫到一個表中。

2.5 混合自動化測試框架

最普遍的執(zhí)行框架是上面介紹的所有技術(shù)的一個結(jié)合,取其長處,彌補(bǔ)其不足。這個混合測試框架是由大部分框架隨著時間并經(jīng)過若干項(xiàng)目演化而來的。

3 ACRAT框架的設(shè)計

ACRAT框架式基于數(shù)據(jù)驅(qū)動測試方法學(xué)[6-7]的一種測試框架,可以實(shí)現(xiàn)腳本的重復(fù)使用,明顯降低測試腳本的規(guī)模。數(shù)據(jù)驅(qū)動模型如圖1所示。

圖1 數(shù)據(jù)驅(qū)動模型Fig.1 Data-driven module

3.1 ACRAT框架的設(shè)計思路

測試框架應(yīng)具備如下特點(diǎn):測試流程總體控制,測試數(shù)據(jù)驅(qū)動,測試框架獨(dú)立性,測試模塊的原子性以及測試模塊的可擴(kuò)展性。

框架應(yīng)滿足的策略有:1)框架與應(yīng)用程序相互獨(dú)立;2)框架必須容易進(jìn)行維護(hù)和擴(kuò)展;3)框架所包含的測試策略和設(shè)計必須與框架無關(guān);4)框架所包含的測試策略和設(shè)計方法必須易于測試人員使用;5)框架擁有自己的測試庫;6)框架能夠易于進(jìn)行測試設(shè)計的重用和管理。

3.2 ACRAT框架結(jié)構(gòu)

ACRAT由主程序、模塊、測試函數(shù)庫、Action文件、Data文件、支持工具和測試結(jié)果等組成,圖2描述了ACRAT自動化測試框架的結(jié)構(gòu)。

圖2 ACRAT框架的結(jié)構(gòu)Fig.2 Structure of ACRAT framework

3.2.1 主程序

當(dāng)進(jìn)行測試時,主程序Acrat.pl被調(diào)用執(zhí)行。根據(jù)命令行參數(shù)執(zhí)行不同的命令,首先是將文本文件編寫的testcase編譯(Acrat.pl-buildex=BEP)到 XML文件中,然后讀取 XML文件,根據(jù)XML文件讀取測試用例環(huán)境及測試用例狀態(tài),并在每個testcase執(zhí)行前配置好環(huán)境,同時觸發(fā)數(shù)據(jù)驅(qū)動引擎來解析測試用例文件,并根據(jù)解析結(jié)果來調(diào)用相應(yīng)的功能函數(shù),以及調(diào)用數(shù)據(jù)文件中的數(shù)據(jù)關(guān)鍵字來執(zhí)行測試,當(dāng)某個測試用例執(zhí)行完后,程序會刪除該測試用例的測試環(huán)境,然后進(jìn)行下一個測試用例的測試。

3.2.2 模塊

ACRAT中的模塊包括專業(yè)模塊、框架以及公共模塊。專業(yè)模塊則包括處理特定的功能或者協(xié)議所需要的支持函數(shù),例如 perl中的各種模塊(Win32::IEAutomation)。這些功能模塊都放在函數(shù)庫lib中。框架和公共模塊包含一些框架和公共函數(shù),例如數(shù)據(jù)驅(qū)動引擎。ACRAT框架將一些配置信息以全局變量的形式定義在了公共模塊中,這些配置包括文件目錄、數(shù)據(jù)目錄、測試組合目錄、log目錄以及一些服務(wù)、proxy的配置等。

3.2.3 測試庫函數(shù)

測試庫函數(shù)就是由測試人員自己編寫的功能函數(shù),根據(jù)具體的測試要求,實(shí)現(xiàn)相應(yīng)的功能,供執(zhí)行腳本時調(diào)用,幫助測試人員實(shí)現(xiàn)自動化,例如,打開IE,瀏覽網(wǎng)頁,匹配某一個關(guān)鍵字就可以定義一個函數(shù)BrowseURL()。

3.2.4 Action文件

Action文件記載了某個測試用例所要執(zhí)行的函數(shù)的集合,每一個測試目標(biāo)都包括多個測試用例,每一個測試用例又由一系列的測試步驟完成,每個測試步驟由邏輯關(guān)鍵字代表的低層次腳本,加上數(shù)據(jù)關(guān)鍵字代表的測試數(shù)據(jù)組合而成。如圖3所示,此即為Action文件中的一個測試用例。

圖3 Action文件Fig.3 Action file

3.2.5 Data文件

Data文件中保存了所有要用到的測試數(shù)據(jù),測試數(shù)據(jù)是特定測試產(chǎn)品和測試組合的測試數(shù)據(jù),例如輸入數(shù)據(jù)及期望的結(jié)果。當(dāng)執(zhí)行某一個測試用例的時候,主程序會將這些數(shù)據(jù)以變量的形式傳送給相應(yīng)的函數(shù)。

3.2.6 支持工具

ACRAT框架目前只支持Firefox和IE瀏覽器,通過MozRepl來控制Firefox瀏覽器,通過AutoIt工具對Windows GUI(圖形用戶界面)中進(jìn)行自動化操作。它利用模擬鍵盤按鍵,鼠標(biāo)移動和窗口/控件的組合來實(shí)現(xiàn)自動化任務(wù)。該框架可以根據(jù)自己需要,添加相應(yīng)的工具,或者開發(fā)一些工具。

3.2.7 測試結(jié)果

測試結(jié)果組件收集測試結(jié)果信息,包括一個測試結(jié)果總結(jié),如測試執(zhí)行了幾個測試用例、執(zhí)行時間以及成功、失敗的用例數(shù);還包括一個失敗的測試用例執(zhí)行的詳細(xì)信息,該測試用例失敗了,記錄了具體是哪個函數(shù)失敗了,以便于檢測。

4 測試流程

當(dāng)運(yùn)行主程序Acrat.pl時,開始測試。主程序是一個perl腳本程序。它初始化測試環(huán)境,解析配置文件,啟動數(shù)據(jù)驅(qū)動引擎,根據(jù)XML文件對測試用例的描述,從Action File中獲得測試用例所要執(zhí)行的測試步驟,從Data File中獲得數(shù)據(jù)關(guān)鍵字,測試結(jié)束后獲得測試結(jié)果。

整個自動化測試依賴于主程序Acrat.pl,根據(jù)參數(shù),可以有選擇的執(zhí)行單個測試用例或者全部測試用例,例如Acrat.pl-prefix=測試用例xxx-debug,這就是單獨(dú)執(zhí)行測試用例xxx。主程序?qū)ε渲眯畔ⅲ瑴y試用例解析,從Action File中獲取測試用例所要執(zhí)行的功能函數(shù),然后通過驅(qū)動自動測試腳本調(diào)用功能函數(shù)來執(zhí)行測試用例,最終獲得測試結(jié)果。

5 結(jié)束語

文中提出了一種基于Web的自動化測試框架,它是以數(shù)據(jù)驅(qū)動方法學(xué)為基礎(chǔ)設(shè)計出來的,可以應(yīng)用在不同類型的項(xiàng)目的測試過程中,該框架具有獨(dú)立性、腳本共享、可擴(kuò)展性等特點(diǎn),在應(yīng)用時可以根據(jù)項(xiàng)目自身的特點(diǎn)對其進(jìn)行擴(kuò)展和改進(jìn)。但還存在不足之處,如何更好地設(shè)計測試用例和函數(shù)庫,以避免在一個用例運(yùn)行失敗導(dǎo)致所有相關(guān)的測試用例失敗[7]。而且該框架與 STAF(Software Test Automation Framework)結(jié)合使用,可以實(shí)現(xiàn)跨平臺并行測試,這些都是以后重點(diǎn)研究的方向。

[1]朱少民.軟件測試方法和技術(shù)[M].北京:清華大學(xué)出版社,2005.

[2]賴?yán)澹瑒?qiáng).Web應(yīng)用程序的一種功能自動化測試模型與實(shí)現(xiàn)[J].計算機(jī)工程,2006,32(17):42-44.LAI Li-feng,LIU Qiang.A model and implementation of function test automation for web applications[J].Computer Engineering,2006,32(17):42-44.

[3]李曉會.Web系統(tǒng)自動化功能測試框架研究與實(shí)踐[D].北京:北京郵電大學(xué),2011.

[4]曾北溟.自動化測試框架的研究與實(shí)現(xiàn)[D].武漢:武漢大學(xué),2004.

[5]王光源.Web應(yīng)用的自動化測試[D].濟(jì)南:山東大學(xué),2006.

[6]朱菊,王志堅(jiān),楊雪.基于數(shù)據(jù)驅(qū)動的軟件自動化測試框架[J].計算機(jī)技術(shù)與發(fā)展,2006,16(5)68-70.ZHU Ju,WANG Zhi-jian,YANG Xue.A software automation test frameworks based on data-driven automation methodology[J].Computer Technology and Development,2006,16 (5)68-70.

[8]Mike K.Choosing a Test Automation Framework[S].IBM Developer.

主站蜘蛛池模板: 亚洲国产综合第一精品小说| 色天堂无毒不卡| 精品无码国产自产野外拍在线| 日本三区视频| 毛片视频网| 又污又黄又无遮挡网站| 91精品视频播放| 日本一区二区三区精品视频| 亚洲国产成人精品一二区| 欧美亚洲国产日韩电影在线| 18禁影院亚洲专区| 亚洲国产在一区二区三区| 国产日韩丝袜一二三区| 91亚洲影院| www.亚洲一区| 久久a毛片| 制服丝袜国产精品| 天堂av高清一区二区三区| 久久人午夜亚洲精品无码区| 国产极品粉嫩小泬免费看| 小蝌蚪亚洲精品国产| 久久精品国产在热久久2019| 成年A级毛片| 国产激爽爽爽大片在线观看| 在线观看视频一区二区| 亚洲精品爱草草视频在线| 成人久久18免费网站| 丁香五月激情图片| 99在线国产| 日本午夜精品一本在线观看| 99精品这里只有精品高清视频| 性色在线视频精品| 亚洲中文在线看视频一区| 久久中文电影| 国产精品极品美女自在线看免费一区二区| 国产成人精品免费av| 亚洲色图欧美| 狠狠色综合网| 欧美日一级片| 国产乱人伦AV在线A| 99久久99视频| 久久国产精品麻豆系列| 91精品国产福利| 成人国产三级在线播放| 亚洲国产日韩在线成人蜜芽| 国产精品亚洲αv天堂无码| 国产免费网址| 亚洲一区二区三区中文字幕5566| 亚洲国产日韩视频观看| 婷婷成人综合| 伊人AV天堂| 国产十八禁在线观看免费| 欧美国产精品拍自| 亚洲精品在线影院| 成人福利免费在线观看| 成人第一页| 亚洲成人精品| 无码精油按摩潮喷在线播放| 欧美专区日韩专区| 免费可以看的无遮挡av无码| 亚洲人成网址| 97人妻精品专区久久久久| 免费精品一区二区h| 就去吻亚洲精品国产欧美| 欧美www在线观看| 天天色天天综合| 亚洲三级电影在线播放| 欧美乱妇高清无乱码免费| 国产国语一级毛片| 国产尤物在线播放| 免费一级毛片不卡在线播放| 欧美成人免费午夜全| 国产精品一老牛影视频| 91久久国产热精品免费| 制服丝袜无码每日更新| 国产成人精品高清在线| 真实国产精品vr专区| 亚洲开心婷婷中文字幕| 久久综合色播五月男人的天堂| 白浆免费视频国产精品视频| 日韩欧美中文字幕在线韩免费 | 国产精品亚洲精品爽爽|