上海電氣電站集團(tuán)設(shè)備有限公司 賈燁維
Web自動(dòng)化測(cè)試框架的設(shè)計(jì)與實(shí)現(xiàn)
上海電氣電站集團(tuán)設(shè)備有限公司 賈燁維
【摘要】隨著社會(huì)的進(jìn)步以及科技的發(fā)展,各行各業(yè)的工作類(lèi)型趨于多樣化和信息化,人們對(duì)信息處理的高效化和規(guī)范化也愈發(fā)迫切。同時(shí),隨著科技發(fā)展特別是互聯(lián)網(wǎng)技術(shù)的不斷普及,各互聯(lián)網(wǎng)公司的數(shù)量不斷增加,為了促進(jìn)web技術(shù)的進(jìn)一步發(fā)展,促進(jìn)互聯(lián)網(wǎng)公司以及各新型行業(yè)的發(fā)展,提高web工作人員的職業(yè)技術(shù)水平迫在眉睫。對(duì)此,本文基于web自動(dòng)化測(cè)試框架,研究其在實(shí)際工作中的設(shè)計(jì)理念和實(shí)現(xiàn)方式,并對(duì)它的優(yōu)勢(shì)和不足進(jìn)行了簡(jiǎn)單分析。
【關(guān)鍵詞】自動(dòng)化測(cè)試;框架設(shè)計(jì);Web
進(jìn)入21世紀(jì)以來(lái),隨著以阿里巴巴、京東為代表的電子商務(wù)飛速發(fā)展,Web應(yīng)用程序作為電子商務(wù)的支撐技術(shù),在社會(huì)的各個(gè)領(lǐng)域內(nèi)變得越來(lái)越重要,而人們也越來(lái)越重視Web應(yīng)用程序的運(yùn)行質(zhì)量與效果。但是,傳統(tǒng)的測(cè)試方法需要程序人員對(duì)Web程序的兼容性以及回歸性進(jìn)行反復(fù)測(cè)驗(yàn),雖然目前也有很多的錄制—回歸軟件可以實(shí)現(xiàn)自動(dòng)化檢測(cè),但是該方法在檢驗(yàn)過(guò)程中容易發(fā)生腳本錯(cuò)誤等編碼問(wèn)題,所以程序測(cè)試人員需要不斷對(duì)腳本進(jìn)行調(diào)試,即通過(guò)Web自動(dòng)化測(cè)試框架對(duì)龐大的Web應(yīng)用程序進(jìn)行檢測(cè),因此并沒(méi)有在實(shí)質(zhì)上提高測(cè)試的效率。在此背景下,研究出一個(gè)維護(hù)簡(jiǎn)單方便的自動(dòng)化測(cè)試框架,以此切實(shí)提高Web應(yīng)用程序的測(cè)試效率,對(duì)于互聯(lián)網(wǎng)技術(shù)的發(fā)展具有重要意義。
由于傳統(tǒng)測(cè)試工具的諸多局限性,人們逐步嘗試通過(guò)自動(dòng)化測(cè)試框架來(lái)改善這些不足,以此來(lái)提高web程序的測(cè)試效率。目前,自動(dòng)化測(cè)試框架指的是一個(gè)由假設(shè)、概念以及為自動(dòng)化測(cè)試提供支持的實(shí)踐的集合。其可通過(guò)管理、控制自動(dòng)化過(guò)程中自變量、因變量參數(shù)的變化,進(jìn)而實(shí)現(xiàn)在不同測(cè)試條件下測(cè)試效率的最大化。
經(jīng)過(guò)這些年的發(fā)展,目前發(fā)展較成熟的web程序測(cè)試框架主要有以下幾種:(1)腳本模塊化框架:其腳本的通過(guò)底層來(lái)實(shí)現(xiàn),通過(guò)對(duì)web應(yīng)用程序功能上和組件上進(jìn)行分解,進(jìn)而抽象并建立對(duì)應(yīng)的腳本;(2)數(shù)據(jù)驅(qū)動(dòng)測(cè)試框架:通過(guò)從被測(cè)試程序的中提取數(shù)據(jù),并載入相應(yīng)測(cè)試編碼,再將測(cè)試數(shù)據(jù)載入到原腳本中的一種框架;(3)關(guān)鍵字驅(qū)動(dòng)的測(cè)試框架:這種框架在應(yīng)用程序內(nèi)相對(duì)獨(dú)立,并可通過(guò)使用關(guān)鍵詞來(lái)測(cè)試程序邏輯上的完整性,主要依靠底層對(duì)關(guān)鍵字執(zhí)行相應(yīng)動(dòng)作來(lái)實(shí)現(xiàn)測(cè)試功能;(4)測(cè)試庫(kù)構(gòu)架框架:與腳本模塊化不同的是,該框架將web應(yīng)用程序分解成獨(dú)立的過(guò)程或者一段函數(shù)。但是,該框架需要建立可以代表待測(cè)程序片段或者模塊的功能性庫(kù)文件。
Web自動(dòng)化測(cè)試發(fā)展到今天,具有較強(qiáng)的適應(yīng)性和比較明顯的優(yōu)勢(shì),但與此同時(shí),仍有一些固有的局限性,下面對(duì)web自動(dòng)化測(cè)試的優(yōu)勢(shì)和局限性進(jìn)行簡(jiǎn)單分析。
2.1 自動(dòng)化測(cè)試框架的優(yōu)勢(shì)
自動(dòng)化測(cè)試技術(shù)是web技術(shù)與自動(dòng)化技術(shù)的融合,也完美地繼承了前兩者的優(yōu)勢(shì),可將其特點(diǎn)總結(jié)為以下幾個(gè)方面:
第一,有助于在極短時(shí)間內(nèi)完成針對(duì)應(yīng)用程序的多類(lèi)測(cè)試項(xiàng)目。web軟件測(cè)試的過(guò)程中,需要進(jìn)行較繁瑣的測(cè)試步驟和各種各樣的測(cè)試內(nèi)容,通過(guò)自動(dòng)化測(cè)試技術(shù)可以同時(shí)完成以上測(cè)試過(guò)程,以此大大縮短應(yīng)用程序的測(cè)試時(shí)間,這也縮短了應(yīng)用程序投入市場(chǎng)的時(shí)間。
第二,有利于我們對(duì)資源的充分利用。自動(dòng)化測(cè)試工具最大程度地發(fā)揮了計(jì)算機(jī)技術(shù)的作用,有利于對(duì)資源進(jìn)行分類(lèi)整理,以此保障資源的充分利用。
第三,有利于下降web應(yīng)用程序的開(kāi)發(fā)成本。通常情況下,為了保證應(yīng)用程序的穩(wěn)定性和最新性,軟件在升級(jí)前必須進(jìn)行回歸測(cè)試。而采用web自動(dòng)化測(cè)試框架后,應(yīng)用程序的測(cè)試工作從繁雜的反復(fù)調(diào)試工作中解放出來(lái),更多的是依賴(lài)先進(jìn)的網(wǎng)絡(luò)技術(shù)以及完善的測(cè)試框架,這可以極大地節(jié)約了人力成本。
利用微生物或其組分抑制植物病害的生物防治可代替化學(xué)殺真菌劑,也是一種生態(tài)的、有效的農(nóng)業(yè)病原菌防治方法。幾個(gè)研究小組報(bào)道了殼聚糖酶的體外抗真菌活性,它們可用于提高植物對(duì)不同植物病原真菌的抗性[28-30]。Kouzai等人報(bào)道了殼聚糖酶活性在植物抗病性中的分子機(jī)制。植物病原真菌在感染過(guò)程中改變細(xì)胞壁成分,避免宿主裂解酶降解,細(xì)胞壁幾丁質(zhì)向殼聚糖的轉(zhuǎn)化可能是病原體的感染原因之一。
2.2 自動(dòng)化測(cè)試框架的局限性
雖然自動(dòng)化測(cè)試框架具有很明顯的優(yōu)勢(shì),但仍然不能全面取代傳統(tǒng)的手工測(cè)試,認(rèn)識(shí)其存在的不足,有利于我們進(jìn)一步完善web自動(dòng)化測(cè)試工具。其局限性主要表現(xiàn)在以下幾點(diǎn):(1)自動(dòng)化測(cè)試工具并不能測(cè)試所有應(yīng)用程序;(2)自動(dòng)化測(cè)試框架的結(jié)果受框架本身的影響很大;(3)自動(dòng)化測(cè)試框架實(shí)際上對(duì)軟件的開(kāi)發(fā)有一定的制約。
3.1 WATF 的需求分析和主要構(gòu)建工具
通過(guò)對(duì)現(xiàn)有自動(dòng)化測(cè)試框架的對(duì)比分析,筆者可以將WATF的功能需求概括為以下四點(diǎn):(1)具有維護(hù)簡(jiǎn)單方便的腳本結(jié)構(gòu),由于程序的捕捉方式會(huì)產(chǎn)生腳本的數(shù)據(jù)硬編碼出現(xiàn)錯(cuò)誤,因此程序測(cè)試員需要根據(jù)腳本變化而不斷進(jìn)行修改,以確保腳本可以適應(yīng)應(yīng)用程序的變化,這樣直接導(dǎo)致測(cè)試效率仍然沒(méi)有得到根本上的提高,因此優(yōu)秀的WATF需要易于維護(hù)的模塊化腳本;(2)支持測(cè)試環(huán)境的還原功能,測(cè)試需要有一個(gè)自動(dòng)化執(zhí)行環(huán)境,在運(yùn)行測(cè)試之前可以根據(jù)外部條件觸發(fā)條件進(jìn)行判斷,自動(dòng)將測(cè)試所需測(cè)試環(huán)境配置好,即為滿(mǎn)足回歸測(cè)試的要求;(3)可根據(jù)需要定制測(cè)試計(jì)劃,我們可以設(shè)置測(cè)試的時(shí)間范圍,或是根據(jù)每天的實(shí)際情況,定時(shí)構(gòu)件測(cè)試框架,并測(cè)試結(jié)束時(shí)得到的測(cè)試報(bào)告,這樣即使測(cè)試失敗,也可通過(guò)讓測(cè)試人員知情,增加自動(dòng)化測(cè)試的可靠;(4)支持分布式測(cè)試以及并發(fā)測(cè)試,隨著應(yīng)用程序功能越來(lái)越來(lái)豐富,測(cè)試人員需要測(cè)試的項(xiàng)目也越來(lái)越多,并且一個(gè)測(cè)試項(xiàng)目通常包含上千個(gè)測(cè)試用例,按照順序依次測(cè)試會(huì)消耗大量的時(shí)間,如果可以并發(fā)地測(cè)試這些測(cè)試用例或者同時(shí)測(cè)試多個(gè)項(xiàng)目,則可以極大地縮短測(cè)試時(shí)間;另一方面,由于不同的測(cè)試任務(wù)需要有不同的測(cè)試環(huán)境,測(cè)試框架也應(yīng)該可以完成分布式測(cè)試,并可以實(shí)時(shí)監(jiān)管各分布式節(jié)點(diǎn)。
根據(jù)上述WATF的測(cè)試需求,可以初步確定如下主要構(gòu)建工具:(1)Maven:一種基于項(xiàng)目對(duì)象模型來(lái)管理項(xiàng)目的構(gòu)建、文檔以及報(bào)告的軟件項(xiàng)目管理工具,Maven可以對(duì)WATF檢測(cè)出的源代碼進(jìn)行編譯打包;(2)Hudson:在Java的基礎(chǔ)上開(kāi)發(fā)的持續(xù)集成服務(wù)器,可以定期監(jiān)控預(yù)先設(shè)計(jì)好的外部任務(wù),同時(shí)具有大量的擴(kuò)展插件支持,可以保證相關(guān)人員提高開(kāi)發(fā)和測(cè)試效率;(3)TsetNG:根據(jù)JUnit和NUnit思想而構(gòu)建的運(yùn)用注釋來(lái)強(qiáng)化測(cè)試的JAVA測(cè)試框架。并且改框架解決了JUnit測(cè)試框架中出現(xiàn)的大部分問(wèn)題,不僅可以運(yùn)用于單元間的測(cè)試,還可以用來(lái)集成測(cè)試以及驗(yàn)收測(cè)試;(4)Selenium:一種開(kāi)源式的Web功能測(cè)試工具,其特點(diǎn)在于可以支持css、dom、xpath等方式對(duì)Web測(cè)試要素進(jìn)行定位,并且可以支持ie、chrome等多種瀏覽器。
3.2 WATF 的框架結(jié)構(gòu)
依照上述設(shè)計(jì)思路以及對(duì)目前主流測(cè)試框架的分析,并結(jié)合Web系統(tǒng)的特點(diǎn),設(shè)計(jì)如圖1所示的測(cè)試框架:
圖1 WATF框架結(jié)構(gòu)Figure 1 WATF frame structure
(1)數(shù)據(jù)層:改框架基于數(shù)據(jù)驅(qū)動(dòng),輸入的數(shù)值和輸出的檢測(cè)值均為變量、所有的測(cè)試數(shù)據(jù)都從數(shù)據(jù)文件中讀取,在測(cè)試的執(zhí)行過(guò)程中,該層為例層提供數(shù)據(jù)。
(2)控制層:這是整個(gè)測(cè)試框架的驅(qū)動(dòng),其主要功能是啟動(dòng)自動(dòng)化測(cè)試流程、加載測(cè)試數(shù)據(jù)、調(diào)用測(cè)試用例和控制報(bào)告輸出等。
(3)對(duì)象層:其主要作用是在測(cè)試過(guò)程中識(shí)別數(shù)據(jù)。
(4)操作層:判斷及驗(yàn)證用例腳本的執(zhí)行過(guò)程,并生成日志目錄。
(5)用例層:包含所有用例腳本和函數(shù)庫(kù)文件。在框架測(cè)試過(guò)程中,可以結(jié)合被測(cè)應(yīng)用對(duì)象的特點(diǎn),將某些公共可共享模塊寫(xiě)成函數(shù)放入到庫(kù)文件中,有利于減少冗余腳本,便于后期的維護(hù)。
(6)報(bào)告層:在測(cè)試結(jié)束后,框架將測(cè)試的結(jié)果寫(xiě)入對(duì)應(yīng)的報(bào)告文件中,即為報(bào)告層。
3.3 技術(shù)實(shí)現(xiàn)案例
WFAF測(cè)試技術(shù)能夠識(shí)別出與測(cè)試對(duì)象無(wú)關(guān)的外部支撐函數(shù),例如加載程序所需的數(shù)據(jù)文件、啟動(dòng)測(cè)試環(huán)境必需的文件等,并將它們打包放入Controller文件中,使其可以成為封裝完好可執(zhí)行文件。當(dāng)程序測(cè)試員進(jìn)行測(cè)試時(shí),只需提前修改好對(duì)應(yīng)數(shù)據(jù)文件、用例描述文件和配置文件,然后運(yùn)行之前封裝完好的Controller.exe文件,即可開(kāi)始自動(dòng)化測(cè)試,在自動(dòng)運(yùn)行完測(cè)試程序后,測(cè)試框架便可自動(dòng)生成一份測(cè)試報(bào)告,報(bào)告中即包含所測(cè)項(xiàng)目的測(cè)試結(jié)果。
WATF技術(shù)通過(guò)提高web應(yīng)用程序的測(cè)試效率,達(dá)到節(jié)約測(cè)試成本的目的。在試驗(yàn)過(guò)程中,可將WATF自動(dòng)化測(cè)試應(yīng)用于CDMS系統(tǒng)的測(cè)試,表1是對(duì)CDMS系統(tǒng)3個(gè)模塊共500多個(gè)測(cè)試用例的測(cè)試,并分別使用WATF技術(shù)與手工技術(shù)進(jìn)行檢測(cè),通過(guò)對(duì)比其所用時(shí)間,其結(jié)果如表1所示。通過(guò)對(duì)比數(shù)據(jù)可以發(fā)現(xiàn),測(cè)試相同項(xiàng)目,使用WATF技術(shù)可以使測(cè)試所用時(shí)間大大縮短。
表1Table 1
本文分析了現(xiàn)階段的自動(dòng)化測(cè)試框架的優(yōu)勢(shì)和不足,提出了一種基于Web的自動(dòng)化測(cè)試框架(WATF),WATF具有檢測(cè)效率高、自動(dòng)化程度高、可擴(kuò)展性強(qiáng)等優(yōu)勢(shì)。但研究人員還需根據(jù)后續(xù)應(yīng)用中出現(xiàn)的問(wèn)題,進(jìn)一步研究并不斷完善WATF技術(shù)。
參考文獻(xiàn)
[1]任樂(lè)兵.網(wǎng)絡(luò)管理系統(tǒng)的Web自動(dòng)化測(cè)試設(shè)計(jì)與實(shí)現(xiàn)[D].西安電子科技大學(xué),2007.
[2]汪曉波.Web應(yīng)用自動(dòng)化測(cè)試工具的設(shè)計(jì)實(shí)現(xiàn)及應(yīng)用[D].北京郵電大學(xué),2012.
[3]楊麗晶.商務(wù)網(wǎng)站的Web自動(dòng)化測(cè)試設(shè)計(jì)與實(shí)現(xiàn)[D].中國(guó)海洋大學(xué),2011.
作者簡(jiǎn)介:
賈燁維(1984—),男,碩士,工程師,研究方向:軟件開(kāi)發(fā)。