王洪鈺,孟慶鑫
(1.華為軟件技術(shù)有限公司 北京 100077)
(2.中國電子科技集團(tuán)公司電子科學(xué)研究院 北京 100041)
基于MVC的任務(wù)系統(tǒng)自動化測試數(shù)據(jù)查詢分析平臺的構(gòu)建
王洪鈺1,孟慶鑫2
(1.華為軟件技術(shù)有限公司 北京 100077)
(2.中國電子科技集團(tuán)公司電子科學(xué)研究院 北京 100041)
針對任務(wù)系統(tǒng)自動化測試過程中,測試數(shù)據(jù)存儲格式多樣,測試數(shù)據(jù)查詢方式多樣的特點(diǎn),本文基于MVC提出了測試數(shù)據(jù)查詢分析平臺的實(shí)現(xiàn)方案,包括平臺體系結(jié)構(gòu)的設(shè)計(jì),數(shù)據(jù)查詢分析的建模,該方案能夠最大程度的實(shí)現(xiàn)測試數(shù)據(jù)和查詢分析業(yè)務(wù)的解耦合,實(shí)現(xiàn)了平臺的開放性和靈活性,該設(shè)計(jì)方案已經(jīng)在實(shí)際項(xiàng)目中得到實(shí)現(xiàn),具有較高的工程應(yīng)用價(jià)值。
MVC,測試數(shù)據(jù),查詢分析平臺
任務(wù)系統(tǒng)是一個有軟件及相關(guān)硬件組成的復(fù)雜的分布式系統(tǒng)[1],系統(tǒng)的復(fù)雜性導(dǎo)致了測試的復(fù)雜性,而復(fù)雜的測試邏輯自然會引起測試數(shù)據(jù)的多樣性及數(shù)據(jù)分析的復(fù)雜性[2],目前針對任務(wù)系統(tǒng)的自動化測試研究已經(jīng)取得了一系列的成果[3-6],但是關(guān)于任務(wù)系統(tǒng)測試數(shù)據(jù)查詢分析平臺的研究并不多,其中還有相當(dāng)多的難點(diǎn)需要克服。
測試項(xiàng)目查詢分析平臺是任務(wù)系統(tǒng)自動化測試的重要組成部分。該平臺集成了整個測試過程的各類信息資源,在測試總結(jié)階段按用戶需求提供相關(guān)的統(tǒng)計(jì)、查詢功能,為最終用戶提供全面的信息服務(wù)。本文首先提出數(shù)據(jù)查詢分析平臺的體系結(jié)構(gòu),然后對平臺中的數(shù)據(jù)查詢分析模型的處理流程進(jìn)行了分析,最后給出了平臺實(shí)現(xiàn)的類結(jié)構(gòu)圖。
2.1 MVC開發(fā)模式
MVC是Model-View-Controller的簡寫。"Model"代表的是應(yīng)用的業(yè)務(wù)邏輯(通過JavaBean,EJB組件實(shí)現(xiàn)),"View"是應(yīng)用的視圖(由JSP頁面產(chǎn)生),"Controller"是提供應(yīng)用的處理過程控制(一般是一個Servlet),通過這種設(shè)計(jì)模型把應(yīng)用邏輯,處理過程和顯示邏輯分成不同的組件實(shí)現(xiàn)。這些組件可以進(jìn)行交互和重用。從而彌補(bǔ)了前一開發(fā)模式的不足。如圖1所示。
圖1 MVC開發(fā)模式
(a)Model(業(yè)務(wù)邏輯):負(fù)責(zé)數(shù)據(jù)處理,實(shí)現(xiàn)特定的業(yè)務(wù)功能。包括:應(yīng)用數(shù)據(jù)的獲取,數(shù)據(jù)的處理,事務(wù)處理,狀態(tài)變更。
(b)View(視圖):按特定的方式顯示"業(yè)務(wù)邏輯模式"的數(shù)據(jù)。通常是主動直接從Model獲取數(shù)據(jù);也允許接受Model的數(shù)據(jù)變化時(shí)發(fā)送的通知,更新顯示。
(c)Controller(控制器):決定應(yīng)用的行為。接受用戶輸入,根據(jù)輸入選擇特定的Model,選擇輸出所用的View。
(d)Request(請求)與Controller:服務(wù)請求發(fā)給Control,Control收集輸入數(shù)據(jù),并根據(jù)輸入初始化應(yīng)用。
(e)Controller與Model:Controller根據(jù)輸入,創(chuàng)建的不同的Model,并傳遞必要的參數(shù),Model獲取數(shù)據(jù)進(jìn)行處理。
(f)Controller與View:Controller根據(jù)輸入以及Model的輸出,選擇顯示方式,同時(shí)要將Model的引用或者M(jìn)odel產(chǎn)生的數(shù)據(jù)或?qū)ο蟮囊脗鬟f給View,發(fā)過來,View可以接受用戶輸入然后激發(fā)Controller。
(g)View與Model:Model負(fù)責(zé)數(shù)據(jù)獲取和處理,View可以直接從Model獲取數(shù)據(jù)。在一定條件下Model也可以通知View更新數(shù)據(jù)。
2.2 應(yīng)用對象模型與RDBMS模型的映射
數(shù)據(jù)庫設(shè)計(jì)(模式)是否支持應(yīng)用系統(tǒng)的對象模型,這是判斷是否是面向?qū)ο髷?shù)據(jù)庫系統(tǒng)的基本出發(fā)點(diǎn)。由于應(yīng)用系統(tǒng)設(shè)計(jì)在前,數(shù)據(jù)庫設(shè)計(jì)隨后,所以應(yīng)用系統(tǒng)對象模型向數(shù)據(jù)庫模式的映射是面向?qū)ο髷?shù)據(jù)庫設(shè)計(jì)的關(guān)鍵。
(a)數(shù)據(jù)庫模式面向?qū)ο竽P偷臄U(kuò)展
一般數(shù)據(jù)庫設(shè)計(jì)多參照ANSL/SPARC關(guān)于數(shù)據(jù)庫模式的3層標(biāo)準(zhǔn)結(jié)構(gòu)提案。最接近物理數(shù)據(jù)庫的內(nèi)部模式由DBMS提供的SQL來描述。概念模式可以由若干個內(nèi)部模式聚集而成,它是由數(shù)據(jù)庫用戶規(guī)范的一些表的集合。一般的概念模式是數(shù)據(jù)庫物理模式作用域的邊界,它能實(shí)現(xiàn)數(shù)據(jù)庫的物理意義、特定DBMS的特殊操作對外部應(yīng)用程序的信息隱蔽。外部模式是從特定用戶應(yīng)用角度看待的數(shù)據(jù)庫模式,從不同的應(yīng)用出發(fā)對同一概念模式可以給出多種不同的外部模式。但是,外部模型只是概念模型的子集,所以面向?qū)ο蟮臄?shù)據(jù)庫設(shè)計(jì)核心在于系統(tǒng)對象模型(不妨稱之為概念對象模型)向數(shù)據(jù)庫概念模型的映射。
(b)對象模型向數(shù)據(jù)庫表的映射規(guī)則
由于RDBMS是以二維表為基本管理單元的,所以對象模型最終是由二維表及表間關(guān)系來描述的。換言之,對象模型向數(shù)據(jù)庫概念模型的映射就是向數(shù)據(jù)庫表的變換過程。有關(guān)的變換規(guī)則簡單歸納如下:
(1)一個對象類可以映射為一個以上的庫表,當(dāng)類間有一對多的關(guān)系時(shí),一個表也可以對應(yīng)多個類。
(2)關(guān)系(一對一、一對多、多對多以及三項(xiàng)關(guān)系)的映射可能有多種情況,但一般映射為一個表,也可以在對象類表間定義相應(yīng)的外鍵。
(3)單一繼承的泛化關(guān)系可以對超類、子類分別映射表,也可不定義父類表而讓子類擁有父類屬性;反之,也可不定義子類表而讓父類表擁有全部子類屬性。
(4)對映射后的庫表進(jìn)行冗余控制調(diào)整,使其達(dá)到合理的關(guān)系范式。
(c)數(shù)據(jù)庫模式面向應(yīng)用系統(tǒng)。
我們選擇面向?qū)ο蟮南到y(tǒng)設(shè)計(jì)也好,面向?qū)ο蟮臄?shù)據(jù)庫設(shè)計(jì)也好,根本目的是服務(wù)于應(yīng)用系統(tǒng)的需要。以測試項(xiàng)目查詢分析平臺為例,查詢分析平臺的最大工作量就是對狀態(tài)的修改,時(shí)時(shí)的檢測。因此如何有效的利用數(shù)據(jù)庫設(shè)計(jì)的表是關(guān)鍵。
系統(tǒng)一共設(shè)計(jì)到3個大的模塊:業(yè)務(wù)邏輯模塊、控制器模塊和jsp顯示模塊。這3個模塊相互調(diào)用、組合構(gòu)建了整個測試項(xiàng)目查詢分析平臺。測試項(xiàng)目查詢分析平臺3個部分如下:
3.1 WEB服務(wù)器(Tomcat)
負(fù)責(zé)接收客戶端瀏覽器發(fā)送過來的請求并加以解析,按照預(yù)定邏輯從測試數(shù)據(jù)資源中提取數(shù)據(jù),然后以正確方式返回,是本軟件的核心部分。如圖2,WEB服務(wù)器內(nèi)部開發(fā)采用MVC模式:
圖2 平臺體系結(jié)構(gòu)
(a)模型層:即圖中的自動化測試系統(tǒng)數(shù)據(jù)訪問控制層。本層對測試數(shù)據(jù)進(jìn)行集中管理,有助于保持?jǐn)?shù)據(jù)庫內(nèi)數(shù)據(jù)的正確性,保證數(shù)據(jù)對外部調(diào)用的透明性。
(b)視圖層:是客戶端HTTPRequest和HTTPXMLRequest請求的應(yīng)答集,結(jié)果可能是一個HTML頁面片段,一個EXCEL工作記錄表或者一個XML文檔片段。
(c)控制器層:其中包括用戶訪問權(quán)限控制模塊和查詢統(tǒng)計(jì)邏輯處理模塊。僅當(dāng)客戶端請求通過了用戶訪問權(quán)限驗(yàn)證,才允許服務(wù)器對其請求進(jìn)行處理響應(yīng)。響應(yīng)過程在處理流程中有詳細(xì)描述。
3.2 WEB瀏覽器
這個部分為與用戶的交互接口,用戶的查詢統(tǒng)計(jì)請求通過web頁面?zhèn)魉椭羨eb服務(wù)器,web服務(wù)器根據(jù)請求調(diào)用查詢統(tǒng)計(jì)模塊所提供的接口進(jìn)行數(shù)據(jù)的匯集與最終結(jié)果視圖的構(gòu)建,并將結(jié)果視圖返回給web瀏覽器,在web瀏覽器中集成了對excel,pdf,word等文檔格式的顯示功能。
3.3 測試數(shù)據(jù)資源
對數(shù)據(jù)查詢統(tǒng)計(jì)業(yè)務(wù)與具體測試數(shù)據(jù)的存儲模型進(jìn)行分離,使得測試數(shù)據(jù)資源與統(tǒng)計(jì)分析模型進(jìn)行了解耦合,使得平臺具有更好的可開放性和靈活性。測試數(shù)據(jù)資源包括測試數(shù)據(jù)存儲方式的元描述以及具體的測試數(shù)據(jù)。其中的測試數(shù)據(jù)提供了用戶在測試項(xiàng)目統(tǒng)計(jì)查詢過程中需要的所有數(shù)據(jù)。
3.3.1 數(shù)據(jù)查詢分析處理模型
數(shù)據(jù)查詢分析處理模型是平臺的核心功能。是按照用戶指定的方式對所有的測試數(shù)據(jù)進(jìn)行查詢分析。其處理流程圖3如下:
圖3 測試數(shù)據(jù)統(tǒng)計(jì)處理模型
用戶進(jìn)行工作項(xiàng)目統(tǒng)計(jì)的前提是具有進(jìn)行測試工作項(xiàng)目的統(tǒng)計(jì)權(quán)限,如果權(quán)限驗(yàn)證失敗則提示用戶無法進(jìn)行統(tǒng)計(jì)操作。否則,向用戶展示統(tǒng)計(jì)方式選擇界面。當(dāng)用戶提出統(tǒng)計(jì)方式并給出統(tǒng)計(jì)條件之后,系統(tǒng)處理流程如下:
Step1 獲得用戶統(tǒng)計(jì)條件參數(shù);
Step2 根據(jù)用戶選擇的統(tǒng)計(jì)方式調(diào)用數(shù)據(jù)訪問控制層接口,并提供參數(shù),獲得符合條件的統(tǒng)計(jì)數(shù)據(jù);
Step3 把統(tǒng)計(jì)數(shù)據(jù)按照工作項(xiàng)目統(tǒng)計(jì)的統(tǒng)一結(jié)果格式進(jìn)行封裝;
Step4 生成工作項(xiàng)目統(tǒng)計(jì)結(jié)果頁面并返回應(yīng)答;
Step5 在工作項(xiàng)目統(tǒng)計(jì)結(jié)果頁面上,如果用戶要求生成工作項(xiàng)目統(tǒng)計(jì)查詢記錄表,則繼續(xù)以下步驟;
Step6 獲得待生成工作項(xiàng)目統(tǒng)計(jì)查詢記錄表所需參數(shù),與Step1中的參數(shù)相同;
Step7 調(diào)用報(bào)表生成軟件并提供所需參數(shù),在WEB服務(wù)器端生成工作項(xiàng)目統(tǒng)計(jì)查詢記錄表;
Step8 向用戶返回該記錄表,并提示用戶保存。
3.3.2 查詢分析模型的類框架
測試數(shù)據(jù)查詢分析平臺需要對外提供一系列的評估分析和統(tǒng)計(jì)的功能,包括按電子系統(tǒng)型號評估,按分系統(tǒng)評估,按測試項(xiàng)目評估,按工作項(xiàng)目評估,按階段評估,測試任務(wù)評估,工作任務(wù)評估,日信息評估,測試人員評估等功能。為了保持軟件的靈活性和健壯性,采用了一套統(tǒng)一的類架構(gòu)方式,對以上這些功能提供支持。查詢分析模型的類整體結(jié)構(gòu)如圖所示:
圖3 查詢分析模型的類結(jié)構(gòu)
查詢分析模型的類結(jié)構(gòu)中的5個模塊即文檔結(jié)構(gòu)解析模塊,表單生成模塊,表單頁生成模塊,工作簿生成模塊和數(shù)據(jù)接口模塊提供了實(shí)現(xiàn)。這些類和具體的軟件模塊之間的包含關(guān)系如下:
表1 模塊的類包含關(guān)系
針對任務(wù)系統(tǒng)自動化測試過程中,測試數(shù)據(jù)存儲格式多樣,測試數(shù)據(jù)查詢方式多樣的特點(diǎn),本文基于MVC提出了測試數(shù)據(jù)查詢分析平臺的實(shí)現(xiàn)方案,該方案能夠最大程度的實(shí)現(xiàn)測試數(shù)據(jù)和查詢分析業(yè)務(wù)的解耦合,實(shí)現(xiàn)了平臺的開放性和靈活性,該設(shè)計(jì)方案已經(jīng)在實(shí)際項(xiàng)目中得到實(shí)現(xiàn),具有較高的工程應(yīng)用價(jià)值。
[1]劉憲蘭,趙玉潔.國外預(yù)警機(jī)發(fā)展現(xiàn)狀與趨勢[J].電子科學(xué)技術(shù)評論.2004(01).
[2]中國電子科學(xué)研究院戰(zhàn)略研究室.預(yù)警機(jī)任務(wù)系統(tǒng)發(fā)展綜述[J]電子科學(xué)技術(shù)評論2004(06):11-20
[3]Anderson J L Jr.High performance missile testing[A]. AutotestCon Proceedings[C].IEEE,2003,Page(s):19-27
[4]Li Xin,Shen Shituan,Lu Hui.Algorithms of tasks scheduling in parallel test based on graph coloring theory Journal of Beijing University of Aeronautics and Astronautics 92007: 1068-1071.(in Chinese)
[5]Jiajing Zhuo;Chen Meng;Minghu Zou;A Task Scheduling Algorithm of Single Processor Parallel Test System.Software Engineering,Artificial Intelligence,Networking,and Parallel/Distributed Computing,2007.SNPD 2007.Eighth ACIS International Conference on Volume 1,July 30 2007-Aug.1 2007:627-632.
[6]T.Yamada,Generic Software for Spacecraft Testing and Operations Based on Spacecraft Model,American Institute of Aeronautics and Astronautics SpaceOps 2006 Conference 2006.
Analysis Platform for Automated Mission System Test Data Inquiry Based on MVC
WANG Hong-yu1,MENG Qing-xin2
(1.Huawei Software Technology Co.,Ltd.beijing 100077,China)
(2.China Academy of Electronics and Information Technology beijing 100041,China)
In view of the mission system in the automated test process,test datastorage formats,various ways of testing data query, based on MVC is put forward to analyze the implementation platform test data query,including design platform system structure,data query and analysis modeling,decoupling the scheme can realize the test data and the query and analysis operations maximum the realization of the platform,the openness and flexibility,the design scheme has been realized in the actual project,which has high engineering application value.
MVC,test data,query and analysis platform
TP391.9
A
1008-1739(2014)02-70-4
定稿日期:2013-12-26