APP下载

基于智能化集成设备的医院大数据信息化云测试系统设计

2020-09-02谈永奇王换换

计算机测量与控制 2020年8期
关键词:软件测试测试医院

谈永奇,王换换,阳 媛,张 鑫

(1.中国人民解放军第71集团军医院,江苏 徐州 221004;2.徐州医科大学 医学信息与工程学院,江苏 徐州 221000;3.东南大学 仪器科学与工程学院,南京 210018;4.中国人民解放军陆军第72集团军医院,浙江 湖州 313000)

0 引言

信息技术的快速发展使得软硬件系统的应用规模得到了大幅扩增,面对各类功能复杂、规模庞大的软件系统,急需一种可靠且有效的软硬件测试方法。软件测试是软件生命周期中一项关键且繁琐的工作,对于保证软件的可靠性有着极为重要的意义。在当前单纯形式化方法和程序正确性证明技术尚不能作为实用性手段的情况下,软件测试技术在未来相当一段时间内仍将是软件可靠性保证的最有效方法之一[1-4]。软件测试贯穿整个软件开发周期,在开发成本中占据很大比重[5]。因此,如何在提升软件性能的同时降低测试成本是软件测试面临的主要问题[6]。

当前已出现大量通用性的软件测试平台[7-11],这些平台在金融、教育、生物、计算机工程等领域的应用中取得了一定效果,但由于医院信息管理系统存在特殊性,具有子系统多、处理的数据复杂等特点,通用性软件测试平台在医疗领域的应用中难以实现较优的效果,主要存在以下几点问题:首先,通用性的软件测试平台缺乏软硬件协同测试功能。现有的测试平台大多偏向于单方面软件测试或硬件测试,无法实现软硬件测试联调。其次,大多数的软件测试平台依赖于人工操作,部分测试平台仍然完全需要依靠个别专家的个人经验进行评测,测试结果缺乏客观性并且测试效率低。最后,现有的测试平台无法满足医疗行业的特殊需求,无法有效帮助医疗行业实现信息化建设。

考虑到目前医疗行业的特殊性,综合了当前软件测试平台的优点,该文设计了一种基于智能化集成设备的医院大数据信息化云测试系统,旨在解决软件投入前的在线测试问题,改善当前测试软件普遍存在的高功耗、高成本问题,构建兼容性强、运行成本低、测试功能完善的云端软件测试平台。该系统利用多目标优化技术和机器学习方法,通过虚拟仿真平台以云测试的形式对软件运行效率、可行性、安全性等指标进行评测,并且能够根据结果提出修正意见,最终从多方面给出测试结果以供医院选择竞标软件。

1 系统开发工具

1.1 编程语言

该文所开发的医院大数据信息化云测试系统主要涉及到网络通信服务器和云测试系统两方面的设计,针对这两部分,该文分别采用Java语言及Python语言进行编写开发。Java语言具有面向对象、类库丰富、安全性高且编译系统使用范围更广等特点,使用Java语言编写的服务器可以实现稳定地传送远程通信文件以及用户拥有多通信通道服务目标,因此,为了本系统能够实现这两个目标,选择Java语言研发网络通信服务器。Python语言是一种功能强大而完善的通用型语言,具有可移植性、可扩展性、可开发性等特点,具备可定义的第三方代码库,能够处理文档生成、单元测试、线程、数据库、CGI、密码系统、Tk和其他与系统设计有关的操作,非常适合智能化软件测试系统的开发。因此,该文选择Python语言参与云测试系统的设计过程。

1.2 开发平台

医院云测试系统的开发主要基于已开发的MNSS(medical network system simulator)平台,该平台是集教学、科研、工程为一体的科研创新实践平台,整合了eve-ng、GNS3 GUI、Dynamips、Dynagen、QEMU、GNU Health、OpenLIS、OpenSourcePACS等众多优秀开源的底层软件,实现了构建、设计和测试医院网络与系统的虚拟仿真环境,能够对各类网络与系统进行虚拟仿真。MNSS平台可以提供简单便捷的方法来设计和模拟任意规模的医院网络架构,能够桥接到真实网络,可以作为医院测试与部署新系统、完成网络改造、快速排查网络故障的有效工具。

2 系统设计

2.1 系统设计目标分析

为了满足医院信息系统的软硬件测试需求,系统设计需实现以下几点目标:

