CN112799968B - 一种基于脚本的测试驱动建模系统及方法 - Google Patents

一种基于脚本的测试驱动建模系统及方法 Download PDF

Info

Publication number
CN112799968B
CN112799968B CN202110375597.8A CN202110375597A CN112799968B CN 112799968 B CN112799968 B CN 112799968B CN 202110375597 A CN202110375597 A CN 202110375597A CN 112799968 B CN112799968 B CN 112799968B
Authority
CN
China
Prior art keywords
model
service module
simulation
script
test
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
CN202110375597.8A
Other languages
English (en)
Other versions
CN112799968A (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.)
Hunan Gaozhi Technology Co ltd
Original Assignee
Hunan Gaozhi Technology Co ltd
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 Hunan Gaozhi Technology Co ltd filed Critical Hunan Gaozhi Technology Co ltd
Priority to CN202110375597.8A priority Critical patent/CN112799968B/zh
Publication of CN112799968A publication Critical patent/CN112799968A/zh
Application granted granted Critical
Publication of CN112799968B publication Critical patent/CN112799968B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3672Test management
    • G06F11/3684Test management for test design, e.g. generating new test cases
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3672Test management
    • G06F11/3688Test management for test execution, e.g. scheduling of test suites

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Debugging And Monitoring (AREA)

Abstract

本发明公开了一种基于脚本的测试驱动建模系统及方法,采取BS架构,包括依次连接的在线脚本建模服务模块、测试用例构建服务模块、模型驱动服务模块和数据展示服务模块,数据展示服务模块还与在线脚本建模服务模块连接,在线脚本建模服务模块、测试用例构建服务模块、模型驱动服务模块和数据展示服务模块构成数据传输的闭环结构。本发明采用脚本化测试进行驱动建模,利用脚本的“所改即所得”特点,提升了迭代速度,减轻了编码到运行的复杂度和时间周期;且利用测试驱动建模,采取可视化展示手段,全程无缝衔接,提升了模型升级迭代效率和模型资源开发质量。

Description

