CN114328278B - 分布式仿真测试方法、系统、可读存储介质及计算机设备 - Google Patents

分布式仿真测试方法、系统、可读存储介质及计算机设备 Download PDF

Info

Publication number
CN114328278B
CN114328278B CN202210244040.5A CN202210244040A CN114328278B CN 114328278 B CN114328278 B CN 114328278B CN 202210244040 A CN202210244040 A CN 202210244040A CN 114328278 B CN114328278 B CN 114328278B
Authority
CN
China
Prior art keywords
test
message
data
simulation
node
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN202210244040.5A
Other languages
English (en)
Other versions
CN114328278A (zh
Inventor
肖鹏
岳鹏
李富强
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
CETC 20 Research Institute
Nanchang Hangkong University
Original Assignee
CETC 20 Research Institute
Nanchang Hangkong University
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by CETC 20 Research Institute, Nanchang Hangkong University filed Critical CETC 20 Research Institute
Priority to CN202210244040.5A priority Critical patent/CN114328278B/zh
Publication of CN114328278A publication Critical patent/CN114328278A/zh
Application granted granted Critical
Publication of CN114328278B publication Critical patent/CN114328278B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Debugging And Monitoring (AREA)

Abstract

本发明提供一种分布式仿真测试方法、系统、可读存储介质及计算机设备,方法包括:获取多个消息的消息结构设计文档,并对多个消息结构设计文档分别构建对应的消息协议组件;描述消息互操作的测试环境,以生成测试环境配置;根据测试环境配置、多个消息协议组件以及需求文件进行消息建模,生成消息流程处理场景模型;将消息流程处理场景模型上的节点信息通过关键字提取,生成测试用例文件;将测试用例文件转换成可执行的测试脚本文件,以使用户利用测试脚本文件对消息数据进行消息测试,以得到对应的测试结果。本发明能有效优化复杂测试流程测试过程中测试分工并缩短的消息测试的周期,提高消息测试的质量。

Description

分布式仿真测试方法、系统、可读存储介质及计算机设备
技术领域
本发明涉及软件测试技术领域,特别涉及一种分布式仿真测试方法、系统、可读存储介质及计算机设备。
背景技术
随着信息系统由单一化向平台化发展,消息的可靠性变得极端重要。消息是实现各类信息系统互联互通,信息共享的重要载体,也是连接各类信息系统的重要纽带。消息通讯对实现不同系统平台协同工作,提升系统信息化与智能化水平起到不可或缺的作用。而保障消息协议的一致性与互操作性是提升系统平台通讯底层可靠性与安全性的重要环节。
消息测试是检验通讯是否满足规范的一种技术方法,目前具有广泛的应用和较成熟的工具。但是,随着信息系统越来越复杂、规模越来越庞大。系统功能与接口的急剧增多导致系统之间的行为规则变得繁复。丰富的消息协议种类和复杂多变的消息交互流程,使消息测试设计、测试用例编写和维护工作越来越棘手。特别是在复杂消息测试场景下,一些测试工作已远远超过单个测试人员的能力范围,需要测试团队中各类工程师在测试流程精细地分工与协作。特别是在测试团队中成员承担多个测试任务情况下,时间或空间上的协同工作常常难以有效地开展,迫使测试项目延期。
分布式测试方法是通过采用多个具有数据采集与控制处理能力的测试节点组成一个多功能测试平台,通过节点的协同控制来完成复杂的测试工作。但是,传统的分布式测试方法通常考虑的是测试任务的体量的巨大性,通过分解测试任务,提升测试任务的并行效率。如陈佐在自动测试模型设计中采用分发调度规则对测试用例进行分布式任务调度。基于NI PSP协议的分布式系统采用共享网络变量技术实现分布式测试下的数据共享与传输。
这些分布式测试方法关注同一类型测试任务的并行性,测试任务间不具备关联性。同时这些分布式方法并没有减少测试过程中顺序测试阶段的并行性,没有考虑如何对复杂测试流程进行合理优化,以提升测试阶段之间的协同性。
由此可知,面向测试场景复杂的消息处理流程,使用传统的测试技术或方法已经无法进行有效支撑。如何针对消息处理流程进行充分验证,并对消息协议用进行全面的测试是当前亟待解决的关键问题。
发明内容
基于此,本发明的目的是提供一种分布式仿真测试方法、系统、可读存储介质及计算机设备,以至少解决上述技术中的不足。
本发明提出一种分布式仿真测试方法,包括:
获取多个消息的消息结构设计文档,并对多个所述消息结构设计文档分别构建对应的消息协议组件;
描述消息互操作的测试环境,以生成测试环境配置;
根据所述测试环境配置、多个所述消息协议组件以及需求文件进行消息建模,生成消息流程处理场景模型;
将所述消息流程处理场景模型上的节点信息通过关键字提取,生成测试用例文件;
将所述测试用例文件转换成可执行的测试脚本文件,以使用户利用所述测试脚本文件对消息数据进行消息测试,以得到对应的测试结果。
进一步的,所述对多个所述消息结构设计文档分别构建对应的消息协议组件的步骤包括:
分析出各个所述消息结构设计文档中的消息基本信息以及消息元素信息;
根据所述消息基本信息以及所述消息元素信息构建对应的消息协议组件。
进一步的,所述消息建模分为消息静态建模以及消息动态建模,所述消息静态建模为消息协议本身基本属性建模,所述消息动态建模为所述消息在互操作过程中的动态使用建模。
进一步的,所述用户利用所述测试脚本文件对消息数据进行消息测试,以得到对应的测试结果的步骤包括:
构建消息仿真界面,并加载所述测试脚本文件以执行消息测试,得到对应的测试数据;
通过所述消息仿真界面对所述测试数据进行数据映射,以使所述测试数据在所述消息仿真界面上可视化展示。
进一步的,以使所述测试数据在所述消息仿真界面上可视化展示的步骤之后,所述方法还包括:
采集所有的测试数据,并采用统计分析法与路径覆盖分析法对所述测试数据进行分析,得到分析结果;
根据所述分析结果按预设的评估标准评估所述消息测试的完备性,并生成对应的评估报告。
进一步的,所述评估标准包括测试节点的覆盖标准、测试边的覆盖标准、使用消息的覆盖标准以及使用消息元素的覆盖标准。
本发明还提出一种分布式仿真测试系统,包括:
消息协议构建模块,用于获取多个消息的消息结构设计文档,并对多个所述消息结构设计文档分别构建对应的消息协议组件;
测试环境配置模块,用于描述消息互操作的测试环境,以生成测试环境配置;
场景构建模块,用于根据所述测试环境配置、多个所述消息协议组件以及需求文件进行消息建模,生成消息流程处理场景模型;
测试用例生成模块,用于将所述消息流程处理场景模型上的节点信息通过关键字提取,生成测试用例文件;
消息测试模块,用于将所述测试用例文件转换成可执行的测试脚本文件,以使用户利用所述测试脚本文件对消息数据进行消息测试,以得到对应的测试结果。
进一步的,所述消息协议构建模块包括:
协议分析单元,用于分析出各个所述消息结构设计文档中的消息基本信息以及消息元素信息;
协议构建单元,用于根据所述消息基本信息以及所述消息元素信息构建对应的消息协议组件。
进一步的,所述消息测试模块包括:
界面构建单元,构建消息仿真界面,并加载所述测试脚本文件以执行消息测试,得到对应的测试数据;
数据处理单元,用于通过所述消息仿真界面对所述测试数据进行数据映射,以使所述测试数据在所述消息仿真界面上可视化展示。
进一步的,所述消息测试模块还包括:
数据采集单元,用于采集所有的测试数据,并采用统计分析法与路径覆盖分析法对所述测试数据进行分析,得到分析结果;
数据评估单元,用于根据所述分析结果按预设的评估标准评估所述消息测试的完备性,并生成对应的评估报告。
本发明还提出一种可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现上述的分布式仿真测试方法。
本发明还提出一种计算机设备,包括存储器、处理器以及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述的分布式仿真测试方法。
本发明当中的分布式仿真测试方法、系统、可读存储介质及计算机设备,采用基于模型的系统工程方法对分别对消息静态属性和消息动态流程进行建模,通过形式化模型转化方式进行测试用例自动生成,提高消息模型复用性,同时提升了消息测试用例生成的自动化程度与效率;针对消息处理流程测试,依次通过构建消息协议组件、生成测试环境配置、构建消息流程处理场景模型、生成测试用例文件以及消息测试的分布式协同测试提升顺序测试工作并发性;测试流程控制采用数据处理逻辑与仿真展示界面分离的方式,提供测试预言的实时判断与关键消息元素和测试预言的可视化仿真显示,提升测试过程的人机交互友好程度。
附图说明
图1为本发明实施例中的分布式仿真测试方法的用例图;
图2为本发明实施例中的分布式仿真测试系统架构图;
图3为本发明实施例中的测试工程文件结构图;
图4为本发明第一实施例中的分布式仿真测试方法的流程图;
图5为图4中步骤S101的详细流程图;
图6为图4中步骤S105的详细流程图;
图7为本发明实施例中的消息测试场景模型层次图;
图8为本发明实施例中的消息测试流程模型;
图9为本发明实施例中的基于模型的测试控制原理图;
图10为本发明实施例中的测试脚本自动生成示例图;
图11为本发明实施例中的仿真测试流程原理图;
图12为本发明实施例中的分布式测试节点视角下的测试步骤图;
图13为本发明第二实施例中的分布式仿真测试系统的结构框图;
图14为本发明第三实施例中的计算机设备的结构框图。
主要元件符号说明:
存储器 10 测试环境配置模块 12
处理器 20 场景构建模块 13
计算机程序 30 测试用例生成模块 14
消息协议构建模块 11 消息测试模块 15
如下具体实施方式将结合上述附图进一步说明本发明。
具体实施方式
为了便于理解本发明,下面将参照相关附图对本发明进行更全面的描述。附图中给出了本发明的若干实施例。但是,本发明可以以许多不同的形式来实现,并不限于本文所描述的实施例。相反地,提供这些实施例的目的是使对本发明的公开内容更加透彻全面。
需要说明的是,当元件被称为“固设于”另一个元件,它可以直接在另一个元件上或者也可以存在居中的元件。当一个元件被认为是“连接”另一个元件,它可以是直接连接到另一个元件或者可能同时存在居中元件。本文所使用的术语“垂直的”、“水平的”、“左”、“右”以及类似的表述只是为了说明的目的。
除非另有定义,本文所使用的所有的技术和科学术语与属于本发明的技术领域的技术人员通常理解的含义相同。本文中在本发明的说明书中所使用的术语只是为了描述具体的实施例的目的,不是旨在于限制本发明。本文所使用的术语“及/或”包括一个或多个相关的所列项目的任意的和所有的组合。
本发明的目的在于,提出一种面向消息处理流程的分布式仿真测试方法,本发明旨在解决消息处理流程的测试建模复杂,测试自动化程度低、测试效果差问题,能够在消息交互场景复杂情况,通过基于模型方法和仿真测试技术,采用松耦合设计,实现消息测试过程的合理优化,从而提升整体消息测试的效率。
本发明为一种面向消息处理流程的分布式仿真方法,在测试过程中,对不同领域的工作人员,使用不同的测试模块(节点)进行精细分工与协同,如图1所示。为了能达到此目的,采用分布式架构设计本发明依赖的物理平台,如图2所示。参照图2中包括:
N21、消息协议设计节点:负责消息协议的定义和协议内消息元素的建模工作。消息协议是进行消息通讯的基本单元,在消息测试中涉及的消息协议类别较多。对消息协议进行单独设计,能够将消息协议模型从测试场景模型中独立出来,并进行有效复用,从而提高测试设计的效率;
N22、消息测试场景建模节点。采用基于模型的设计方法,对消息协议的发送、接收、时序和约束进行消息处理流程的建模。消息测试采用消息应答的机制,在构建测试场景模型时,考虑不同消息之间的应答行为。建模分为两个部分:1)测试交互环境建模;2)消息测试场景建模;
N23、测试用例生成节点。完成测试场景模型中测试路径到测试用例脚本的转化工作。测试场景是一个从“开始”节点到“结束”节点的有向图,其中一条从“开始”到“结束”的完整测试序列是一个消息测试用例,序列中包含完整的消息测试应答流程。采用手动选定路径的方式或基于有向图覆盖的自动生成测试序列。并将选定的测试序列转化为XML测试脚本,实现测试用例信息的提取。
N24、测试验证评估节点。消息测试的执行单元,包含消息测试执行模块与评估模块,通过加载测试用例集中的测试脚本执行测试。在测试执行过程中,与被测系统进行测试交互产生的数据通过仿真界面进行数据映射,实现测试过程的可视化仿真。评估模块承担消息测试结果的评价工作,通过导入需评估的测试用例集,同时选择评价指标构建评估模型,分析后输出评估报告。
N25、数据存储节点。数据存储节点是测试数据的管理单元,包括两类数据库:项目数据库和测试数据库。项目数据库负责管理测试工程文件,包括各子节点的数据模型文件与测试脚本文件,采用文件型数据库进行存储。各测试节点通过拷贝测试工程文件副本与写回控制机制进行分布式的模型文件控制。测试数据库负责收集测试在执行过程中产生的激励、反馈与验证结果数据。
N26、HLA网络。本发明的通讯层,是分布式交互仿真技术的核心。本测试架构中每个测试节点作为一个联邦成员,通过本地RTI (Run Time Infrastructure)组件在HLA网络中进行通讯。中央RTI 组件驻留在数据存储节点的硬件平台上运行,负责并协调各个联邦成员之间通讯,承担管理整个联邦的工作。
N27、被测系统。消息测试的验证对象,其作为一个联邦成员加入HLA网络中,通过HLA网络与测试验证评估节点进行交互。被测系统类型可以是外部设备仿真,模拟器、也可以是实装系统,在复杂消息测试场景中允许同时存在多个被测系统。
在测试时首先需要建立消息测试工程文件,如图3所示。针对每一个消息处理流程测试项目,建立一个单独测试工程文件。测试工程文件为各测试节点产生物的集合,包括消息协议配置模型、消息处理流程模型、测试用例脚本集、测试评估配置模型、数据库管理配置。消息协议配置模型为消息协议设计节点的输出、消息处理流程模型为消除处理流程节点的输出、测试用例脚本集为测试用例生成节点的输出、测试评估配置模型为测试验证评估节点的输出、数据库关联配置为测试工程中测试用例关联的测试数据库中执行用例数据。
测试工程文件唯一正本保存在数据存储节点中,其他测试节点在打卡测试工程文件时,通过HLA网络进行远程副本拷贝,将正本拷贝到本地计算机磁盘上,进行对应模型文件的读取。在编辑后,通过写回控制机制进行对应模型文件的写回控制。在进行一个新的消息测试后,将新建一个包含空文件层级的测试工程;可以在测试工程文件在编辑过程中,重新打开进行二次编辑。
实施例一
请参阅图4,所示为本发明第一实施例中的分布式仿真测试方法,所述分布式仿真测试方法具体包括步骤S101至S105:
S101,获取多个消息的消息结构设计文档,并对多个所述消息结构设计文档分别构建对应的消息协议组件;
请参阅图5,所述步骤S101包括具体步骤S1011~S1012:
S1011,分析出各个所述消息结构设计文档中的消息基本信息以及消息元素信息;
S1012,根据所述消息基本信息以及所述消息元素信息构建对应的消息协议组件。
S102,描述消息互操作的测试环境,以生成测试环境配置;
S103,根据所述测试环境配置、多个所述消息协议组件以及需求文件进行消息建模,生成消息流程处理场景模型;
S104,将所述消息流程处理场景模型上的节点信息通过关键字提取,生成测试用例文件;
S105,将所述测试用例文件转换成可执行的测试脚本文件,以使用户利用所述测试脚本文件对消息数据进行消息测试,以得到对应的测试结果。
请参阅图6,所述步骤S105包括具体步骤S1051~S1054:
S1051,构建消息仿真界面,并加载所述测试脚本文件以执行消息测试,得到对应的测试数据;
S1052,通过所述消息仿真界面对所述测试数据进行数据映射,以使所述测试数据在所述消息仿真界面上可视化展示;
S1053,采集所有的测试数据,并采用统计分析法与路径覆盖分析法对所述测试数据进行分析,得到分析结果;
S1054,根据所述分析结果按预设的评估标准评估所述消息测试的完备性,并生成对应的评估报告。
在具体实施时,以某有人/无人信息应用平台中的数据链消息通讯需求为例,采用外设仿真器模拟被测系统。实施例中的某些参数在此进行了简化处理,具体步骤如下:
1、设计静态消息协议组件。根据有人/无人信息应用平台的需求规格说明文档中关于消息结构设计文档,将详细信息在“消息协议设计节点”中录入消息协议组件,组件中包括如表1所列属性。消息协议字段包含基本属性与消息元素列表,基础属性包含协议属性的结构设计。消息元素列表包含该消息中所有的字段描述,例如消息编号字段,消息字结构字段均可在消息元素中定义。消息元素的属性设计中包括元素名称,元素类型、面向比特的元素起始位与结束位、初始值等;
表1
Figure 902221DEST_PATH_IMAGE001
每一个消息构成一个消息协议组件,从实施例的文档中提取并创建了56个消息协议组件。所有的组件数据存储在消息数据库中,通过数据库管理对组件进行增、删、改、查基本数据库操作。
2、进行消息互操作的测试环境配置。该步骤开始在“消息测试场景建模节点”中进行,配置采用类似Visio绘图工具的图形化界面,通过拖动控件方式绘制对象,在图中用“方框”表示,以及对象之间的交互关系,在图中用带箭头的“连线”表示。以此构建整个消息互操作的测试环境。
通过双击控件进行属性设置,对象属性包括对象名称、对象类型、对象IP地址、包含交互关系。其中关键步骤为在“连线”中配置交互关系。从已设计好的消息协议组件库中导入方式,添加在本次测试任务中使用的消息协议类型。测试环境配置的消息协议为后续测试评估的基础,消息协议不能缺项和多余。
本实施例依照消息处理规则中“空中PPLI”消息的发送规则和接收规则进行描述,配置了测试环境,如表2所示。
表2
测试节点 属性 连线 消息配置
端机 外设仿真模拟 端机->被测平台 端机状态消息 网络参与状态消息
飞行器 测试平台 被测平台->指控 空中PPLI(发送)消息
指控系统 外设仿真模拟 指控->被测平台 空中PPLI(接收)消息
3、构建消息流程处理场景模型。根据软件需求规格说明文档,采用基于模型的涉及方法构建消息处理流程场景模型,场景模型的结构如图7所示。该模型为有向图,节点为消息协议处理的操作,操作中包含步骤。操作模型为耦合模型,耦合模型由原子模型(步骤模型)构成,原子模型是消息应答流程中的最小单元,其中包括用到的消息协议,主要为前置条件、发送消息与结果验证。有向边为操作之间的逻辑关系,设置消息发送的时机。
前置条件规定了原子模型进行执行所必须的条件,如一些消息结果状态;执行步骤确定原子模型中发送的消息类型与元素数据,该消息从测试交互环境模型中由测试平台向被测系统发送的消息协议中进行选择;结果验证表示需要验证的来至被测系统消息反馈的结果数据。原子模型中前置条件和结果验证可以缺省。在建立好的消息流程处理场景中填入详细的测试端输入的消息元素数据、以及先置条件数据和验证结果数据,则完成了消息处理流程的建模,图8中列举了消息测试流程模型。
流程模型是一个形式化的模型,消息交互的所有逻辑均通过该模型来表达。本发明的一关键在于采用测试控制和模型分类方式,实现数据和数据形式转换的松耦合,有利于模型的移植和复用。如图9所示,测试控制负责控制数据生成与测试交互控制,数据为模型数据,通过数据生成控制转变为测试脚本,通过测试交互控制进行测试的执行。
4、生成消息测试用例。该步骤开始在“消息测试用例生成节点”中开展,需要读取消息流程处理场景模型,根据软件需求规格说明书进行测试路径的选择,在有向图中生成一条从“开始”到“结束”的测试序列,如针对图8的消息处理流程模型生成的表3测试序列。测试序列包含完整的一个消息测试应答的完整流程。通过基于模型的生成方法,将消息流程处理场景模型上的节点信息通过关键字提取方式读取出来,并生成测试用例XML文件。重复上述步骤,直到生成满足需求要求的测试用例集。
表3
Figure 750091DEST_PATH_IMAGE002
5、测试脚本转换。测试用例XML文件包含了测试的关键数据信息,但不具备执行能力,在测试时需要进一步将测试用例描述文件转化为可执行的测试脚本文件,如图10所示;通过可扩展样式表语言转换XSLT(Extensible Stylesheet Language Transformations)将XML测试脚本转换为C语言程序,利用C语言编译器生成可执行的测试脚本。XSTL本质是一个形式化模型的翻译器,根据设计的模板将形式化模型的特征数据进行提取,并将其翻译成编译器所能够解读的特定的文件。
6、设计消息仿真界面。该步骤在“测试验证评估节点”中进行,采用在仿真界面上模拟仿真外部设备的界面。
仿真界面为自定义控件编辑器,通过拖动已有界面显示控件的进行界面绘制,如文本框、液晶显示器、指示灯、油表、空速表、仪表盘、罗盘等。
设计好画布界面后,对控件进行编辑,打开仿真控件属性,进行绑定数据,数据范围为在消息处理流程模型中包含的所有消息元素。绑定数据后完成测试数据与仿真控件的映射;
7、执行消息流程测试。执行测试需要配置好测试用例以及仿真界面,即测试哪个用例,产生的测试数据将在哪个仿真界面上显示。
配置完成后,进行测试初始化,检测测试的软件与硬件设备是否具备测试条件。启动测试,开展加载测试用例执行进程与仿真界面进程。
8、消息流程测试过程仿真。仿真界面通过将实时测试数据映射到仿真控件上,实现测试数据在测试过程中可视化展示,如图11。测试用例执行进程在测试过程与被测系统通过HLA总线进行测试交互。产生测试激励与反馈,由执行进程捕获,同时进行测试预言的判定,交互数据和结果数据将实时传输到仿真界面进程,驱动仿真界面中的控件发生动态实时变化。
测试数据在测试过程中将通过前置条件与结果验证中的测试预言进行逻辑判断,判断测试步骤通过/不通过。在操作中只要有一个步骤不通过,则操作不同;有一个操作不通过,则测试用例不通过。测试过程仿真最终将验证结果映射到测试流程列表上。表4显示实施例中一个测试用例的测试流程显示列表。
表4
Figure 347426DEST_PATH_IMAGE003
9、测试数据收集。该步骤由“测试验证评估节点”自动收集。在仿真测试过程中,测试激励与反馈数据以及测试预言结果将通过HLA总线发送测试存储节点,以单个测试用例为存储单元,将测试执行过程数据进行保存;
10、开展消息测试评估。该步骤由“测试验证评估节点”中进行,通过加载测试数据库中测试用例集的执行结果,分析法对测试用例集中测试用例执行情况与消息覆盖情况进行分析,评估消息测试的完备性。
(1) 假设创建消息协议模型集合为
Figure 571733DEST_PATH_IMAGE004
Figure 367651DEST_PATH_IMAGE004
中包含测试中需要涉及的所有消息协议。
(2) 假设构建消息测试交互环境为
Figure 448740DEST_PATH_IMAGE005
(3) 假设构建消息测试场景
Figure 595687DEST_PATH_IMAGE006
Figure 545058DEST_PATH_IMAGE007
表示操作节点集合,
Figure 726640DEST_PATH_IMAGE008
表示操作的连线集合。其中一个操作节点为一个耦合模型,集合
Figure 650734DEST_PATH_IMAGE009
可表示为耦合模型的集合
Figure 347294DEST_PATH_IMAGE010
,耦合模型是由原子模型构成的集合,那么
Figure 647826DEST_PATH_IMAGE011
Figure 621598DEST_PATH_IMAGE012
表示原子模型,其中P为先置条件,O为消息输出,R为验证结果。
(4) 生成测试序列集
Figure 716593DEST_PATH_IMAGE013
。一个测试序列
Figure 900450DEST_PATH_IMAGE014
即为一个测试用例,描述为
Figure 270251DEST_PATH_IMAGE015
,其中
Figure 895267DEST_PATH_IMAGE016
Figure 613694DEST_PATH_IMAGE017
分别表示序列中操作节点与连线的集合,
Figure 956950DEST_PATH_IMAGE018
Figure 130443DEST_PATH_IMAGE019
Figure 937862DEST_PATH_IMAGE020
是测试场景
Figure 640238DEST_PATH_IMAGE021
的一个子集。 start表示序列起始节点,end表示终止节点。通过在测试场景中不同的路径选择得到
Figure 408474DEST_PATH_IMAGE022
(5)测试执行获得测试结果
Figure 120078DEST_PATH_IMAGE023
,测试用例
Figure 719687DEST_PATH_IMAGE024
的执行结果为
Figure 655282DEST_PATH_IMAGE025
,r为执行结果信息,包括通过、不通过或未执行。
评估对象以单个消息处理流程场景包含的测试用例集为对象,评估结果
Figure 973131DEST_PATH_IMAGE026
Figure 144218DEST_PATH_IMAGE027
,
Figure 863912DEST_PATH_IMAGE028
分别表示测试用例集的覆盖评估和执行结果评估。
假设测试用例
Figure 970409DEST_PATH_IMAGE020
的操作节点为集合
Figure 41133DEST_PATH_IMAGE029
,边集合为
Figure 828960DEST_PATH_IMAGE030
,消息集合为
Figure 340844DEST_PATH_IMAGE031
,消息元素集合为
Figure 555925DEST_PATH_IMAGE032
。测试用例集
Figure 848366DEST_PATH_IMAGE013
包含n个测试用例。
覆盖评估结果为
Figure 502201DEST_PATH_IMAGE033
评估中有
Figure 930908DEST_PATH_IMAGE034
Figure 503841DEST_PATH_IMAGE035
为被测场景模型中所有的操作节点。
对消息处理流程模型的操作覆盖为公式(1):
Figure 283578DEST_PATH_IMAGE036
(1)
Figure 678787DEST_PATH_IMAGE037
Figure 24318DEST_PATH_IMAGE038
为被测场景模型中所有的操作节点。
对消息处理流程模型的边覆盖为公式(2):
Figure 846781DEST_PATH_IMAGE039
(2)
Figure 785918DEST_PATH_IMAGE040
Figure 984818DEST_PATH_IMAGE041
为测试交互配置模型中所有的消息集。
对消息处理流程模型的消息覆盖为公式(3):
Figure 122538DEST_PATH_IMAGE042
(3)
Figure 178219DEST_PATH_IMAGE043
Figure 666969DEST_PATH_IMAGE044
为测试交互配置模型中所有的消息的元素集。
对消息处理流程模型的消息元素覆盖为公式(4):
Figure 403981DEST_PATH_IMAGE045
(4)
测试用例执行统计结果为公式(5):
Figure 848738DEST_PATH_IMAGE046
(5)
通过评估测试的覆盖情况与通过情况,并与测试的目标进行比较,如果满足测试的完备性则测试通过。
上述描述本发明具体的测试方法,涵盖了从消息设计——流程建模——用例生成——测试执行——验证评估的消息测试完整流程,如图12。本发明既是工程方法,也是测试框架。对解决消息处理流程测试建模复杂、自动化程度低、测试效果差的问题具有较大帮助。
综上,本发明上述实施例当中的分布式仿真测试方法,采用基于模型的系统工程方法对分别对消息静态属性和消息动态流程进行建模,通过形式化模型转化方式进行测试用例自动生成,提高消息模型复用性,同时提升了消息测试用例生成的自动化程度与效率;针对消息处理流程测试,划分为松耦合的五个测试节点,分别为协议设计节点、测试场景建模节点、测试用例生成节点、验证评估节点、数据存储节点,不同的测试节点部署在HLA(High Level Architecture)仿真网络上,通过分布式协同测试提升顺序测试工作并发性;测试流程控制采用数据处理逻辑与仿真展示界面分离的方式,提供测试预言的实时判断与关键消息元素和测试预言的可视化仿真显示,提升测试过程的人机交互友好程度。
实施例二
本发明另一方面还提出一种分布式仿真测试系统,请查阅图13,所示为本发明第二实施例中的分布式仿真测试系统,包括:
消息协议构建模块11,用于获取多个消息的消息结构设计文档,并对多个所述消息结构设计文档分别构建对应的消息协议组件;
进一步的,所述消息协议构建模块11包括:
协议分析单元,用于分析出各个所述消息结构设计文档中的消息基本信息以及消息元素信息;
协议构建单元,用于根据所述消息基本信息以及所述消息元素信息构建对应的消息协议组件。
测试环境配置模块12,用于描述消息互操作的测试环境,以生成测试环境配置;
场景构建模块13,用于根据所述测试环境配置、多个所述消息协议组件以及需求文件进行消息建模,生成消息流程处理场景模型;
测试用例生成模块14,用于将所述消息流程处理场景模型上的节点信息通过关键字提取,生成测试用例文件;
消息测试模块15,用于将所述测试用例文件转换成可执行的测试脚本文件,以使用户利用所述测试脚本文件对消息数据进行消息测试,以得到对应的测试结果。
进一步的,所述消息测试模块15包括:
界面构建单元,构建消息仿真界面,并加载所述测试脚本文件以执行消息测试,得到对应的测试数据;
数据处理单元,用于通过所述消息仿真界面对所述测试数据进行数据映射,以使所述测试数据在所述消息仿真界面上可视化展示。
进一步的,所述消息测试模块15还包括:
数据采集单元,用于采集所有的测试数据,并采用统计分析法与路径覆盖分析法对所述测试数据进行分析,得到分析结果;
数据评估单元,用于根据所述分析结果按预设的评估标准评估所述消息测试的完备性,并生成对应的评估报告。
上述各模块、单元被执行时所实现的功能或操作步骤与上述方法实施例大体相同,在此不再赘述。
本发明实施例所提供的分布式仿真测试系统,其实现原理及产生的技术效果和前述方法实施例相同,为简要描述,系统实施例部分未提及之处,可参考前述方法实施例中相应内容。
实施例三
本发明还提出一种计算机设备,请参阅图14,所示为本发明第三实施例中的计算机设备,包括存储器10、处理器20以及存储在所述存储器10上并可在所述处理器20上运行的计算机程序30,所述处理器20执行所述计算机程序30时实现上述的分布式仿真测试方法。
其中,存储器10至少包括一种类型的可读存储介质,所述可读存储介质包括闪存、硬盘、多媒体卡、卡型存储器(例如,SD或DX存储器等)、磁性存储器、磁盘、光盘等。存储器10在一些实施例中可以是计算机设备的内部存储单元,例如该计算机设备的硬盘。存储器10在另一些实施例中也可以是外部存储装置,例如插接式硬盘,智能存储卡(Smart MediaCard, SMC),安全数字(Secure Digital, SD)卡,闪存卡(Flash Card)等。进一步地,存储器10还可以既包括计算机设备的内部存储单元也包括外部存储装置。存储器10不仅可以用于存储安装于计算机设备的应用软件及各类数据,还可以用于暂时地存储已经输出或者将要输出的数据。
其中,处理器20在一些实施例中可以是电子控制单元 (Electronic ControlUnit,简称ECU,又称行车电脑)、中央处理器(Central Processing Unit, CPU)、控制器、微控制器、微处理器或其他数据处理芯片,用于运行存储器10中存储的程序代码或处理数据,例如执行访问限制程序等。
需要指出的是,图14示出的结构并不构成对计算机设备的限定,在其它实施例当中,该计算机设备可以包括比图示更少或者更多的部件,或者组合某些部件,或者不同的部件布置。
本发明实施例还提出一种可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如上述的分布式仿真测试方法。
本领域技术人员可以理解,在流程图中表示或在此以其他方式描述的逻辑和/或步骤,例如,可以被认为是用于实现逻辑功能的可执行指令的定序列表,可以具体实现在任何计算机可读介质中,以供指令执行系统、装置或设备(如基于计算机的系统、包括处理器的系统或其他可以从指令执行系统、装置或设备取指令并执行指令的系统)使用,或结合这些指令执行系统、装置或设备而使用。就本说明书而言,“计算机可读介质”可以是任何可以包含、存储、通信、传播或传输程序以供指令执行系统、装置或设备或结合这些指令执行系统、装置或设备而使用的装置。
计算机可读介质的更具体的示例(非穷尽性列表)包括以下:具有一个或多个布线的电连接部(电子装置),便携式计算机盘盒(磁装置),随机存取存储器(RAM),只读存储器(ROM),可擦除可编辑只读存储器(EPROM或闪速存储器),光纤装置,以及便携式光盘只读存储器(CDROM)。另外,计算机可读介质甚至可以是可在其上打印所述程序的纸或其他合适的介质,因为可以例如通过对纸或其他介质进行光学扫描,接着进行编辑、解译或必要时以其他合适方式进行处理来以电子方式获得所述程序,然后将其存储在计算机存储器中。
应当理解,本发明的各部分可以用硬件、软件、固件或它们的组合来实现。在上述实施方式中,多个步骤或方法可以用存储在存储器中且由合适的指令执行系统执行的软件或固件来实现。例如,如果用硬件来实现,和在另一实施方式中一样,可用本领域公知的下列技术中的任一项或它们的组合来实现:具有用于对数据信号实现逻辑功能的逻辑门电路的离散逻辑电路,具有合适的组合逻辑门电路的专用集成电路,可编程门阵列(PGA),现场可编程门阵列(FPGA)等。
以上所述实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。