1)精准性:当前多数软件测试平台依赖专家个人经验,测试结果极有可能存在主观误差。因此,在设计软硬件测试系统时,应考虑测试结果的客观准确性,使得结果具有更高的可信度和可利用性。

2)实用性:为满足用户进行软硬件联合测试的需求,测试平台需要提供关于联合测试流程的介绍和指导。因此,在设计过程中应选择更具普适性的设计模式,在实现过程中应注意代码文件的命名规范、代码排版以及代码层次,提高平台的实用性及可扩展性。

3)鲁棒性:当需要测试的软硬件数量达到一定级别时,系统需要维持正常、有效、稳定的运行状态,并具备异常捕获及处理机制。因此,在系统设计过程中,应增强系统的应急处理能力并提高系统的工作负载阈值,使系统能够在不同情况下保持稳定的运行状态。

2.2 系统实现功能分析

为在充分利用现有资源的同时减少软件测试工作人员的任务量,参考实际测试步骤,系统设计需实现以下功能:

1)能够自动显示内置的功能模块,即用户无需定义新的测试页面。

2)能够满足不同用户测试需求,实现面向用户的个性化设置管理和调用功能。

3)自动生成测试报告。

2.3 系统设计思路

该文提出的基于智能化集成设备的云测试系统架设在已开发的MNSS平台中(能够构建服务器集群,提供计算资源、存储资源、网络资源),该云测试系统为满足不同使用者需求,内置两种功能模块。一方面,本系统可以通过梳理相关软硬件系统信息并优化虚拟仿真模块,构建场景库标准组件,搭建适应性模块。医院方可以按照导入流程和角色操作示意图将所在医院相关软件和硬件设备导入到平台中进行测试。云端根据测试流程对软硬件进行评估,同时给出测试报告。医院方可以在移动终端中查看测试结果,为下一步决策做准备。另一方面,本系统可以测试出不同医院信息系统之间的兼容性。可信任第三方可以利用MNSS平台,首先选择一些典型医院,对医院环境建立模型,分别构建通用型场景库、网络设备场景库、医院系统场景库和桥接场景库,并将已构建的场景库保存为模板。然后将所有需要测试的场景库输入至MNSS虚拟仿真平台中,并且保存得到的测试结果,再通过机器学习方法评估测试结果的准确性。最后,可信任第三方只有得到具备了高度准确性的测试结果时,才能够实际部署并上线医院信息化软件测试平台。云测试系统的具体架构如图1所示。

图1 系统架构

2.4 硬件设计

基于智能化集成设备的云测试系统利用Linux操作系统进行系统研发,采用LabVIEW开发环境控制数据和通信,并且利用I/O设备给用户提供内存、文件和进程管理以及接口调用等服务。该系统的使用对象除了医院方之外,还包括可信任第三方,在设计智能化集成终端时,为满足不同使用对象的需求,而提供个性化智能终端。智能化集成终端内置了多源信息资源数据分析、用户评估和独立运营模块,采用了嵌入式系统对测试数据进行采集、挖掘和特征提取。嵌入式系统数据采集选择IEEE 829标准下的Bus采集机制,数据挖掘过程在采集结束之后根据采集结果进行分析。另外,嵌入式系统在开发设计时,保留了程序加载、数据存储、交叉编译和网络通信模块,这些模块能够提高测试速度,节省测试成本,实现高运行效率以及高质量测试目标。系统的总体设计思想如图2所示。

图2 集成化终端

此外,MNSS集群安装有原始的MNSS系统;云端机的硬件采用树莓派的3B+,同时安装开源瘦客户机软件Thinstaiton作为云端机,本地操作台或者远端计算机都可以通过云端机访问到MNSS集群中的各个子系统;本地操作台通过KVM在MNSS集群和云端机中间进行切换。MNSS集群的每台设备选型如表1所示。

表1 MNSS集群单台设备选型

2.5 软件设计

2.5.1 云端架构设计

该文提出的软件测试平台采用前后端分离模式。两端均采用较新的语言框架进行开发,前端采用angular.js框架进行开发设计,后端使用Spring boot框架进行开发设计。另外,该文在测试框架时,选择Java语言进行智能化软硬件检测,利用Maven部署项目并且利用mybatis持久层构建项目,同时选择mysql开源软件对医疗大数据进行管理。

2.5.2 集群管理设计

