国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于STAF/STAX的消息中間件自動化測試系統(tǒng)的研究

2018-09-21 09:22:12陳征
電子制作 2018年15期
關(guān)鍵詞:測試人員測試用例監(jiān)聽

陳征

(中國電子科學(xué)研究院,北京石景山,100041)

0 引言

消息中間件能夠提供跨網(wǎng)絡(luò)、硬件和操作系統(tǒng)的透明的應(yīng)用服務(wù)[2]。它屬于整個系統(tǒng)中最重要的軟件配置項之一。企業(yè)針對各項目開發(fā)出了支持在不同操作系統(tǒng)(如Windows、Linux等)上運行的消息中間件。針對該軟件,目前的測試流程是:測試人員部署各操作系統(tǒng)上的測試環(huán)境,然后手工編寫測試腳本在不同版本上編譯執(zhí)行。當(dāng)前測試流程產(chǎn)生如下問題:①不同操作系統(tǒng)上的軟件提供的功能重復(fù)性較高,測試人員需手工在不同平臺上重復(fù)執(zhí)行相同的測試,進(jìn)行全面的測試工作需要較長時間和較多的人力資源,在有限的時間里測試工作量大,很難保證軟件的質(zhì)量;②該消息中間件在安裝時需要進(jìn)行復(fù)雜的參數(shù)配置才能啟動,在環(huán)境準(zhǔn)備上花費了大量時間。

針對該消息中間件的特點,要實現(xiàn)軟件測試的自動化,需要一個強大的自動化測試框架作為支撐,而STAF提供了構(gòu)建復(fù)雜分布式測試環(huán)境的有效解決方案,在安裝了STAF的機器上可以實現(xiàn)以下功能:隨時啟動、停止測試機上的任一程序,獲得測試機的狀態(tài),在測試機之間互傳文件,提供不同操作語言API接口,適應(yīng)多種操作系統(tǒng)[3]。結(jié)合STAF的外部服務(wù)STAX,在STAF的基礎(chǔ)上幫助用戶靈活操縱框架實現(xiàn)測試用例的分發(fā)、執(zhí)行、部署,使測試任務(wù)更方便的分發(fā)到相應(yīng)測試機去完成測試用例的執(zhí)行、測試結(jié)果的收集[4,5]。STAF的開源、跨平臺、支持多語言并且基于可重用組件的特性[6],使得構(gòu)建消息中間件的自動化測試系統(tǒng)可行。

1 消息中間件軟件測試概況

企業(yè)開發(fā)的消息中間件,主要功能是屏蔽操作系統(tǒng)平臺的差異性,提供跨網(wǎng)絡(luò)、硬件和操作系統(tǒng)的透明的應(yīng)用服務(wù),根據(jù)提供的統(tǒng)一API接口,實現(xiàn)上層應(yīng)用的通信、參數(shù)配置等功能。該消息中間件軟件對不同的操作系統(tǒng)提供統(tǒng)一的調(diào)用接口,格式如下:

調(diào)用接口執(zhí)行失敗時返回結(jié)果為0,成功是返回結(jié)果為1。如果軟件返回的錯誤碼為0,代表無錯誤;如果為其他值,則代表相應(yīng)的錯誤信息。

該消息中間件具有以下幾個特點:

(1)產(chǎn)品支持多個版本,對應(yīng)不同平臺均有相應(yīng)的軟件發(fā)布版本可供使用,且各軟件版本之間功能重復(fù)性較高;

(2)產(chǎn)品配置、環(huán)境搭建復(fù)雜。

針對該消息中間件軟件,傳統(tǒng)的測試流程如圖1所示。首先,測試人員需要將不同平臺版本的待測試消息中間件產(chǎn)品以及測試腳本從SVN服務(wù)器中下載到相應(yīng)操作系統(tǒng)平臺;第二步,人工部署測試環(huán)境,包括軟件的安裝配置操作以及測試腳本的編譯工作;第三步,人工執(zhí)行測試,包括啟動消息中間件軟件,運行測試腳本,記錄測試結(jié)果;第四步,人工收集并分析測試結(jié)果,分別在各個平臺上使用EXCEL表記錄測試執(zhí)行情況,并將整理結(jié)果移植Word文檔中完成測試報告的編寫。