Claims (10)

1.一种分布式仿真测试方法,其特征在于,包括:
获取多个消息的消息结构设计文档,并对多个所述消息结构设计文档分别构建对应的消息协议组件;
描述消息互操作的测试环境,以生成测试环境配置;
根据所述测试环境配置、多个所述消息协议组件以及需求文件进行消息建模,生成消息流程处理场景模型;
将所述消息流程处理场景模型中操作节点里包含有前置条件、执行过程、验证结果以及时序关系的节点信息通过关键字提取,生成测试用例文件;将所述测试用例文件转换成可执行的测试脚本文件,以使用户利用所述测试脚本文件对消息数据进行消息测试,以得到对应的测试结果;
其中,所述消息测试采用的分布式架构为松耦合的五个测试节点,分别为协议设计节点、测试场景建模节点、测试用例生成节点、验证评估节点、数据存储节点,不同的测试节点部署在HLA仿真网络上,以进行分布式协同测试。
2.根据权利要求1所述的分布式仿真测试方法,其特征在于,所述对多个所述消息结构设计文档分别构建对应的消息协议组件的步骤包括:
分析出各个所述消息结构设计文档中的消息基本信息以及消息元素信息;
根据所述消息基本信息以及所述消息元素信息构建对应的消息协议组件。
3.根据权利要求1所述的分布式仿真测试方法,其特征在于,所述消息建模分为消息静态建模以及消息动态建模,所述消息静态建模为消息协议本身基本属性建模,所述消息动态建模为所述消息在互操作过程中的动态使用建模。
4.根据权利要求1所述的分布式仿真测试方法,其特征在于,所述用户利用所述测试脚本文件对消息数据进行消息测试,以得到对应的测试结果的步骤包括:
构建消息仿真界面,并加载所述测试脚本文件以执行消息测试,得到对应的测试数据;
通过所述消息仿真界面对所述测试数据进行数据映射,以使所述测试数据在所述消息仿真界面上可视化展示。
5.根据权利要求4所述的分布式仿真测试方法,其特征在于,以使所述测试数据在所述消息仿真界面上可视化展示的步骤之后,所述方法还包括:
采集所有的测试数据,并采用统计分析法与路径覆盖分析法对所述测试数据进行分析,得到分析结果;
根据所述分析结果按预设的评估标准评估所述消息测试的完备性,并生成对应的评估报告。
6.根据权利要求5所述的分布式仿真测试方法,其特征在于,所述评估标准包括测试节点的覆盖标准、测试边的覆盖标准、使用消息的覆盖标准以及使用消息元素的覆盖标准。
7.一种分布式仿真测试系统,其特征在于,包括:
消息协议构建模块,用于获取多个消息的消息结构设计文档,并对多个所述消息结构设计文档分别构建对应的消息协议组件;
测试环境配置模块,用于描述消息互操作的测试环境,以生成测试环境配置;
场景构建模块,用于根据所述测试环境配置、多个所述消息协议组件以及需求文件进行消息建模,生成消息流程处理场景模型;
测试用例生成模块,用于将所述消息流程处理场景模型中操作节点里包含有前置条件、执行过程、验证结果以及时序关系的节点信息通过关键字提取,生成测试用例文件;
消息测试模块,用于将所述测试用例文件转换成可执行的测试脚本文件,以使用户利用所述测试脚本文件对消息数据进行消息测试,以得到对应的测试结果;
其中,所述消息测试采用的分布式架构为松耦合的五个测试节点,分别为协议设计节点、测试场景建模节点、测试用例生成节点、验证评估节点、数据存储节点,不同的测试节点部署在HLA仿真网络上,以进行分布式协同测试。
8.根据权利要求7所述的分布式仿真测试系统,其特征在于,所述消息协议构建模块包括:
协议分析单元,用于分析出各个所述消息结构设计文档中的消息基本信息以及消息元素信息;
协议构建单元,用于根据所述消息基本信息以及所述消息元素信息构建对应的消息协议组件。
9.一种可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如权利要求1至6任一所述的分布式仿真测试方法。
10.一种计算机设备,包括存储器、处理器以及存储在所述存储器上并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1至6任一所述的分布式仿真测试方法。
CN202210244040.5A 2022-03-14 2022-03-14 分布式仿真测试方法、系统、可读存储介质及计算机设备 Active CN114328278B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210244040.5A CN114328278B (zh) 2022-03-14 2022-03-14 分布式仿真测试方法、系统、可读存储介质及计算机设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210244040.5A CN114328278B (zh) 2022-03-14 2022-03-14 分布式仿真测试方法、系统、可读存储介质及计算机设备