云测试表示的是以云计算技术为基础而形成的一种全新的软件测试方式,已经成为当前主流的测试方法。在设计系统时,需要解决任务调度问题以发挥云测试的最大效用。任务调度是操作系统的重要组成部分,直接影响系统性能,十分关键,因此,如何进行任务调度是当前亟待考虑的问题。传统资源调度方法需要根据不同的资源建立不同的模型来完成计算任务。而该文为了提高资源配置效率,利用迁移学习方法和自适应模糊推理算法来解决动态资源配置问题,经过实验证明,该文提出的方法取得了良好的效果。

在预测CPU、内存及其他资源时,利用自然语言处理技术,进行指令代码的特征提取,并使用PCA算法对高维属性进行降维,假设指令有n个特征向量X1,X2,…,Xn,通过PCA算法能够得到Y1,Y2,…,Ym(m

(1)

(2)

迁移学习算法通过将已获得的特征知识运用到其他资源的模型训练中,是在有限数据量和通信成本内快速建立同类预测模型的较佳方法,迁移学习的关键是确定迁移特征。使用高斯混合模型(GMM)来首先描述不同资源的数据结构(比如CPU和内存),如果源域(CPU)和目标域(内存)的数据结构非常相似,这意味着集群的数量相同,则源域和目标域之间存在很强的对应关系。基于源域数据,用公式(3)构建源域预测模型:

(3)

3 实验结果与分析

对设计的基于智能化集成设备的医院大数据信息化云测试系统进行仿真实验测试,测试过程如图3所示,具体步骤如下:

图3 系统测试示意图

首先,用户可以将智能终端收集的数据通过开源软件构成的云端机输入平台的网络IP地址与平台建立连接,或者通过交换网络连接至MNSS集群。

然后,由MNSS平台接收到用户发出的具体测试需求之后,对任务进行划分,按照既定标准分配给各个子系统。子系统分别完成软件或硬件对应相关指标测试之后,将测试结果保存至终端。

最后,对内置了资源优化算法的云测试平台进行性能测试及结果分析。图4是经过了231个硬件测试及106个软件测试的结果示意图,由于系统使用了集群管理的资源调优化算法,系统能够弹性增加CPU及内存等计算资源,始终保持良好的计算性能。此外,图4还显示了系统实时资源预测结果,并与实际使用的资源相比较,预测结果与实际负载相差较少,基本能够满足系统的资源配置需求。

图4 系统测试结果及界面显示

该系统支持远端协作方式与云端机建立连接。与传统的测试方式比较,从测试连接方式方面而言,该文开发的云测试系统连接方式多样,且较为灵活。对于相同量的测试任务,本系统不需要花费大量投资应用于测试软件之中,测试成本明显减少。另外,测试任务提交之后,不论是通过哪种方式连接系统的用户(医院方或可信任第三方)只需要等待一段时间就能得到软硬件测试结果报告,测试效率明显提高。分析结果表明该系统稳定良好,能够满足医院软硬件测试需求。

4 结束语

云测试是建立在云计算基础之上,并通过搭载测试相关的软硬件、系统、运行环境等资源,为用户提供的一种在线测试服务。云测试技术的出现拓宽了现有的测试平台应用途径,在当前软硬件运用规模日益扩大的趋势下,必然会成为未来主流的软件测试方式。该文以云端测试技术为依托,设计了一种基于智能化集成设备的医院大数据信息化云测试系统。该系统能够有效完善医学信息相关软硬件的测试过程,并按照模块化和分离化的设计思路,采用面向对象的编程技术,具有高度复用性和扩展性,且易于维护、修改和测试。同时,该系统以降低运行成本和实现测试自动化为目标,利用机器学习以及迁移学习方法建立多种资源的预测模型,有效提高了系统资源配置的效率和精度。实验测试结果表明,本系统不但能够保证测试结果的稳定性和有效性,大大节省了测试成本,而且与其他针对医疗大数据的同类型架构测试平台相比具有较强的通用性。在今后的研究过程中,还将对该云测试系统进行更加深入的开发,将会进一步根据实际情况来完善技术功能和服务标准,确保该系统能够最大限度地发挥效用,让越来越多的使用者受益。

猜你喜欢

软件测试测试医院
软件测试方向人才培养“1+X”融合研究
基于OBE的软件测试课程教学改革探索
航天软件测试模型构建与应用
“摄问”测试
关于 Web 应用系统的软件测试的研究
萌萌兔医院
测试
小测试:你对电子邮件上瘾了吗?
认一认