圖1 消息中間件軟件目前測試過程

從目前測試現(xiàn)狀來看,測試工作仍以手動測試為主,只有少部分執(zhí)行測試功能是調(diào)用自動化測試腳本執(zhí)行。測試前期測試版本的獲取、人工搭建基于不同操作系統(tǒng)平臺的測試環(huán)境、安裝配置不同平臺上相應(yīng)產(chǎn)品以及針對不同系統(tǒng)版本的測試腳本進(jìn)行編譯都需要人工參與,耗費了測試人員大量的時間;另外,不同版本消息中間件提供的功能重復(fù)性較高,測試人員需要在不同操作系統(tǒng)平臺上執(zhí)行相同的測試,工作量很大。尤其是在項目進(jìn)度緊張的情況下,會耗費大量的人力資源。

分析上述現(xiàn)狀的原因,是因為對現(xiàn)有的測試過程中的測試資源,包括待測產(chǎn)品、測試腳本以及測試環(huán)境資源缺乏規(guī)范性和組織性。測試過程以人工操作為主,并沒有合適的框架支撐整個測試過程,將一些重復(fù)性高的測試任務(wù)自動化。分析目前測試活動的整個過程,仍有可改進(jìn)的部分。

2 自動化測試系統(tǒng)業(yè)務(wù)需求分析

以企業(yè)自研的消息中間件為測試對象,利用STAF/STAX技術(shù),設(shè)計一個自動化測試系統(tǒng)MOMSTAF(Message—oriented Middleware Software Testing Automation Framework,以下簡稱MOMSTAF),該系統(tǒng)實現(xiàn)消息中間件軟件的測試過程自動化進(jìn)行,包括制定并部署待測消息中間件軟件測試任務(wù)、自動執(zhí)行消息中間件軟件測試用例、自動監(jiān)控軟件測試過程以及自動收集并統(tǒng)計軟件測試執(zhí)行結(jié)果的功能。

該系統(tǒng)主要考慮以下幾個方面:

(1)消息中間件軟件測試全過程的自動執(zhí)行

本系統(tǒng)將充分考慮測試人員在執(zhí)行企業(yè)自研消息中間件軟件測試過程中的各個環(huán)節(jié),將日常測試工作分為以下五個基本流程:

(a)測試計劃階段:完成自研消息中間件軟件測試任務(wù)的制定,確定測試范圍,包括選擇要測試的消息中間件版本、確定待測版本的操作系統(tǒng)類型、選擇要執(zhí)行的消息中間件測試項;

(b)測試準(zhǔn)備階段:根據(jù)測試計劃階段確定的測試范圍,完成消息中間件測試任務(wù)的部署,包括選擇匹配的測試主機、啟動測試主機、下載待測消息中間件及測試腳本到測試主機、部署待測軟件、編譯測試腳本;

(c)測試執(zhí)行階段:在測試準(zhǔn)備階段完成之后,在各測試主機上執(zhí)行測試腳本。在測試用例執(zhí)行過程中,提供人機界面方便測試人員實時監(jiān)控各測試主機的執(zhí)行情況,方便測試人員掌握測試執(zhí)行進(jìn)度;

(d)測試結(jié)果統(tǒng)計階段:收集各個測試主機的測試執(zhí)行結(jié)果,給出整個測試結(jié)果的統(tǒng)計信息(統(tǒng)計出通過與失敗的測試用例,以及失敗的原因);

(e)測試環(huán)境清理階段:在測試用例執(zhí)行完畢并對測試結(jié)果做出統(tǒng)計后,完成測試環(huán)境的清理,恢復(fù)測試環(huán)境的初始態(tài)。

(2)測試任務(wù)部署在虛擬機中執(zhí)行,節(jié)約測試資源,簡化測試環(huán)境搭建