Publications (2)

Publication Number Publication Date
CN114328278A CN114328278A (zh) 2022-04-12
CN114328278B true CN114328278B (zh) 2022-06-17

Family

ID=81033378

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210244040.5A Active CN114328278B (zh) 2022-03-14 2022-03-14 分布式仿真测试方法、系统、可读存储介质及计算机设备

Country Status (1)

Country Link
CN (1) CN114328278B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114911715B (zh) * 2022-07-13 2022-11-01 南昌航空大学 一种形式化测试模型建模方法、系统、计算机及存储介质
CN115225552A (zh) * 2022-07-29 2022-10-21 重庆长安汽车股份有限公司 实时发布订阅协议的测试方法、装置、设备及介质

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101968770A (zh) * 2010-11-01 2011-02-09 北京航空航天大学 一种可复用的嵌入式软件测试开发方法和系统
CN103198009A (zh) * 2012-01-04 2013-07-10 中国移动通信集团公司 一种通用测试方法、系统及相应装置
CN105677446A (zh) * 2016-01-28 2016-06-15 中国电子科技集团公司第十研究所 分布式仿真平台的可视化建模方法
WO2016090934A1 (zh) * 2014-12-12 2016-06-16 国家电网公司 一种lte无线通信智能变电站互感器模拟测试装置
CN107579871A (zh) * 2017-07-24 2018-01-12 清华大学 基于模型检测的分布式测试脚本的生成方法与生成系统
CN109634824A (zh) * 2018-12-03 2019-04-16 郑州云海信息技术有限公司 一种广电业务场景下的分布式存储性能测试方法及系统
CN112181846A (zh) * 2020-10-20 2021-01-05 公安部交通管理科学研究所 一种交通信号控制系统消息自动化测试平台及方法

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
NZ525409A (en) * 2003-04-17 2005-04-29 Auckland Uniservices Ltd Software design system and method
CN112765023B (zh) * 2021-01-19 2023-10-03 上海幻电信息科技有限公司 测试用例生成方法、装置

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101968770A (zh) * 2010-11-01 2011-02-09 北京航空航天大学 一种可复用的嵌入式软件测试开发方法和系统
CN103198009A (zh) * 2012-01-04 2013-07-10 中国移动通信集团公司 一种通用测试方法、系统及相应装置
WO2016090934A1 (zh) * 2014-12-12 2016-06-16 国家电网公司 一种lte无线通信智能变电站互感器模拟测试装置
CN105677446A (zh) * 2016-01-28 2016-06-15 中国电子科技集团公司第十研究所 分布式仿真平台的可视化建模方法
CN107579871A (zh) * 2017-07-24 2018-01-12 清华大学 基于模型检测的分布式测试脚本的生成方法与生成系统
CN109634824A (zh) * 2018-12-03 2019-04-16 郑州云海信息技术有限公司 一种广电业务场景下的分布式存储性能测试方法及系统
CN112181846A (zh) * 2020-10-20 2021-01-05 公安部交通管理科学研究所 一种交通信号控制系统消息自动化测试平台及方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
分布式系统测试方法的研究和应用;李艳丽等;《计算机技术与发展》;20110310(第03期);全文 *