一种基于脚本的测试驱动建模系统及方法
技术领域
本发明属于系统建模技术领域,具体涉及一种基于脚本的测试驱动建模系统及方法。
背景技术
系统仿真是研究客观世界的一种手段,它将客观实体进行抽象建模,通过研究实体组成、行为逻辑、流程、规则、交互关系等内容,从而形成一整套仿真系统。目前,关于系统仿真中的建模方法,主要有文本建模语言(如Word、Visio等)、图形化建模语言(如UML、SYSML等)和程序建模语言(如C++、java等)组成。其中,若要求所建立的模型需要具备可执行能力,则目前只有程序建模语言能够满足,实现仿真模型应对外部输入的动态表现。
测试驱动建模的基本思想是来自测试驱动开发。测试驱动开发就是在开发功能代码之前,先编写测试代码。也就是说在明确要开发某个功能后,首先思考如何对这个功能进行测试,并完成测试代码的编写,然后编写相关的代码满足这些测试用例。然后循环进行添加其他功能,直到完全部功能的开发。
脚本语言又被称为扩建的语言,或者动态语言,是一种编程语言,用来控制软件应用程序,脚本通常以文本(如ASCII)保存,只在被调用时进行解释或编译。脚本语言具有良好的可读性、所改即所得性等特性,适用于快速开发仿真模型或满足模型不断升级的需求。
仿真模型本质上是一种领域相关软件,在开发的各个阶段,包括需求分析、概要设计、详细设计、编码过程中都应该考虑相对应的测试工作,完成相关的测试用例的设计、测试方案、测试计划的编写。传统的仿真建模方法多数为从零开始写代码实现,或基于模型开发框架进行填空,大多数分为需求分析、模块开发、单元测试、集成调试等过程,而传统的瀑布模型并不能很好的实现敏捷、快速的迭代开发,导致了开发周期过长,开发难度较大,并且形成的仿真系统可扩展性不强。一个大中型的仿真系统,由多种多个领域的模型组成。这些模型往往由多个领域建模人员开发,在传统的建模方式下,由于模型单元测试输入条件不足导致的测试不充分,在集成联调阶段如果发现模型bug,则需要协调多家开发人员进行集中联调,组织难度大和周期长,无法满足仿真系统稳定性和不断升级的需求。
发明内容
本发明的目的在于避免现有技术中的不足而提供一种基于脚本的测试驱动建模系统及方法,能够针对系统仿真中的仿真模型进行“所改即所见,所见即所得”的自动化、可视化、脚本化开发。
本发明的目的之一通过以下技术方案实现:提供一种基于脚本的测试驱动建模系统,采取BS架构,包括依次连接的在线脚本建模服务模块、测试用例构建服务模块、模型驱动服务模块和数据展示服务模块,所述数据展示服务模块还与在线脚本建模服务模块连接,所述在线脚本建模服务模块、测试用例构建服务模块、模型驱动服务模块和数据展示服务模块构成数据传输的闭环结构,其中,所述在线脚本建模服务模块用于建立包括仿真模型的脚本化模型库,所述测试用例构建服务模块用于根据脚本化模型库建立测试用例,所述模型驱动服务模块用于根据测试用例驱动仿真模型顺利运行,所述数据展示服务模块用于展示模型驱动服务模块的运行过程和结果,并提供用户可视化分析。
作为进一步的改进,所述测试用例构建服务模块采取输入数据集与仿真工程的方式进行结合建立,所述输入数据集是输入到仿真工程中的数据集合,所述仿真工程是仿真模型实例化后,按照一定规则组合形成的集合。
作为进一步的改进,所述输入数据集由多个数据包组成,每一个数据包均为驱动仿真工程运行的整体,每一个数据包包括每个仿真模型的初始化端口数据、驱动数据、事件数据的集合;所述仿真工程包括脚本化模型库和模型交互描述文件两部分,脚本化模型资源库是通过在线建模建立的脚本模型集合,是仿真工程的核心,模型交互描述文件约束了至少包括仿真模型实例数量、种类、交互关系、运行参数的仿真基本信息。
作为进一步的改进,所述模型交互描述文件由包括基于主题、基于模板和基于脚本的三种方式生成,每种生成方式用于不同的适用场景。
作为进一步的改进,所述在线脚本建模服务模块利用浏览器,构建基于Protobuffer的仿真模型接口协议和仿真模型接口,进而建立包括仿真模型的脚本化模型库,实现仿真模型代码的增加、删除、改写、查找功能。
作为进一步的改进,所述仿真模型的演变过程为参数化、组件化与实例化的过程,最终从一个Dll/Exe模型组件构建成为能够支撑一定应用场景下的仿真想定,其中,参数化表现为通过对Dll/Exe模型组件配置不同属性的模型技术参数形成原子模型,组件化表现为基于原子模型结合其他模型组装出同一种类不同型号的组合模型,实例化表现为通过对组合模型配置模型部署参数形成实体仿真模型。
作为进一步的改进,所述模型驱动服务模块通过后台仿真引擎,利用连续/离散仿真机制,以测试用例数据驱动仿真模型运行,并实现过程数据和结果数据生成及采集回收。
作为进一步的改进,所述数据展示服务模块具备页面灵活构建功能,支持通过拖拽控件的方式构建前端页面,并在仿真模型中运行。
本发明的目的之二通过以下技术方案实现:提供一种基于脚本的测试驱动
建模方法,通过其上任一项所述的基于脚本的测试驱动建模系统进行建模,包括如下步骤:
S100、通过用户登陆系统,在在线脚本建模服务模块中生成仿真模型,建立需要测试的脚本化模型库,并将仿真模型存入脚本化模型库;
S200、根据脚本化模型库,在测试用例构建服务模块中建立测试用例,获取仿真模型信息,并生成测试用例包输入到模型驱动服务模块中;
S300、启动测试,驱动模型驱动服务模块运行;
S400、利用数据展示服务模块查看运行结果,提供用户可视化分析。
作为进一步的改进,所述步骤S200中建立测试用例的具体步骤为:
S201、建立仿真工程;
S202、建立输入数据集;
S203、将输入数据集与仿真工程相关联,形成测试用例。
本发明提供的一种基于脚本的测试驱动建模系统及方法,采用脚本化测试进行驱动建模,创新了建模开发模式,在开发便捷程度上,利用脚本的“所改即所得”的特点,提升了迭代的速度,减轻了由编码到运行的中间过程复杂度和时间周期;同时,利用测试驱动建模,以黑箱输入为控制变量,采取了可视化的展示手段,建模-用例-运行-展示一体化无缝衔接,提升了模型资源升级迭代的效率,促进模型资源开发质量提高。该测试驱动建模系统及方法能够在体系仿真、系统仿真等领域得到广泛应用,具有极高的社会和经济价值。
附图说明
利用附图对本发明作进一步说明,但附图中的实施例不构成对本发明的任何限制,对于本领域的普通技术人员,在不付出创造性劳动的前提下,还可以根据以下附图获得其它的附图。
图1是本发明一种基于脚本的测试驱动建模系统的结构示意图。
图2是本发明在线脚本建模服务模块界面图。
图3是本发明仿真模型演变流程图。
图4是本发明参数化设计示意图。
图5是本发明规则建模服务的流程图。
图6是本发明行为树的模型图。
图7是本发明测试用例构建服务模块的结构框图。
图8是本发明广播式模型驱动的流程图。
图9是本发明一种基于脚本的测试驱动建模方法的流程图。
具体实施方式
为了使本领域的技术人员更好地理解本发明的技术方案,下面结合附图和具体实施例对本发明作进一步详细的描述,需要说明的是,在不冲突的情况下,本申请的实施例及实施例中的特征可以相互组合。
如图1所示的基于脚本的测试驱动建模系统,采取BS架构(Browser/ServerArchitecture,浏览器和服务器架构),通过浏览器即可访问全部功能,包括依次连接的在线脚本建模服务模块、测试用例构建服务模块、模型驱动服务模块和数据展示服务模块,数据展示服务模块还与在线脚本建模服务模块连接,在线脚本建模服务模块、测试用例构建服务模块、模型驱动服务模块和数据展示服务模块构成数据传输的闭环结构。
在线脚本建模服务模块,用于建立包括仿真模型的脚本化模型库,具体为:利用浏览器,构建基于Protobuffer(简称PB,是Google的一种独立的数据交换格式)的仿真模型接口协议和模型接口,进而建立包括仿真模型的脚本化模型库,实现仿真模型代码的增加、删除、改写、查找等功能。
测试用例构建服务模块用于根据脚本化模型库建立测试用例,具体为:利用浏览器,针对IOCE仿真模型(IOCE模型是由湖南高至科技制定的模型开发规范,其满足Input/Output/Calculate/Event接口的仿真模型,即模型接口包括输入、输出、计算和事件四种类型,具备定义良好的仿真框架和接口描述)架构和数据结构,进行测试用例生成规则编辑以及测试用例自动生成。
模型驱动服务模块用于根据测试用例驱动仿真模型顺利运行,具体为:通过后台仿真引擎,利用连续/离散仿真机制,以测试用例数据驱动仿真模型运行,并实现过程数据和结果数据生成及采集回收。
数据展示服务模块用于展示模型驱动服务模块的运行过程和结果,并提供用户可视化分析,具体为:将回收的仿真数据进行处理分析,以在线自定义控件的方式,展示数据曲线、图表等数据,为建模人员直观、形象建模提供支撑,同时,根据测试用例判据,展示异常用例输出。
上述基于脚本的测试驱动建模系统,首先由在线脚本建模服务模块生成仿真模型,并保存入脚本化模型库,测试用例构建服务模块获取仿真模型信息,生成测试用例,并输入到模型驱动服务模块中,建模者通过启动模型驱动服务模块,查看驱动数据和判据结果,进行在线脚本修改,通过数据展示服务模块实现所见即所得,直到数据可视化结果和判据结果满足建模者预期。
作为进一步优选的实施方式,为更详细地描述本发明的基于脚本的测试驱动建模系统,以下对线脚本建模服务模块、测试用例构建服务模块、模型驱动服务模块和数据展示服务模块一一进行说明。
1、在线脚本建模服务模块
在线脚本建模服务模块支持组件化模型体系管理,用于生成模型树,即模型种类及模型分类,维护模型端口。图2即为在线脚本建模服务模块的界面图,图中ISIM Cloud(高至科技)默认协议为ProtoBuffer协议。本模块中仿真模型演变过程为参数化、组件化与实例化的过程,最终从一个Dll/Exe模型组件构建成为能够支撑一定应用场景下的仿真想定,其中,参数化表现为通过对Dll/Exe模型组件配置不同属性的模型技术参数形成原子模型,组件化表现为基于原子模型结合其他模型组装出同一种类不同型号的组合模型,实例化表现为通过对组合模型配置模型部署参数形成实体仿真模型,例如,对于DD模型(银行挤兑模型),通过给运动平台和WQ(装备)组件配置不同参数,构建出不同用途和能力的DD模型。仿真模型演变过程的具体流程图参见图3。
在线脚本建模服务模块提供模型体系下统一的协议制定、管理与下载功能,为模型开发提供统一的交互标准。该服务同时支撑各种应用系统进行数据解析,如实验设计、想定等系统。
仿真模型实例为仿真模型的实例化,即特定型号的某个具体实体。将仿真模型实例按照类型进行抽象与区分,将共性部分建为仿真模型,特性部分设为配置参数,通过配置参数与仿真模型的组合,形成不同的实体模型实例,从而实现实体模型重用,主要涉及到仿真体系模型系统的层级、组合关系以及抽象粒度等。
本发明中技术参数配置信息及部署参数配置信息影响仿真模型中实体组件的战术指标、功能特性、部署位置等,是参数化建模的基础。技术参数具体包括物理参数、动态参数、LD(钢筋最小搭接长度)截面参数、热截面参数、视觉截面参数、声截面参数、声学特征参数、HS(Horn–Schunck光流算法)运算参数等。部署参数包括部署位置、部署指向等。除此之外,仿真模型中还包括关系组件,关系组件中维持了仿真模型的关系参数配置信息,影响实体组件的隶属关系、指挥关系等,通过关系配置参数,自动生成各组件数据流。关系配置信息具体包括实体隶属的单元,可安装部署的传感器、可携带(挂载)的装备、电子对抗设备、通信设备的种类、数量等。图4为参数化设计示意,从中可知,技术参数与关系参数信息均来自特性知识库,用户可进行维护与扩展。
本发明中关系组件为仿真模型类型中的规则模型。规则模型为偶发式的行为决策模型,特点是具有一定的稳定性,同时需要灵活扩展与升级。为支撑行为规则的敏捷构建,利用基础模板可建立基于状态机、行为树及决策树的规则模型,通过在仿真中对该模型的扩展、升级,实现规则的敏捷维护。规则建模服务的流程如图5所示。系统内置构建了基础模板库,提供状态机、行为树、决策树的基础框架,基础框架由组合模型与内部python脚本构成。建模者利用图形化编辑界面进行模型类型、数量、关系的编辑,利用脚本化编辑界面进行内部逻辑修改及设置,完成规则模板的实例化。最后将完成后的规则实例保存为组合规则,该规则满足IOCE接口规范,能够在各个组合模型中复用,从而构成系统的规则库。其中:
1)状态机(Finite-state machine, FSM,又称有限状态自动机或有限状态机)
状态机是表示有限个状态以及在这些状态之间的转移和动作等行为的数学模型,是一种用来进行对象行为建模的工具,其作用主要是描述对象在它的生命周期内所经历的状态序列,以及如何响应来自外界的各种事件。在计算机科学中,有限状态机被广泛用于建模应用行为、硬件电路系统设计、软件工程,编译器、网络协议、和计算与语言的研究。
状态机的每一个状态至少需要有下面三个操作:
Startup:当从其他状态进入这个状态时,需要进行的初始化操作;
Update :在这个状态运行时进行的更新操作;
Cleanup:当从这个状态退出时,需要进行的清除操作。
状态需要的变量:
next: 表示这个状态退出后要转到的下一个状态;
persist:在状态间转换时需要传递的数据;
done:表示这个状态是否结束,状态机会根据这个值来决定转换状态。
每个状态模型均由python脚本程序实现,提供基于web界面的编辑器,实现灵活的在线编辑,能够敏捷编辑状态迁移规则。基于状态机基类进行继承,可实现不同状态的类型,加入业务逻辑代码,即可实现基于状态机模板的脚本化编程。
2)行为树
行为树是一个包含逻辑节点和行为节点的树结构,每次需要找出一个行为的时候,会从树的根节点出发,遍历各个节点,找出第一个和当前数据相符合的行为。行为树是由很多类型节点组成的,但是它们都有一些核心的功能,那就是它们都返回三种状态之一,包括Success、Failure、Running。
行为树节点的原型包括:Composite合成节点、Decorator修饰节点、Leaf叶子节点三种类型,具体参见图6,其中:
(1) Composite(合成节点) 合成节点可以有一个或多个子节点。它们处理子节点的顺序可以是从第一个到最后一个,或者某些特定的合成节点的随机顺序,在某一阶段会根据它的子节点的处理结果向它的父节点返回success或者failure,通常这取决于它的子节点的success或者failure。当它在处理子节点时,会向它的父节点持续发送running。 最常用的合成节点是Sequence节点,它按照顺序运行每一个子节点,如果任何一个子节点返回了failure,它返回failure;如果所有子节点返回成功状态,它才返回成功。(2)Decorator(修饰节点) 修饰节点同合成节点相似,可以拥有子节点,与之不同点在于,它有且只有一个子节点。它的功能就是:将子节点的结果传递给父节点,停止子节点;或者重复执行子节点,这取决于具体的修饰节点类型。 一个常用的修饰节点的用法就是Inverter(反相器),它只是把子节点的结果反相。当它的子节点返回了失败,它给它的父节点返回成功,反之亦反。(3) Leaf(叶子节点) 它是最底层的节点类型,不能拥有子节点。但叶子节点是最强大的节点类型,因为它在仿真中被定义和实现,来做具体实体的仿真业务实现,让行为树具有真正的业务逻辑操作。2、测试用例构建服务模块
测试用例构建服务模块采取输入数据集+仿真工程的方式进行结合建立。如图7所示,输入数据集由多种数据包构成,输入数据集是输入到仿真工程中的数据集合,由多个数据包组成,每一个数据包均为驱动仿真工程运行的整体,包括每个模型的初始化端口数据、驱动数据、事件数据的集合。仿真工程是仿真模型实例化后,按照一定规则组合形成的集合,包括脚本化模型库和模型交互描述文件两部分,脚本化模型资源库是通过在线建模建立的脚本模型集合,是仿真工程的核心,模型交互描述文件约束了模型实例数量、种类、交互关系、运行参数等仿真基本信息。
进一步地,模型交互描述文件由三种方式生成,分别为基于主题、基于模板和基于脚本。每种生成方式有不同的适用场景。基于主题:根据仿真模型端口名称进行匹配,当两个仿真模型在同一层级时,如果端口名称相同类型互补,则自动匹配。基于模板:根据类发布订阅关系进行匹配,该类型下的实例均按照此模板中约定的关系进行匹配,类似于全订阅。基于脚本:根据脚本文件中的规则进行匹配,灵活度最高,功能最强大,但需要用户具备一定的编程基础
3、模型驱动服务模块
如前文所述模型驱动服务模块通过后台仿真引擎,利用连续/离散仿真机制,以测试用例数据驱动仿真模型运行,并实现过程数据和结果数据生成及采集回收。这是因为仿真系统是根据仿真时间或仿真事件来推进的,云仿真引擎(后台仿真引擎)支持连续时间与离散事件两类推进模式。仿真中的时序关系多样,仿真模型之间、仿真模型内部组件可能具有不同的仿真周期,表现为仿真模型之间的异步执行,仿真模型对数据的依赖频率不同,对数据的处理周期不同,需要云仿真具备支持仿真模型同步运行及异步运行的能力。参与仿真的模型粒度不同,对仿真步长的需求不同,因此需要支持变步长仿真。为满足以上需求,采取手动调整、模型申请与脚本配置相结合的时间管理方式,采取细粒度模型优先的策略,实现仿真精度与速度的结合,仿真步长最小可支持0.1秒,全流程可变。
仿真时钟按照一定的步长时间单位推进,仿真时钟每推进一步后,就对事件列表进行一次扫描并判断有元事件在该步长内发生,若有事件发生,则将事件移至区间终点处理事件并改变系统相应状态,否则继续推进仿真时钟。在该时钟推进机制下,仿真时钟在每步推进过程中无论是否有事件发生,都必须对事件表进行扫描并进行仿真计算和判断。在该机制中,仿真步长越小仿真效率越低,但是仿真步长变大后,由于每步内所有发生的事件均视为在该步末端时刻发生,使得一些时间间隔较小的事件表现为同步同时发生,导致仿真精度变小,因此针对不同的仿真需求,需要选取合适的仿真步长。
模型步长的确定有三种机制:其一是仿真应用统一下发、模型申请与脚本设置,各有不同的应用场景。其二是仿真应用统一下发适合大多数仿真场景,模型支持一定范围内的步长,在推进时由用户设置一个初始步长,并且在推进中能够根据仿真进程动态调整。其三是模型申请为模型根据自身需要与仿真状态,确定该时刻需要的步长;向云仿真应用发送步长申请事件,接收事件后,按照最小步长推进。如雷达在发现目标与未发现目标时,推进步长是不同的。发现目标后所需要的步长更小。脚本设置为在仿真开始前,按照仿真时间的顺序进行步长脚本编排,适合仿真系统演示汇报的场景。
为提升多粒度模型的仿真效率,在不同推进步长需求的模型推进策略上,由传统的广播驱动式向定点驱动式转变。广播驱动式为全局维护一个最小步长,按照最小步长进行全局驱动,实现模型之间的时间同步,其推进逻辑具体参见图8。
4、数据展示服务模块
该服务模块具备页面灵活构建功能,支持通过拖拽控件的方式构建前端页面,并在仿真模型中运行。在页面原型构造过程中可录入业务模拟数据,实现了由业务需求到功能实现的无缝对接。可视化的功能构造,可自定义调整页面展现样式,动态设置控件属性,提高了构造页面的灵活性,提升了用户的构造体验。构造完成的前端交互模型同样满足IOCE模型标准,可与其他模型自由交互。需要构造及能够调整的内容包括:需要显示的控件类型、数量、布局、样式等,控件与模型端口的匹配关联,控件与模型端口基本数据类型的匹配关联。
通过其上描述可知,数据展示服务模块具备如下特点:
A.在线开发:根据用户需求灵活自定义页面展现布局,实现业务功能界面;
B.拖拽构造:在线可视化拖拽页面元素,动态构造业务功能逻辑,灵活设置元素属性,更好地实现页面逻辑构造;
C.页面模板复用:可视化自定义页面模板,可动态地将页面元素灵活组合为页面模板,在页面构造工程中重复利用,减少页面开发的重复性;
D.一键发布:在页面构造过程中,可随机发布预览构造结果。
另一方面,参见图9,本发明还提供一种基于脚本的测试驱动建模方法,包括如下步骤:
S100、通过用户登陆系统,在在线脚本建模服务模块中生成仿真模型,建立需要测试的脚本化模型库,并将仿真模型存入脚本化模型库;
S200、根据脚本化模型库,在测试用例构建服务模块中建立测试用例,获取仿真模型信息,并生成测试用例包输入到模型驱动服务模块中;优选地,该过程具体表现为:
S201、建立仿真工程;
S202、建立输入数据集;
S203、将输入数据集与仿真工程相关联,形成测试用例。
S300、启动测试,驱动模型驱动服务模块运行;
S400、利用数据展示服务模块查看运行结果,提供用户可视化分析。
综上所述,本发明采用脚本化测试进行驱动建模,创新了建模开发模式,在开发便捷程度上,利用脚本的“所改即所得”的特点,提升了迭代的速度,减轻了由编码到运行的中间过程复杂度和时间周期;同时,利用测试驱动建模,以黑箱输入为控制变量,采取了可视化的展示手段,建模-用例-运行-展示一体化无缝衔接,提升了模型资源升级迭代的效率,促进模型资源开发质量提高。该测试驱动建模系统及方法能够在体系仿真、系统仿真等领域得到广泛应用,具有极高的社会和经济价值。
上面的描述中阐述了很多具体细节以便于充分理解本发明,但是,本发明还可以采用其他不同于在此描述的其他方式来实施,因此,不能理解为对本发明保护范围的限制。
总之,本发明虽然列举了上述优选实施方式,但是应该说明,虽然本领域
的技术人员可以进行各种变化和改型,除非这样的变化和改型偏离了本发明的范围,否则都应该包括在本发明的保护范围内。