由于企業(yè)自研的消息中間件適用于多操作系統(tǒng)平臺(如:Windows、Linux平臺),為了達(dá)到在硬件資源緊張的情況下,有效節(jié)約測試資源,滿足自研消息中間件產(chǎn)品在不同操作系統(tǒng)上執(zhí)行測試的要求。因此在MOMSTAF自動化測試系統(tǒng)的設(shè)計過程中,需要將消息中間件軟件測試任務(wù)部署到虛擬機中執(zhí)行,通過在虛擬機上執(zhí)行測試任務(wù),解決測試人員在測試消息中間件時測試資源不足的問題。另外,將待測消息中間件需要考慮跨平臺通信的各種測試場景,如點對點通信以及多對一的通信場景,通過使用虛擬機有效的簡化了測試環(huán)境的搭建。

3 自動化測試系統(tǒng)架構(gòu)設(shè)計

根據(jù)以上對MOMSTAF自動化測試系統(tǒng)的業(yè)務(wù)需求分析結(jié)果,提出適用于當(dāng)前被測軟件自動化測試系統(tǒng)的架構(gòu)設(shè)計方案,該系統(tǒng)總體架構(gòu)設(shè)計劃分為三層,從上至下依次為表示層、業(yè)務(wù)邏輯層、數(shù)據(jù)層,這種架構(gòu)明確了責(zé)任的劃分,使系統(tǒng)更加易于維護(hù)和擴展。 MOMSTAF系統(tǒng)體系架構(gòu)圖如圖2所示。

表示層位于最上層,該層向測試人員提供友好的人機交互界面,主要為測試人員提供測試的操作界面,接收測試人員輸入的操作,監(jiān)控自動化測試執(zhí)行的進(jìn)度,方便測試人員使用MOMSTAF自動化測試系統(tǒng)執(zhí)行自研消息中間件的測試工作。

圖2 自動化測試系統(tǒng)架構(gòu)圖

業(yè)務(wù)邏輯層位于表示層和數(shù)據(jù)層之間,包括測試任務(wù)管理模塊、監(jiān)聽管理模塊、測試用例管理模塊、結(jié)果統(tǒng)計模塊、虛擬機管理模塊和日志管理模塊。這些模塊實現(xiàn)了MOMSTAF自動化測試系統(tǒng)的整個自動化測試過程。在執(zhí)行自動化測試的過程中,STAF自動化測試框架提供測試服務(wù),并由其外部執(zhí)行引擎STAX統(tǒng)一調(diào)度整個自動化測試過程。

圖3 自動化測試系統(tǒng)功能模塊圖

數(shù)據(jù)層主要用來存放自研消息中間件的測試任務(wù)、測試結(jié)果以及自動化測試系統(tǒng)運行時的日志等信息。

4 自動化測試系統(tǒng)功能結(jié)構(gòu)設(shè)計

經(jīng)分析,初步將MOMSTAF自動化測試系統(tǒng)分為測試任務(wù)管理模塊、監(jiān)聽管理模塊、測試用例管理模塊、結(jié)果統(tǒng)計模塊、虛擬機管理模塊、日志管理模塊六個部分,這些模塊整合了自動化測試的整個過程:制定測試任務(wù)、檢查測試任務(wù)、分發(fā)測試任務(wù)、部署測試任務(wù)、執(zhí)行測試任務(wù)、監(jiān)聽測試過程、收集并總結(jié)測試結(jié)果等。具體的功能模塊劃分如圖3所示。

4.1 測試任務(wù)管理模塊

測試任務(wù)管理模塊主要實現(xiàn)在自研消息中間件軟件自動化測試過程中對測試任務(wù)的管理。包括以下幾部分:第一,測試任務(wù)制定,確定要執(zhí)行的測試任務(wù),包括選擇被測軟件版本、確定待測版本的操作系統(tǒng)類型、選擇要執(zhí)行的測試用例。第二,測試任務(wù)分發(fā),該功能實現(xiàn)將制定好并完成檢查的測試任務(wù)分發(fā)到相應(yīng)測試主機(測試任務(wù)的檢查由監(jiān)聽管理模塊中的任務(wù)狀態(tài)監(jiān)聽實現(xiàn),檢查過程見圖5),等待部署測試任務(wù)。第三,測試任務(wù)部署,主要實現(xiàn)在收到測試調(diào)度機的測試部署的命令后,分別從產(chǎn)品服務(wù)器和測試服務(wù)器中下載相應(yīng)待測消息中間件以及測試腳本,并完成軟件的安裝以及測試腳本的編譯。第四,測試任務(wù)執(zhí)行,接收測試調(diào)度機的測試執(zhí)行命令后,開始進(jìn)行自動化測試,在測試執(zhí)行過程中,向測試主機反饋測試進(jìn)度情況。測試任務(wù)管理的時序圖如圖4所示。