Also Published As

Publication number Publication date
CN114328278A (zh) 2022-04-12

Similar Documents

Publication Publication Date Title
US7596546B2 (en) Method and apparatus for organizing, visualizing and using measured or modeled system statistics
CN105701008B (zh) 用于测试用例生成的系统和方法
CN114328278B (zh) 分布式仿真测试方法、系统、可读存储介质及计算机设备
JP6116139B2 (ja) 解析データ用の直感的なコンテクストを作成するためのシステム及び方法
CN108446190B (zh) 接口测试方法及装置
US20080168082A1 (en) Method and apparatus for modelling data exchange in a data flow of an extract, transform, and load (etl) process
CN108763091B (zh) 用于回归测试的方法、装置及系统
CN106446412B (zh) 一种航空电子系统基于模型的测试方法
CN104699613B (zh) 一种航天器测试需求自动生成系统及其方法
US20160357834A1 (en) Coverage data interchange
EP3021266A1 (en) Lean product modeling systems and methods
CN110134596A (zh) 测试文档的生成方法及终端设备
US7275231B2 (en) High level validation of designs and products
CN111158656A (zh) 基于因果树法的测试代码生成方法及装置
CN116680885A (zh) 一种基于SysML和Tango的复杂装置控制软件建模与验证方法
Sandmann et al. Autosar-compliant development workflows: From architecture to implementation-tool interoperability for round-trip engineering and verification and validation
CN116594887A (zh) 一种基于cfd软件的自动化测试方法及系统
Tundis et al. Model‐Based Dependability Analysis of Physical Systems with Modelica
CN114896824B (zh) 联合仿真集成测试验证方法、装置、可读存储介质及设备
JP2009099111A (ja) 規則検査プログラム、規則検査方法および規則検査装置
Yrjönen et al. Extending the NFR Framework with Measurable NonFunctional Requirements.
Talib et al. Scenario-based Black Box Testing in COSMIC-FFP: a case study
Woll et al. Semantic integration of product data models for the verification of product requirements
Bougain et al. Supporting product design decision with a SysML design history Assistant
Matsuura et al. Automatic Verification of Behavior of UML Requirements Specifications using Model Checking.

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant