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

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

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

樊付星,黃大慶,周 未

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

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

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

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

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

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

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

2 常用自動化測試框架

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

2.1 測試腳本模塊化框架

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

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

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

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

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

2.5 混合自動化測試框架

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

3 ACRAT框架的設(shè)計

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

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

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

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

框架應(yīng)滿足的策略有:1)框架與應(yīng)用程序相互獨立;2)框架必須容易進行維護和擴展;3)框架所包含的測試策略和設(shè)計必須與框架無關(guān);4)框架所包含的測試策略和設(shè)計方法必須易于測試人員使用;5)框架擁有自己的測試庫;6)框架能夠易于進行測試設(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)進行測試時,主程序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)境,然后進行下一個測試用例的測試。

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

3.2.4 Action文件

Action文件記載了某個測試用例所要執(zhí)行的函數(shù)的集合,每一個測試目標都包括多個測試用例,每一個測試用例又由一系列的測試步驟完成,每個測試步驟由邏輯關(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(圖形用戶界面)中進行自動化操作。它利用模擬鍵盤按鍵,鼠標移動和窗口/控件的組合來實現(xiàn)自動化任務(wù)。該框架可以根據(jù)自己需要,添加相應(yīng)的工具,或者開發(fā)一些工具。

3.2.7 測試結(jié)果

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

4 測試流程

當(dāng)運行主程序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,這就是單獨執(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)用在不同類型的項目的測試過程中,該框架具有獨立性、腳本共享、可擴展性等特點,在應(yīng)用時可以根據(jù)項目自身的特點對其進行擴展和改進。但還存在不足之處,如何更好地設(shè)計測試用例和函數(shù)庫,以避免在一個用例運行失敗導(dǎo)致所有相關(guān)的測試用例失敗[7]。而且該框架與 STAF(Software Test Automation Framework)結(jié)合使用,可以實現(xiàn)跨平臺并行測試,這些都是以后重點研究的方向。

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

[2]賴利峰,劉強.Web應(yīng)用程序的一種功能自動化測試模型與實現(xiàn)[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)自動化功能測試框架研究與實踐[D].北京:北京郵電大學(xué),2011.

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

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

[6]朱菊,王志堅,楊雪.基于數(shù)據(jù)驅(qū)動的軟件自動化測試框架[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精品国产综合久久香蕉922| 91啪在线| 国产成人在线无码免费视频| 国产无码精品在线播放| 国产午夜在线观看视频| 国内黄色精品| 二级毛片免费观看全程| 亚洲国产亚综合在线区| 久操线在视频在线观看| 一级毛片网| 国产一区二区福利| 国产日韩欧美黄色片免费观看| 日本精品一在线观看视频| 午夜精品影院| 9966国产精品视频| 欧美色伊人| 女人18毛片久久| 一级香蕉人体视频| 在线观看av永久| 日本成人不卡视频| 无码日韩视频| 欧美亚洲综合免费精品高清在线观看| 国产欧美日韩综合一区在线播放| 91久久大香线蕉| 国产一区二区人大臿蕉香蕉| a级毛片视频免费观看| 8090成人午夜精品| 国产成人精品综合| 777午夜精品电影免费看| 茄子视频毛片免费观看| 欧美日韩免费在线视频| 好紧好深好大乳无码中文字幕| 91蝌蚪视频在线观看| 国产肉感大码AV无码| 亚洲av无码人妻| 久久国产亚洲欧美日韩精品| 中文字幕 欧美日韩| 欧美在线黄| 呦视频在线一区二区三区| 欧美精品亚洲精品日韩专区va| 日本伊人色综合网| 欧美国产视频| 国产高清在线丝袜精品一区| 婷婷开心中文字幕| 片在线无码观看| 99re这里只有国产中文精品国产精品| 欧美笫一页| 日本在线视频免费| 丝袜高跟美脚国产1区| 国产欧美日韩在线一区| 99视频国产精品| 中文字幕久久亚洲一区| 久久一色本道亚洲| 91网红精品在线观看| 九九九国产| 高清不卡毛片| 亚洲综合第一页| 色噜噜综合网| 欧美日韩精品综合在线一区| 乱人伦99久久| 国产啪在线| 国产精品高清国产三级囯产AV| 91无码视频在线观看| 蜜桃视频一区二区三区| 天天操精品| 丁香五月激情图片| 少妇被粗大的猛烈进出免费视频| 草草影院国产第一页| 久久久久久久久久国产精品| 欧洲亚洲欧美国产日本高清| 久久国语对白| 国产99欧美精品久久精品久久| 日本欧美精品| 99爱在线| 91啪在线| 亚洲av无码牛牛影视在线二区| aⅴ免费在线观看| 亚洲AV无码久久天堂| 亚洲色图另类| 国产日韩精品一区在线不卡| 九色视频线上播放| AV片亚洲国产男人的天堂|