圖4 測試任務(wù)管理時序圖

4.2 監(jiān)聽管理模塊

監(jiān)聽管理模塊主要實現(xiàn)MOMSTAF自動化測試系統(tǒng)在執(zhí)行自研消息中間件的整個自動化測試過程中的監(jiān)聽管理。實現(xiàn)的功能包括:第一,啟動監(jiān)聽,開啟監(jiān)聽管理。第二,關(guān)閉監(jiān)聽,結(jié)束自動化測試任務(wù)后,關(guān)閉監(jiān)聽管理。第三,任務(wù)狀態(tài)監(jiān)聽,主要實現(xiàn)對測試任務(wù)中的待測版本以及相應(yīng)虛擬機的狀態(tài)監(jiān)聽,監(jiān)聽待測版本在代碼服務(wù)器中是否存在、虛擬機的狀態(tài)是否為未被占用的狀態(tài),任務(wù)狀態(tài)監(jiān)聽活動圖如圖5所示。第四,測試進(jìn)度監(jiān)聽,主要實現(xiàn)在測試的過程中,實時監(jiān)聽各個測試主機的測試執(zhí)行進(jìn)度。第五,異常處理監(jiān)聽,提供異常處理監(jiān)聽機制,監(jiān)聽并定位系統(tǒng)錯誤位置信息。

圖5 任務(wù)狀態(tài)監(jiān)聽活動圖

圖6 測試結(jié)果判定流程圖

4.3 測試用例管理模塊

測試用例管理模塊主要實現(xiàn)對自研消息中間件軟件測試用例的管理,包括對消息中間件軟件測試用例的增加、刪除、修改、查詢操作,同時為了保證測試服務(wù)器中的測試腳本與測試用例的一致性,還應(yīng)實現(xiàn)測試用例的同步功能,即MOMSTAF自動化測試系統(tǒng)后臺定期對測試用例與測試腳本進(jìn)行同步更新。

4.4 結(jié)果統(tǒng)計模塊

測試結(jié)果的統(tǒng)計模塊,實現(xiàn)的功能包括:測試結(jié)果統(tǒng)計、測試結(jié)果分析、測試報告生成。測試結(jié)果統(tǒng)計功能主要用于在執(zhí)行被測軟件測試結(jié)束時,收集并統(tǒng)計各測試主機的最終執(zhí)行情況,統(tǒng)計通過與不通過的測試用例。測試結(jié)果分析用于對統(tǒng)計出的測試結(jié)果進(jìn)行分析,分析的內(nèi)容包括:各版本消息中間件軟件測試用例的執(zhí)行通過率與不通過率以及各測試項執(zhí)行情況柱狀圖。測試報告生成,根據(jù)測試結(jié)果的統(tǒng)計與分析,生成測試報告,同時實現(xiàn)將測試報告導(dǎo)出以及上傳至服務(wù)器的功能,方便項目相關(guān)人員傳閱以及用于項目數(shù)據(jù)積累。

測試結(jié)果統(tǒng)計模塊中判斷測試用例通過與否的流程圖如圖6所示。首先,測試腳本執(zhí)行消息中間件API接口函數(shù),測試腳本執(zhí)行該函數(shù)后,返回接口函數(shù)執(zhí)行結(jié)果以及錯誤碼。然后,將接口函數(shù)返回值、錯誤碼和測試腳本調(diào)用該接口函數(shù)時傳入的不同參數(shù)寫入實際結(jié)果執(zhí)行文件,寫入順序與預(yù)期結(jié)果文件一致,預(yù)期結(jié)果文件中的內(nèi)容以“接口函數(shù)名、輸入?yún)?shù)、接口函數(shù)返回值、錯誤碼”排序,該文件放在當(dāng)前測試腳本目錄中。最后,將實際結(jié)果執(zhí)行文件與預(yù)期結(jié)果文件進(jìn)行對比,如果內(nèi)容一致,則判斷該測試用例通過,否則,判斷為不通過。

