基于
计算
软件
测试
环境
构建
方法
研究
SOFTWARE2023软 件第 44 卷 第 1 期2023 年Vol.44,No.1作者简介:张翔(1992),男,河南洛阳人,硕士研究生,工程师,研究方向:软件测试与开发。基于云计算的软件测试环境构建方法研究张翔 李超 彭珲 黄春营(63892部队,河南洛阳 471000)摘要:随着软件在现代军事装备中成为必不可少的重要组成部分,软件测试在检验作战效能中发挥着日益重要的作用,本文通过对软件在作战中的运行环境和特点进行分析,总结分析了软件测试环境的分类及基于仿真技术的测试环境构建方法。依托云计算等相关技术,提出并设计了基于云平台的快速可重构软件测试环境构建方法,有利于提升软件测试环境资源的管理和重用能力。关键词:软件测试;云计算;环境构建;仿真中图分类号:TP311 文献标识码:A DOI:10.3969/j.issn.1003-6970.2023.01.022本文著录格式:张翔,李超,彭珲,等.基于云计算的软件测试环境构建方法研究J.软件,2023,44(01):085-088 Research on the Construction Method of Software Testing Environment Based on Cloud ComputingZHANG Xiang,LI Chao,PENG Hui,HUANG Chunying(63892 Troops,Luoyang Henan 471000)【Abstract】:As software becomes an essential part of modern military equipment,software testing is playing an increasingly important role in verifying operational effectiveness.By analyzing the operating environment and characteristics of software in combat,this paper summarizes and analyzes the classification of software testing environment and the method of testing environment construction based on simulation technology.Relying on cloud computing and other related technologies,a rapid reconfigurable software testing environment construction method based on cloud platform is proposed and designed,which is conducive to improving the management and reuse capabilities of software testing environment resources.【Key words】:software testing;cloud computing;environment construction;simulation设计研究与应用0 引言如果把硬件装备比作作战中的肌肉和骨骼,那么软件可以认为是作战中的“神经”和“血液”。软件的质量直接影响到作战过程装备遂行作战任务的能力1,以往的军用软件测试通常采取软件测评的方式,单独对软件进行测试和考核。近年来更加强调检验软件在实战条件下的功能和性能,这就要求软件测试必须瞄准作战的任务和目标,充分利用测试资源构建科学合理、贴近实战应用的测试环境。1 软件测试环境的分类和描述根据软件的实际运行环境,可以将软件测试的环境构建分为 3 个部分,分别是软件自身运行环境、与软件交互的软硬件环境以及可能面临的敌方攻击或干扰环境。自身运行环境包括了软件自身运行的软件系统,如操作系统和硬件平台;交互环境包括与软件进行交互的外部软件,如用于测试过程的软件测试工具,还有软件外部所处的网络环境;敌方攻击干扰环境是在敌方对软件运行网络进行病毒攻击或对软件运行依赖的硬件设施进行破坏干扰等恶劣环境,如图 1 所示。综合来看,软件测试环境主要由软件的自身运行环境、外部交互环境和敌方入侵环境 3 个方面构成,由于测试资源、时间周期和场地等条件的限制,不同测试环境的构建方法和技术也不相同。软件自身运行环境通常是较为容易构建的,而对于外部交互环境,可以由真实设备构建,也可以用仿真模型或模拟器构建,软件与外部交互可以通过网络或者点对点的方式,敌方干扰环境一般根据软件测试需求,着重对软件的安全性和可靠性进行摸底。根据软件测试环境的分类、基本属性和要素,在测86软 件第 44 卷 第 1 期SOFTWARE试中需要对软件的运行环境进行规范化的描述2。软件测试环境规范化描述的基本流程以软件的功能性能为基础,依据软件的运行软、硬件环境,对软件测试环境进行规范化描述,描述信息包括测试运行环境的分类、测试环境要素和测试环境描述信息,由此得到软件测试环境规范化的描述文件。形成的软件测试环境规范描述文件中还应根据测试需求与测试设计,包含测试需求分析及目的、测试软件基本情况描述、测试场景环境分析、测试环境设施、测试分析工具等内容。2 基于虚拟仿真的测试环境构建方法虚拟仿真测试环境指的是以建模仿真技术为核心支撑,综合应用信息技术、计算机网络等先进技术,构建真实软件运行环境的仿真模型。虚拟仿真测试环境可由不包含软件真实运行硬件环境的仿真模型构成,也可以在此基础上集成模拟器、原型系统或一些真实设备。根据上述特点,可将软件基于虚拟仿真的测试环境分为全数字仿真测试环境和半实物仿真测试环境。2.1 全数字仿真测试环境构建全数字仿真测试环境是在通用计算机上基于虚拟机等方式搭建软件的运行环境,并且与软件的交互设备采用计算机仿真模型或模拟器进行替代,构建一个不包含任何软件真实运行环境的虚拟仿真环境。构建全数字仿真测试环境的基础和关键是建立逼真可信的仿真模型。构建软件全数字仿真测试环境时,重点对与测试目的相关的特性进行适当的抽象,在对软件运行模式、信息交互关系等深刻掌握的基础上,将外部环境抽象成与测试目的紧密相关的仿真模型,从而构建全数字仿真的软件测试环境。全数字仿真的方式构建的测试环境对测试过程的监控是较为容易的。测试的执行不受时间、场地、环境等限制,受外界影响小,并且简便、易于实施。2.2 半实物仿真测试环境构建半实物仿真测试环境是软件运行在真实作战计算机系统或网络中,而与软件运行交互的外部通信设施、测量设备等采用设备模拟器进行替代,若外部交互的部分配试设备难以用计算机进行模拟,则可以用真实设备,构建包含模拟器或部分实装的半实物仿真测试环境。半实物仿真测试环境构建需要解决真实设备与仿真模型的融合问题,保证仿真测试环境中仿真模型和真实设备信息的时空统一。如应用坐标变换、仿真代理等手段解决空间一致性问题,应用精确授时等时间同步技术解决时间一致性问题。通常情况下,半实物仿真测试环境可满足大部分测试需求,既可以充分发挥仿真模拟的优势,又可以在关键部位保证测试环境的逼真度,能够有效测试被试软件的功能、性能指标。3 基于云计算的快速可重构测试环境构建方法3.1 基于云的测试环境架构云计算的核心概念是将计算机物理资源抽象为资源池,并利用网络为用户提供按需获取、弹性伸缩的计算资源、存储空间以及相应的软件服务3。软件测试可以基于云计算技术构建测试资源生成和管理的云平台,对测试资源进行统一管理和调度,从而实现测试环境的快图 1 软件测试的环境组成Fig.1 The composition of the software testing environment图 2 基于云的测试环境构建与管理架构Fig.2 Cloud-based test environment construction and management architecture外部硬件环境外部软件环境操作系统被测软件软件运行环境测试软件第三方插件其他软件网络环境敌方入侵攻击环境软件硬件处理器内存硬盘显示器等测试环境创建测试环境管理虚拟机环境生成虚拟网络环境构建外部设备接入基于云计算的测试环境构建与管理架构测试环境设计云测试环境生成引擎测试环境状态监控器测试资源库软件运行环境外部仿真模型环境真实装备交互环境客户端云端虚拟机实例库操作系统库环境资源库87张翔李超彭珲等:基于云计算的软件测试环境构建方法研究速重构。测试资源云平台依托虚拟网络的优势,能够以集中控制和分散部署相结合的方式综合进行软件测试资源环境的构建、运行和监控,从而实现测试环境构建和资源管理的快速可重构。基于云的测试环境构建与管理架构设计如图 2 所示,在客户端,测试资源云平台可为软件测试和软件测试提供测试环境的设计、动态创建、测试环境和资源的管理。在云端,部署的测试环境生成引擎根据客户端的指令和相关脚本配置文件,调度测试资源库中的测试资源,创建测试环境,并可通过状态监控器查看环境信息。在基于云平台构建软件测试环境时,测试环境创建的类型可以分为虚拟机测试环境生成、虚拟网络测试环境生成以及基于特殊需求的外部配试设备接入。主要内容包括:3.1.1 虚拟机测试环境生成虚拟机是测试环境中软件运行的主体,运行于其上的软件包括被试软件、配试软件、仿真测试系统软件等。虚拟机生成从资源配置上需分配 CPU 资源、内存资源和存储资源,从软件配置上需安装操作系统、运行环境、数据库、测试工具以及应用软件等。对于软件的不同特点和应用场景,每类虚拟机之间一般构建为一个局域网络。根据测试需求提取环境脚本库中的脚本,并将脚本转化为虚拟机生成指令,发送给虚拟机环境生成模块,从而根据配置脚本生成虚拟机测试环境。3.1.2 虚拟网络测试环境构建订单式测试环境定制内容包括虚拟机硬件配置定制、操作系统虚拟化与定制、功能软件定制、测试工具定制,通过一组类似菜单的选项由用户选择,用户选择之后测试环境配置信息将会被存储为测试环境脚本,存入测试环境规划设计子系统的测试环境脚本库中。对于分布式软件,一般均具有较复杂的网络环境,网络环境依托通信网络控制设备构建,各种不同的通信设备为网络环境提供通信链路。这种虚拟网络环境在基于云的测试环境下,可使用虚拟交换和虚拟路由替代通信网络中的各种控制设备,基于交换机的网络通信模拟不同的通信链路,虽然无法准确模拟通信带宽和通信质量,但是对于应用软件的通信操作接口是一致的。3.1.3 外部设备接入在测试过程中,部分软件的功能可能会涉及对真实配测设备的操作,而真实设备无法通过虚拟化的方式在云平台中实现模拟。对于该类软件功能测试环境的构建,除了要在云平台上构建虚拟机和虚拟网络环境,还需将外部真实设备接入虚拟环境。对于真实设备的接入方式,可通过串口连接,通过串口服务器将串口数据转换为网络数据,进而通过交换机实现虚拟环境与外部配试设备之间的串口信息交换。若外部设备提供接口非通用常见接口,可通过创建代理的方式,实现云平台和外部设备的交互连接,通过代理实现数据传输、数据转换等功能。3.2 基于云的测试环境构建与管理流程基于云平台的测试环境构建与管理的信息处理流程如下:(1)根据测试需求配置测试环境,包括操作系统配置、测试工具配置、软件运行环境配置等;(2)通过读取测试环境配置方案脚本,访问和调用云化的测试环境资源,自动或手动创建虚拟测试环境;(3)对于无法云化部署的测试环境资源,通过专用的外部设备接入接口与云化的测试环境进行交互;(4)通过测试环境监控与管理,可挂起、存储、恢复测试环境。测试环境构建与管理的处理流程如图 3 所示。测试人员创建测试环境测试环境云平台外部设备接入软件运行环境仿真模型运行环境真实设备交互环境监控管理工具方案测试环境管理图 3 测试环境构建与管理流程图Fig.3 Flow char