Claims (9)

1.一种基于脚本的测试驱动建模系统,其特征在于,采取BS架构,包括依次连接的在线脚本建模服务模块、测试用例构建服务模块、模型驱动服务模块和数据展示服务模块,所述数据展示服务模块还与在线脚本建模服务模块连接,所述在线脚本建模服务模块、测试用例构建服务模块、模型驱动服务模块和数据展示服务模块构成数据传输的闭环结构,其中,所述在线脚本建模服务模块用于建立包括仿真模型的脚本化模型库,具体为:所述在线脚本建模服务模块利用浏览器,构建基于Protobuffer的仿真模型接口协议和仿真模型接口,进而建立包括仿真模型的脚本化模型库,实现仿真模型代码的增加、删除、改写、查找功能;所述测试用例构建服务模块用于根据脚本化模型库建立测试用例,所述模型驱动服务模块用于根据测试用例驱动仿真模型顺利运行,所述数据展示服务模块用于展示模型驱动服务模块的运行过程和结果,并提供用户可视化分析。
2.根据权利要求1所述的基于脚本的测试驱动建模系统,其特征在于,所述测试用例构建服务模块采取输入数据集与仿真工程的方式进行结合建立,所述输入数据集是输入到仿真工程中的数据集合,所述仿真工程是仿真模型实例化后,按照一定规则组合形成的集合。
3.根据权利要求2所述的基于脚本的测试驱动建模系统,其特征在于,所述输入数据集由多个数据包组成,每一个数据包均为驱动仿真工程运行的整体,每一个数据包包括每个仿真模型的初始化端口数据、驱动数据、事件数据的集合;所述仿真工程包括脚本化模型库和模型交互描述文件两部分,脚本化模型资源库是通过在线建模建立的脚本模型集合,是仿真工程的核心,模型交互描述文件约束了至少包括仿真模型实例数量、种类、交互关系、运行参数的仿真基本信息。
4.根据权利要求3所述的基于脚本的测试驱动建模系统,其特征在于,所述模型交互描述文件由包括基于主题、基于模板和基于脚本的三种方式生成,每种生成方式用于不同的适用场景。
5.根据权利要求1所述的基于脚本的测试驱动建模系统,其特征在于,所述仿真模型的演变过程为参数化、组件化与实例化的过程,最终从一个Dll/Exe模型组件构建成为能够支撑一定应用场景下的仿真想定,其中,参数化表现为通过对Dll/Exe模型组件配置不同属性的模型技术参数形成原子模型,组件化表现为基于原子模型结合其他模型组装出同一种类不同型号的组合模型,实例化表现为通过对组合模型配置模型部署参数形成实体仿真模型。
6.根据权利要求1所述的基于脚本的测试驱动建模系统,其特征在于,所述模型驱动服务模块通过后台仿真引擎,利用连续/离散仿真机制,以测试用例数据驱动仿真模型运行,并实现过程数据和结果数据生成及采集回收。
7.根据权利要求1所述的基于脚本的测试驱动建模系统,其特征在于,所述数据展示服务模块具备页面灵活构建功能,支持通过拖拽控件的方式构建前端页面,并在仿真模型中运行。
8.一种基于脚本的测试驱动建模方法,其特征在于,通过权利要求1-7中任一项所述的基于脚本的测试驱动建模系统进行建模,包括如下步骤:
S100、通过用户登陆系统,在在线脚本建模服务模块中生成仿真模型,建立需要测试的脚本化模型库,并将仿真模型存入脚本化模型库;
S200、根据脚本化模型库,在测试用例构建服务模块中建立测试用例,获取仿真模型信息,并生成测试用例包输入到模型驱动服务模块中;
S300、启动测试,驱动模型驱动服务模块运行;
S400、利用数据展示服务模块查看运行结果,提供用户可视化分析。
9.根据权利要求8所述的一种基于脚本的测试驱动建模方法,其特征在于,所述步骤S200中建立测试用例的具体步骤为:
S201、建立仿真工程;
S202、建立输入数据集;
S203、将输入数据集与仿真工程相关联,形成测试用例。
CN202110375597.8A 2021-04-08 2021-04-08 一种基于脚本的测试驱动建模系统及方法 Active CN112799968B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110375597.8A CN112799968B (zh) 2021-04-08 2021-04-08 一种基于脚本的测试驱动建模系统及方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110375597.8A CN112799968B (zh) 2021-04-08 2021-04-08 一种基于脚本的测试驱动建模系统及方法

Publications (2)

Publication Number Publication Date
CN112799968A CN112799968A (zh) 2021-05-14
CN112799968B true CN112799968B (zh) 2021-06-22

Family

ID=75816475

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110375597.8A Active CN112799968B (zh) 2021-04-08 2021-04-08 一种基于脚本的测试驱动建模系统及方法

Country Status (1)

Country Link
CN (1) CN112799968B (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113434924B (zh) * 2021-06-25 2022-04-08 中国舰船研究设计中心 一种基于ipde的大型水面舰船通用信息模型建模方法
CN113568683A (zh) * 2021-08-05 2021-10-29 京东科技控股股份有限公司 资产数据流处理服务组件动态扩展的方法和装置
CN115062550B (zh) * 2022-07-28 2022-11-22 湖南高至科技有限公司 一种基于端口反向生成的组合建模方法
CN117634229B (zh) * 2024-01-26 2024-04-30 成都赢瑞科技有限公司 基于SysML活动图的嵌套逻辑仿真模型及构建方法

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8739131B2 (en) * 2007-05-04 2014-05-27 International Business Machines Corporation Completing functional testing
CN101425012A (zh) * 2008-12-10 2009-05-06 深圳华为通信技术有限公司 基于模型自动化生成用例脚本的方法及装置
CN102375778B (zh) * 2010-08-17 2014-12-31 中兴通讯股份有限公司 实现数字信号处理器自动测试的方法及系统
CN104615541B (zh) * 2015-02-10 2018-01-23 上海创景信息科技有限公司 基于流程图的仿真测试建模系统及方法
CN105528290B (zh) * 2015-12-04 2020-09-22 中国航空综合技术研究所 基于脚本的嵌入式软件仿真及测试一体化平台的构建方法
CN106682298B (zh) * 2016-12-22 2019-12-27 西北工业大学 一种航空液压舵机系统故障仿真模型库的构建方法
CN109684779A (zh) * 2019-02-15 2019-04-26 湖南高至科技有限公司 一种基于视图的仿真模型装配方法
CN110321281A (zh) * 2019-05-24 2019-10-11 中国工程物理研究院计算机应用研究所 基于混合自动化测试框架的Web测试平台及测试方法
CN111813671A (zh) * 2020-07-03 2020-10-23 北京航空航天大学 一种ima软件仿真测试系统
CN112084668B (zh) * 2020-09-14 2023-11-14 北京世冠金洋科技发展有限公司 一种仿真测试方法、装置及电子设备

Also Published As

Publication number Publication date
CN112799968A (zh) 2021-05-14

Similar Documents

Publication Publication Date Title
CN112799968B (zh) 一种基于脚本的测试驱动建模系统及方法
US9442699B2 (en) Model elements in software tools as automatons in a software customization system and method
Kraemer et al. Tool support for the rapid composition, analysis and implementation of reactive services
US8584088B1 (en) Identification of patterns in modeling environments
Cesta et al. The timeline representation framework as a planning and scheduling software development environment
CN110989976A (zh) 基于J2EE的Web应用的组件化开发方法、存储介质和电子设备
JP2011501297A (ja) ソフトウェアファクトリ仕様化及び実行モデル
CN113721901A (zh) 一种低代码的财务数据分析可视化引擎
US20190129724A1 (en) Formalized Execution of Model Integrated Descriptive Architecture Languages
Zeigler et al. Enhancing DoDAF with a DEVS-based system lifecycle development process
Lee Heterogeneous actor modeling
CN113987398A (zh) 一种软件自定义表单内容web开发系统及方法
Romero-Garcés et al. Improving the lifecycle of robotics components using domain-specific languages
Gutiérrez et al. Progress in robocomp
Babu et al. Amadeos framework and supporting tools
Morin et al. Taming heterogeneity and distribution in sCPS
CN114238072A (zh) Hil需求设计方法、装置、计算机设备和存储介质
Kedwan et al. Model-driven software development platforms reviews
CN112418796A (zh) 子流程节点激活方法、装置、电子设备及存储介质
Feuerstack et al. Bridging the gap between model and design of user interfaces
Kuryazov et al. Towards collaborative smart city modeling
Heinrich et al. MDA applied: a task-model driven tool chain for multimodal applications
Norhidayah et al. Development of virtual assembly layout with modeling languages approach and Simulation using Delmia Quest
Feuerstack A Method for the User-centered and Model-based Development of Interactive Applications
CN116542041A (zh) 无代码模拟的业务建模系统、方法、电子设备及存储介质

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