王洪钰,孟庆鑫
(1.华为软件技术有限公司 北京 100077)
(2.中国电子科技集团公司电子科学研究院 北京 100041)
基于MVC的任务系统自动化测试数据查询分析平台的构建
王洪钰1,孟庆鑫2
(1.华为软件技术有限公司 北京 100077)
(2.中国电子科技集团公司电子科学研究院 北京 100041)
针对任务系统自动化测试过程中,测试数据存储格式多样,测试数据查询方式多样的特点,本文基于MVC提出了测试数据查询分析平台的实现方案,包括平台体系结构的设计,数据查询分析的建模,该方案能够最大程度的实现测试数据和查询分析业务的解耦合,实现了平台的开放性和灵活性,该设计方案已经在实际项目中得到实现,具有较高的工程应用价值。
MVC,测试数据,查询分析平台
任务系统是一个有软件及相关硬件组成的复杂的分布式系统[1],系统的复杂性导致了测试的复杂性,而复杂的测试逻辑自然会引起测试数据的多样性及数据分析的复杂性[2],目前针对任务系统的自动化测试研究已经取得了一系列的成果[3-6],但是关于任务系统测试数据查询分析平台的研究并不多,其中还有相当多的难点需要克服。
测试项目查询分析平台是任务系统自动化测试的重要组成部分。该平台集成了整个测试过程的各类信息资源,在测试总结阶段按用户需求提供相关的统计、查询功能,为最终用户提供全面的信息服务。本文首先提出数据查询分析平台的体系结构,然后对平台中的数据查询分析模型的处理流程进行了分析,最后给出了平台实现的类结构图。
2.1 MVC开发模式
MVC是Model-View-Controller的简写。"Model"代表的是应用的业务逻辑(通过JavaBean,EJB组件实现),"View"是应用的视图(由JSP页面产生),"Controller"是提供应用的处理过程控制(一般是一个Servlet),通过这种设计模型把应用逻辑,处理过程和显示逻辑分成不同的组件实现。这些组件可以进行交互和重用。从而弥补了前一开发模式的不足。如图1所示。
图1 MVC开发模式
(a)Model(业务逻辑):负责数据处理,实现特定的业务功能。包括:应用数据的获取,数据的处理,事务处理,状态变更。
(b)View(视图):按特定的方式显示"业务逻辑模式"的数据。通常是主动直接从Model获取数据;也允许接受Model的数据变化时发送的通知,更新显示。
(c)Controller(控制器):决定应用的行为。接受用户输入,根据输入选择特定的Model,选择输出所用的View。
(d)Request(请求)与Controller:服务请求发给Control,Control收集输入数据,并根据输入初始化应用。
(e)Controller与Model:Controller根据输入,创建的不同的Model,并传递必要的参数,Model获取数据进行处理。
(f)Controller与View:Controller根据输入以及Model的输出,选择显示方式,同时要将Model的引用或者Model产生的数据或对象的引用传递给View,发过来,View可以接受用户输入然后激发Controller。
(g)View与Model:Model负责数据获取和处理,View可以直接从Model获取数据。在一定条件下Model也可以通知View更新数据。
2.2 应用对象模型与RDBMS模型的映射
数据库设计(模式)是否支持应用系统的对象模型,这是判断是否是面向对象数据库系统的基本出发点。由于应用系统设计在前,数据库设计随后,所以应用系统对象模型向数据库模式的映射是面向对象数据库设计的关键。
(a)数据库模式面向对象模型的扩展
一般数据库设计多参照ANSL/SPARC关于数据库模式的3层标准结构提案。最接近物理数据库的内部模式由DBMS提供的SQL来描述。概念模式可以由若干个内部模式聚集而成,它是由数据库用户规范的一些表的集合。一般的概念模式是数据库物理模式作用域的边界,它能实现数据库的物理意义、特定DBMS的特殊操作对外部应用程序的信息隐蔽。外部模式是从特定用户应用角度看待的数据库模式,从不同的应用出发对同一概念模式可以给出多种不同的外部模式。但是,外部模型只是概念模型的子集,所以面向对象的数据库设计核心在于系统对象模型(不妨称之为概念对象模型)向数据库概念模型的映射。
(b)对象模型向数据库表的映射规则
由于RDBMS是以二维表为基本管理单元的,所以对象模型最终是由二维表及表间关系来描述的。换言之,对象模型向数据库概念模型的映射就是向数据库表的变换过程。有关的变换规则简单归纳如下:
(1)一个对象类可以映射为一个以上的库表,当类间有一对多的关系时,一个表也可以对应多个类。
(2)关系(一对一、一对多、多对多以及三项关系)的映射可能有多种情况,但一般映射为一个表,也可以在对象类表间定义相应的外键。
(3)单一继承的泛化关系可以对超类、子类分别映射表,也可不定义父类表而让子类拥有父类属性;反之,也可不定义子类表而让父类表拥有全部子类属性。
(4)对映射后的库表进行冗余控制调整,使其达到合理的关系范式。
(c)数据库模式面向应用系统。
我们选择面向对象的系统设计也好,面向对象的数据库设计也好,根本目的是服务于应用系统的需要。以测试项目查询分析平台为例,查询分析平台的最大工作量就是对状态的修改,时时的检测。因此如何有效的利用数据库设计的表是关键。
系统一共设计到3个大的模块:业务逻辑模块、控制器模块和jsp显示模块。这3个模块相互调用、组合构建了整个测试项目查询分析平台。测试项目查询分析平台3个部分如下:
3.1 WEB服务器(Tomcat)
负责接收客户端浏览器发送过来的请求并加以解析,按照预定逻辑从测试数据资源中提取数据,然后以正确方式返回,是本软件的核心部分。如图2,WEB服务器内部开发采用MVC模式:
图2 平台体系结构
(a)模型层:即图中的自动化测试系统数据访问控制层。本层对测试数据进行集中管理,有助于保持数据库内数据的正确性,保证数据对外部调用的透明性。
(b)视图层:是客户端HTTPRequest和HTTPXMLRequest请求的应答集,结果可能是一个HTML页面片段,一个EXCEL工作记录表或者一个XML文档片段。
(c)控制器层:其中包括用户访问权限控制模块和查询统计逻辑处理模块。仅当客户端请求通过了用户访问权限验证,才允许服务器对其请求进行处理响应。响应过程在处理流程中有详细描述。
3.2 WEB浏览器
这个部分为与用户的交互接口,用户的查询统计请求通过web页面传送至web服务器,web服务器根据请求调用查询统计模块所提供的接口进行数据的汇集与最终结果视图的构建,并将结果视图返回给web浏览器,在web浏览器中集成了对excel,pdf,word等文档格式的显示功能。
3.3 测试数据资源
对数据查询统计业务与具体测试数据的存储模型进行分离,使得测试数据资源与统计分析模型进行了解耦合,使得平台具有更好的可开放性和灵活性。测试数据资源包括测试数据存储方式的元描述以及具体的测试数据。其中的测试数据提供了用户在测试项目统计查询过程中需要的所有数据。
3.3.1 数据查询分析处理模型
数据查询分析处理模型是平台的核心功能。是按照用户指定的方式对所有的测试数据进行查询分析。其处理流程图3如下:
图3 测试数据统计处理模型
用户进行工作项目统计的前提是具有进行测试工作项目的统计权限,如果权限验证失败则提示用户无法进行统计操作。否则,向用户展示统计方式选择界面。当用户提出统计方式并给出统计条件之后,系统处理流程如下:
Step1 获得用户统计条件参数;
Step2 根据用户选择的统计方式调用数据访问控制层接口,并提供参数,获得符合条件的统计数据;
Step3 把统计数据按照工作项目统计的统一结果格式进行封装;
Step4 生成工作项目统计结果页面并返回应答;
Step5 在工作项目统计结果页面上,如果用户要求生成工作项目统计查询记录表,则继续以下步骤;
Step6 获得待生成工作项目统计查询记录表所需参数,与Step1中的参数相同;
Step7 调用报表生成软件并提供所需参数,在WEB服务器端生成工作项目统计查询记录表;
Step8 向用户返回该记录表,并提示用户保存。
3.3.2 查询分析模型的类框架
测试数据查询分析平台需要对外提供一系列的评估分析和统计的功能,包括按电子系统型号评估,按分系统评估,按测试项目评估,按工作项目评估,按阶段评估,测试任务评估,工作任务评估,日信息评估,测试人员评估等功能。为了保持软件的灵活性和健壮性,采用了一套统一的类架构方式,对以上这些功能提供支持。查询分析模型的类整体结构如图所示:
图3 查询分析模型的类结构
查询分析模型的类结构中的5个模块即文档结构解析模块,表单生成模块,表单页生成模块,工作簿生成模块和数据接口模块提供了实现。这些类和具体的软件模块之间的包含关系如下:
表1 模块的类包含关系
针对任务系统自动化测试过程中,测试数据存储格式多样,测试数据查询方式多样的特点,本文基于MVC提出了测试数据查询分析平台的实现方案,该方案能够最大程度的实现测试数据和查询分析业务的解耦合,实现了平台的开放性和灵活性,该设计方案已经在实际项目中得到实现,具有较高的工程应用价值。
[1]刘宪兰,赵玉洁.国外预警机发展现状与趋势[J].电子科学技术评论.2004(01).
[2]中国电子科学研究院战略研究室.预警机任务系统发展综述[J]电子科学技术评论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