APP下载

基于J2EE+Flex技术的软件测试管理系统分析与设计

2022-02-17肖新凤

电子制作 2022年3期
关键词:软件测试插件客户端

肖新凤

(广东环境保护工程职业学院,广东佛山,528216)

0 前言

软件测试就是利用测试工具按照测试方案和流程对产品进行功能和性能测试,甚至根据需要编写不同的测试工具,设计和维护测试系统,对测试方案可能出现的问题进行分析和评估。执行测试用例后,需要跟踪故障,以确保开发的产品适合需求。随着软件测试的重要性日益渐显,如何更好的管理开发与测试之间的沟通,以及及时监控产品的质量报告,让这个管理过程软件信息化。这就需要一些软件测试的管理系统来维护,因此与基于J2EE+Flex技术的软件测试管理系统的开发目的和需求相迎合。

1 需求分析

FTest软件测试管理系统设计目的旨在建立一个以J2EE+Flex+MySQL为基础,功能简单实用、结构灵活而且简洁轻量、精致的软件测试管理系统。主要应用目标是小型的开发团队在软件开发的过程中对软件的测试,在开发与测试人员之间的交流进行管理,能够满足不同的用户角色(如团队领导、开发和测试人员)的工作需要,提供了足够灵活的接口去实现上述需求的关键,各个环节通过网络实现了对共享数据的及时访问,避免了由于数据分散而导致的数据不一致现象的发生。本系统包括:主要包括配置管理、缺陷管理和测试流程制定与管理及项目管理功能等等。插件式开发功能:事件和消息处理机制。部分功能用例分析如下。

1.1 配置管理

管理员在配置管理模块对相关的内容,进行浏览配置信息、添加配置信息、删除配置信息、编辑配置信息、查询配置信息等操作。提取编辑配置信息时不一定要修改所属项目的分类。配置管理用例图如1所示。

图1 配置管理用例图

1.2 Bug管理

管理员对Bug管理相应的内容,进行浏览Bug信息、添加新的Bug信息、编辑Bug信息、删除Bug信息和查询Bug信息的操作。其中添加新的Bug信息时可以选择直接分配任务对改Bug进行处理,提取编辑Bug信息用例时不一定会修改所属项目、优先级、类型和状态如图2所示。

图2 Bug管理的用例图

1.3 Bug处理

管理员对Bug处理相应的内容,进行浏览Bug处理信息、编辑Bug处理信息和查询Bug处理信息;其中提取编辑Bug处理信息时不一定会修改流程状态或状态如图3所示。

图3 Bug处理的用例图

2 系统设计

2.1 插件式设计

基于插件式设计比起许多设计模式更简单,更容易理解。各种基于插件设计的架构都有自己的特色,但从总体架构上看,其模型都大同小异。

图4 插件式设计模式

基于插件设计的应用程序由应用程序框架、插件接口、插件和公共项目类库四部分组成。

应用程序框架负责应用程序的整体运作,它清楚程序整个流程,但并不知道每个过程具体要做什么。它在适当的时候调用一些插件,来完成真正的功能。插件接口是一个协议。插件按照这个协议实现出来,就可以加入到应用程序中来。当然,对于复杂的系统,插件接口可能有多个,各自具有独立的功能。插件是完成实际功能的实体,实现了要求的插件接口。尽管实现什么以及怎么实现,完全是插件自己的自由。在实际情况来,一般还是有些限制,因为插件接口本身可能就是一个限制。如,实现编译功能的插件,自然不能实现成一个聊天功能的插件。公共项目类库是一组函数或者类,应用程序框架和插件都可以调用。它通常是一个独立的库。应用程序框架本身是公用的,是代码复用的一种方式。但并不是所有可复用代码都可以放在框架中,特别是插件会用到的公共代码,那会造成插件对框架的依赖。把这些公共代码提取到一个独立的库中,是一种好的方法。

2.2 开发设计模型的改进

2.2.1 系统整体模式架构

为更好地体现出系统的灵活性和可扩展性,本系统采用了MVC三层模式开发和插件设计的混合开发模式,实现表现层和业务层的分离。客户端由Flex的事件处理(Event)和Fabrication的消息(Notification)处理的机制实现View层的功能,服务端使用Hibernate充当Model层,Spring实现Controller层的功能,对服务端的Model层的数据进行操作,并发布Services接口,供Flex的客户端调用。如图5所示。