4.5 虛擬機管理模塊

虛擬機管理模塊主要實現(xiàn)對測試環(huán)境中虛擬機的管理,主要實現(xiàn)對各虛擬機的檢查、啟動、初始化操作。其中,VM虛擬機檢查功能實現(xiàn)在接收到監(jiān)聽管理模塊中的任務(wù)狀態(tài)監(jiān)聽消息后,對VM虛擬機當(dāng)前的狀態(tài)是否被占用進(jìn)行檢查。如果未被占用則啟動虛擬機,否則向測試調(diào)度機返回當(dāng)前被占用的信息。VM虛擬機初始化功能主要實現(xiàn)在消息中間件軟件測試任務(wù)執(zhí)行完畢后,執(zhí)行環(huán)境的清理,恢復(fù)環(huán)境初始化狀態(tài),完成初始化操作后關(guān)閉虛擬機。

圖7 自動化測試系統(tǒng)網(wǎng)絡(luò)拓?fù)鋱D

4.6 日志管理模塊

日志管理模塊主要完成對消息中間件軟件自動化測試系統(tǒng)運行時的日志信息進(jìn)行記錄。

5 自動化測試系統(tǒng)網(wǎng)絡(luò)拓?fù)湓O(shè)計

MOMSTAF自動化測試系統(tǒng)網(wǎng)絡(luò)結(jié)構(gòu)主要由測試調(diào)度機、測試機群以及文件服務(wù)器組成。測試調(diào)度機主要完成自研消息中間件軟件自動化測試流程的控制與管理。測試機群由不同操作系統(tǒng)平臺的測試主機組成(這里的測試主機為虛擬機),主要用來執(zhí)行具體的自動化測試工作。文件服務(wù)器由代碼服務(wù)器Build Sever和測試服務(wù)器Test Sever組成,分別用來存放不同版本的消息中間件軟件和測試腳本。該系統(tǒng)網(wǎng)絡(luò)結(jié)構(gòu)初步設(shè)計如圖7所示。

6 結(jié)語

通過使用該自動化測試系統(tǒng),使用機器代替人來完成復(fù)雜、重復(fù)的勞動,有效的降低測試人員在測試企業(yè)自研的消息中間件時手工配置環(huán)境的復(fù)雜度,同時解決在多平臺下測試消息中間件軟件時任務(wù)繁重、測試內(nèi)容重復(fù)率高的問題,不僅降低測試人員的工作量,還提高了測試人員的工作效率,使測試人員集中精力進(jìn)行消息中間件軟件其他功能點的探索性測試,保證產(chǎn)品的質(zhì)量。

猜你喜歡
測試人員測試用例監(jiān)聽
移動應(yīng)用眾包測試人員信譽度復(fù)合計算模型研究
基于SmartUnit的安全通信系統(tǒng)單元測試用例自動生成
千元監(jiān)聽風(fēng)格Hi-Fi箱新選擇 Summer audio A-401
基于混合遺傳算法的回歸測試用例集最小化研究
高校分析測試中心測試隊伍建設(shè)方案初探
山東化工(2018年20期)2018-04-02 16:30:53
淺析軟件測試中的心理學(xué)應(yīng)用
網(wǎng)絡(luò)監(jiān)聽的防范措施
電子制作(2017年20期)2017-04-26 06:58:02
應(yīng)召反潛時無人機監(jiān)聽航路的規(guī)劃
基于依賴結(jié)構(gòu)的測試用例優(yōu)先級技術(shù)
局域網(wǎng)監(jiān)聽軟件的設(shè)計
河南科技(2014年5期)2014-02-27 14:08:21
喀什市| 鄂伦春自治旗| 峨边| 恭城| 古交市| 积石山| 普洱| 余姚市| 布尔津县| 苗栗市| 廉江市| 南涧| 抚州市| 巴塘县| 东光县| 卢氏县| 平安县| 额济纳旗| 万安县| 陆川县| 洞口县| 定边县| 泸西县| 隆回县| 南丰县| 永吉县| 泽州县| 略阳县| 贵南县| 海宁市| 子洲县| 安化县| 长兴县| 丹巴县| 阿拉善右旗| 两当县| 上杭县| 柯坪县| 论坛| 石林| 华池县|