图5 系统整体模式架构

Flex客户端与Java服务端之间的通信是基于BlazeDS使用RemoteObject方式进行数据交互。然而在系统的Flex客户端也是一个MVC结构的开发模式,Flex客户端使用Fabrication框架又进行了MVC三层划分。跟Java服务端进行交互的调用接口放在了Model层的proxy完成,使用消息(Notification)的机制在Controller层由command调用proxy的具体方法,具体的视图的展现由View层的mediator完成。

基于Fabrication框架下设计的Flex客户端,把子功能都当一个独立的小项目来开发设计,在Flex中我们称作Module。主程序整体达到了松耦合的设计,我们把公共的函数或者类抽取在公共项目中进行提供给子模块项目进行引用。每个模块都有它自己的独立性,而跨模块之间的互通信,在此设计模式下设计的程序也能完全实现。跨模块的通信,可以通过Fabrication提供的RouteNotification发送相应的消息命令,执行我们的相关任务。

图6 Flex客户端主程序运行流程图

Java服务端通过BlazeDS这个中间件,能实现我们Flex与Java端的数据进行互通。通过BlazeDS,我们把Java服务端需要提供给外界调用的接口进行暴露,而且能具体到接口里面的每一个方法是否允许被访问的控制。

2.2.2 插件式开发架构

初始化模型,主程序系统提供通用插件接口系统函数库或类库装载完毕,准备初始化插件,通常在插件被加载时调用。至于插件(子模块)要完成什么功能,要插到哪里,在执行LaunchCommand后决定,它调用公共项目模块里的方法把自己注册到主程序中某个位置。而专用插件接口,这些插件接口是专用的,看到它的接口函数说明。

2.3 核心模块设计

图7 基于Fabrication框架的Flex模块内运作流程图

整个软件测试管理系统的分析设计、系统基本架构和模块结构。分析了MVC三层模式,分析插件式设计的开发模型,结合插件式开发模型,提出一种扩展办法,简化应用框架的复杂度,让框架更容易实现,并提高扩展的灵活性,系统的子模块实现了WEB模式和AIR桌面富客户端的自由集成。尽管提出一种结合插件式设计的开发模型,为系统提出一种扩展办法,但一种开发模型并不能解决所有的问题,而且还需要付出相应的代价和努力,还有许多仍待解决的缺陷和不足。

事实上,MVC三层模式和插件式开发模型都有一个共通点,就是文件和库管理繁琐,随着开发过程的深入,插件式开发模式下会产生许多子项目,而基于插件式设计开发下,就需要管理公共项目、主程序库等文件。构建系统需要花费不少时间,多亏如此,在实现系统过程中,我花了不少精力和时间在项目的集成研究中。

同时,插件式开发在插件接口上的问题也如出一辙,问题同样出于插件接口的管理,放置插件接口的地方和时机的考虑并不容易;插件接口越多、可开发的插件种类就越多,不同种类的插件可能对应用程序造成的许多不同问题;插件越多,系统的资源开销就越大等。

3 总结

JFTest软件测试管理系统中,是采用了MVC设计模式,它是一个经过考验的真正的软件设计模型,它可以使程序成为可维护的、模块化的和快速开发的包。使用分离的模型(Model)、视图(View)和控制器(Controller)组织的程序是轻便的。新的特性很容易就被加入,旧的程序换上新的外观也是一下子的功夫。模块化和分离的设计使得开发者和设计者能够同时工作,这包括了快速原型的能力。分离的设计令开发者可以修改应用的一部分而不会影响到其它部分,而且本系统最大的特点是能实现可持续的子模块集成。

猜你喜欢

软件测试插件客户端
“人民网+客户端”推出数据新闻
——稳就业、惠民生,“数”读十年成绩单
软件测试方向人才培养“1+X”融合研究
大数据背景下软件测试技术的发展
用好插件浏览器标签页管理更轻松
虚拟专用网络访问保护机制研究
请个浏览器插件全能管家
关于 Web 应用系统的软件测试的研究
基于jQUerY的自定义插件开发
新华社推出新版客户端 打造移动互联新闻旗舰
软件测试发展现状及前景的探讨