CN101719096B - 一种提高实时嵌入式系统测试脚本执行速度的方法 - Google Patents

一种提高实时嵌入式系统测试脚本执行速度的方法 Download PDF

Info

Publication number
CN101719096B
CN101719096B CN 200910244349 CN200910244349A CN101719096B CN 101719096 B CN101719096 B CN 101719096B CN 200910244349 CN200910244349 CN 200910244349 CN 200910244349 A CN200910244349 A CN 200910244349A CN 101719096 B CN101719096 B CN 101719096B
Authority
CN
China
Prior art keywords
script
test
task
model
language
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
CN 200910244349
Other languages
English (en)
Other versions
CN101719096A (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.)
Beihang University
Original Assignee
Beihang 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 Beihang University filed Critical Beihang University
Priority to CN 200910244349 priority Critical patent/CN101719096B/zh
Publication of CN101719096A publication Critical patent/CN101719096A/zh
Application granted granted Critical
Publication of CN101719096B publication Critical patent/CN101719096B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Abstract

本发明公开了一种提高实时嵌入式系统测试脚本执行速度的方法,包括以下几个步骤:步骤一、对测试脚本的语言进行分析,得到测试脚本组织结构;步骤二、分析仿真测试平台,得到仿真模型的描述方法和形式;步骤三、制定从测试脚本到行为子模型的转换规则,并编程实现脚本转化器;步骤四、对被测系统进行测试;本发明改变了测试脚本的运行机制,极大的提高了脚本代码的执行速度和效率,提高了仿真测试平台的实时性能,使得其有能力对高实时性嵌入式系统开展仿真测试;测试人员像从前一样查看、存取由脚本自动生成器生成的测试脚本,由于脚本代码到模型语言代码的整个转换过程是透明的。

Description

一种提高实时嵌入式系统测试脚本执行速度的方法
技术领域
本发明涉及一种提高实时嵌入式系统测试脚本执行速度的方法,属于软件自动化测试领域、测试脚本领域。
背景技术
实时嵌入式系统广泛运用于工业控制、航空航天等领域。当前,国内外公认的,行之有效的针对实时嵌入式系统的测试方法是仿真测试。仿真测试平台对被测系统的交联环境进行模拟,仿真模型程序运行在装有硬实时操作系统的实时处理机上,实时处理机通过各种真实的物理总线与被测系统相连接。另一台PC机用于可视化仿真建模,测试脚本开发,测试环境配置,测试数据收集与分析等等,并且和实时机通过以太网联接。仿真测试过程中,仿真模型发送数据作为被测系统的测试输入,同时接收被测系统的输出响应。
基于这种原理建立的仿真测试平台已经有比较广泛的应用,比如Verified Systems公司的RT-Tester,Tech S.A.T公司的ADS2,国内的GESTE。被测系统是具有明确实时性需求的实时系统,其运行的正确性不仅取决于逻辑和运算的结果是否正确,也取决于运算结果能否在规定的时间内输出。因此,仿真测试平台必须自身具有高实时性能,才能正确模拟高实时性的交联系统与被测系统进行交互。而用于驱动仿真模型的测试脚本的运行速度在很大程度上影响着仿真测试平台的实时性。
现有的仿真模型结构如图1所示,实时嵌入式系统仿真模型1包括接口子模型2和内特性子模型3,接口子模型2是实时嵌入式系统与外部环境进行交互的标准工业控制接口或者航电数据接口,比如CAN,MIL-STD-1553B、429、629等。接口子模型2包括驱动程序模块4和调用接口模块5,驱动程序模块4主要用以驱动接口板卡收发数据,调用接口模块5是对驱动程序的封装,对上层应用程序提供函数调用接口。内特性子模型3包括交互数据变量6、系统状态7和数据解算模块8,交互数据变量6被测系统在物理上通过标准数据总线与仿真环境联接起来,在逻辑上通过输入与输出变量与仿真模型1产生联系。因此,交互数据变量6是对仿真模型1与被测系统之间进行交互的各种不同类型数据的数据结构的描述。系统状态7与被测系统交联的系统都是独立的子系统,有多种工作模式和内部状态,因此系统状态7是对被仿系统的所有系统状态的描述。系统根据自身的用途,都有一套特定的方法来解析、计算、处理所收到的数据,数据解算模块8是实现被仿系统的数据解算方法,并提供函数调用接口。
仿真模型1虽然具有数据收发和处理能力,但不知道应该在何时收发哪些变量,也不知道在具体情况下应该调用哪个方法解算数据,因为仿真模型1没有描述被仿系统的行为,所以它还不能像真实系统那样与被测系统开展交互。各种仿真测试平台(GESTE、ADS2、EasyTest等等)均采用测试脚本来控制仿真模型的行为,使得模型和被测系统能够按测试人员设计好的方式进行交互,以此达到控制测试流程的目的。
利用测试脚本控制模型行为的机制有其显著的优越性,它不仅可以降低模型复杂度,简化仿真建模过程,而且灵活易用。因为脚本语言对仿真模型1的行为和控制进行了抽象和封装,所以,使用测试脚本语言编写控制模型行为的脚本代码非常简洁且可读性强。但是,这也在一定程度上牺牲了仿真测试平台的实时性。仿真模型程序是由模型语言(通常是C/C++)编写的编译型程序,它被下载到实时处理机之前会在PC机上经过交叉编译变为可直接执行的二进制机器代码,因此仿真模型1的运行速度非常快,能够完全满足测试平台的实时性要求。然而,测试脚本是直接以字符串的形式下载,测试开始后,由实时处理机上运行的脚本解释程序对脚本逐行解释执行。解释执行的效率和速度远低于机器代码的执行速度,因此从整体上影响了仿真测试平台的实时性。虽然仿真测试平台可以对大多数普通实时嵌入式系统进行测试,但无法应付具有很高实时性要求的系统。例如,飞行控制系统在某些工作状态下需要交联环境在1ms之内作出响应,而测试平台调度脚本解释器解释执行某段脚本来驱动仿真模型接收数据、解算数据、作出响应的全过程时间可能大于1ms,因此无法对其开展仿真测试。
发明内容
本发明的目的是为了解决上述问题,提出一种提高实时嵌入式系统测试脚本执行速度的方法。
一种提高实时嵌入式系统测试脚本执行速度的方法,包括以下几个步骤:
步骤一、对测试脚本的语言进行分析,得到测试脚本组织结构;
现有的各种嵌入式系统仿真测试平台使用不同种类的测试脚本语言,对测试脚本语言进行详细分析,首先弄清楚脚本语言的所有语法结构,然后分析使用该脚本语言编写测试脚本的形式,即脚本的组织结构;
步骤二、分析仿真测试平台,得到仿真模型的描述方法和形式;
仿真模型为模型语言编写的代码,不同的仿真测试平台使用不同的模型语言来描述仿真模型,分析具体仿真测试平台的内部原理和机制,得到仿真模型在具体测试平台上用模型语言所描述的形式和方法;
其特征在于,还包括以下步骤:
步骤三、制定从测试脚本到行为子模型的转换规则,并编程实现脚本转化器;
通过步骤一、步骤二分别得到测试脚本组织结构以及模型语言描述仿真模型的形式和方法,从测试脚本到行为子模型的转换规则为:将测试脚本语言中的每一个变量或者语句转化为一个或者多个仿真模型语言代码中的变量和语句,即得到了与测试脚本语言对应的、等价的行为子模型;所述的行为子模型驱动仿真模型与被测系统之间的数据收发,达到驱动测试的目的;
根据测试脚本到行为子模型的转换规则编程实现脚本转化器,脚本转化器自动将输入的测试脚本代码输出为模型代码来完成从测试脚本到行为子模型的转换;
步骤四、对被测系统进行测试;
测试人员按照现有的测试方法对被测系统执行测试,在测试脚本下载到实时处理机上执行之前,将测试脚本输入给脚本转换器,脚本转换器将测试脚本代码转变输出为模型语言代码,得到行为子模型;行为子模型、内特性子模型和接口子模型共同构成了仿真模型,仿真模型被交叉编译为一个整体的二进制代码,下载到实时处理机上直接运行,进行系统测试。
本发明的优点在于:
1、本发明改变了测试脚本的运行机制,极大的提高了脚本代码的执行速度和效率,提高了仿真测试平台的实时性能,使得其有能力对高实时性嵌入式系统开展仿真测试。
2、本发明原封不动的保持了现有的测试脚本,测试人员仍然可以像从前一样查看、存取由脚本自动生成器生成的测试脚本,由于脚本代码到模型语言代码的整个转换过程是透明的,因此,测试人员不必学习新的知识来进行系统测试。
附图说明
图1是现有技术的仿真模型示意图;
图2是本发明所述方法的流程图;
图3是本发明的仿真结构示意图。
图中:
1仿真模型        2接口子模型    3内特性子模型  4驱动程序模块
5调用接口模块    6交互数据变量  7系统状态      8数据解算模块
9行为子模型      10脚本转化器
具体实施方式
下面将结合附图和实施例对本发明作进一步的详细说明。
本发明是一种提高实时嵌入式系统测试脚本执行速度的方法,具体流程如图2所示,包括以下步骤:
步骤一、对测试脚本的语言进行分析,得到测试脚本组织结构;
由于现有的各种嵌入式系统仿真测试平台使用不同种类的测试脚本语言(比如,ADS2使用的是tcltk脚本,GESTE使用的是ESSTSL专用测试脚本),对测试脚本语言进行详细分析,首先弄清楚该脚本语言的所有语法结构,然后分析使用该脚本语言编写测试脚本的形式,即脚本的组织结构。
步骤二、分析仿真测试平台,得到仿真模型的描述方法和形式。
仿真模型1的表现形式为模型语言编写的代码,不同的仿真测试平台使用不同的模型语言来描述仿真模型1,现有仿真测试平台大部分使用C/C++语言来描述。仿真模型1的构造型式是与具体仿真测试平台的运行机制、模型调度机制、模块与模块之间的接口紧密相关,分析具体仿真测试平台的内部原理和机制,清楚仿真模型1在具体测试平台上模型语言描述的形式和方法。
步骤三、制定从测试脚本到行为子模型的转换规则,并编程实现脚本转化器。
通过步骤一、步骤二分别得到测试脚本组织结构和仿真模型1的模型语言描述型式和方法,从测试脚本到行为子模型9的转换规则为:将测试脚本语言中的每一个变量或者语句转化为一个或者多个模型语言代码中的变量和语句,即得到了与测试脚本语言对应的、等价的行为子模型9。所述的行为子模型9驱动仿真模型1与被测系统之间的数据收发,达到驱动测试的目的;
根据测试脚本到行为子模型9的转换规则编程实现脚本转化器10,脚本转化器10自动将输入的测试脚本代码输出为模型代码来完成测试脚本到行为子模型9的转换。不同仿真测试平台上使用的测试脚本语言不同,而且仿真模型1的模型语言描述型式和方法也不一样,因此对于不同的测试平台需要制定各自不同的映射方法,得到不同的脚本转化器10。
步骤四、对被测系统进行测试。
测试人员按照现有的测试方法对被测系统执行测试,在测试脚本下载到实时处理机上执行之前,将测试脚本输入给脚本转换器10,如图3所示,脚本转换器10将测试脚本代码转变输出为模型语言代码,得到行为子模型9。行为子模型9、内特性子模型3和接口子模型2共同构成了新的一个仿真模型1,仿真模型1被交叉编译为一个整体的二进制代码,下载到实时处理机上直接运行,进行系统测试。
实施例:
仿真平台为:GESTE仿真测试平台,脚本语言为:ESSTSL语言,仿真模型的模型语言为:C语言。
步骤1、对测试脚本的语言进行分析,得到测试脚本组织结构;
GESTE仿真测试平台上使用的测试脚本语言为ESSTSL语言,一个测试脚本可以由一个任务(Task)组成也可以由多个任务组成,每一个Task可以分为Task头部和Task正文两个部分。Task头部是关于该task的一些基本信息,它们是:task名称(TaskID);task优先级(Priority);task周期数(Period,若该值为-1表示定时任务,否则为周期任务);task开始时间(StartTime);任务结束时间(EndTime)。Task正文是该任务将要执行的具体操作,即,数据收/发、逻辑判断。
一个具体的Task的型式如下:
Task{  TaskID=task_1;/*便于用户记忆,便于数据库检索和存取*/
       Priority=Normal;/*优先级*/
       Period=50;/*周期*/
       Starttime=1;/*开始时间*/
       Endtime=-1;/*结束时间*/
       {
       /*脚本正文部分,包含条件判断、对模型变量的读写操作、对系统时钟的判断*/
            model4.bv.v2=3;
            setBlockData(model4.bv);
       }
  };
步骤2、分析仿真测试平台,得到仿真模型的描述方法和形式。
测试平台为GESTE仿真测试平台,它使用C语言作为模型语言来描述仿真模型。
步骤3、制定从测试脚本到行为子模型的转换规则,并编程实现脚本转化器。
根据对GESTE仿真测试平台中仿真模型的构造原理和调度方式的分析,制定从测试脚本到行为子模型的转换规则:
(1)每一个脚本任务(Task),需要转换成一个c语言函数(该函数的函数体对应task的正文部分),并且调用RTPP_TaskRegister在VXworks系统中对该函数进行注册。RTPP_TaskRegister是任务注册函数,它负责把转换得到的这个C语言函数注册为vxworks系统中的一个任务,这个任务就是行为子模型,在测试过程中,vxworks将会以脚本任务Task设定的开始时间、优先级来调度。
①周期型任务(任务名为task1)被转换为c语言函数时,函数名为任务名之前加上“model_script_Period_”前缀:voidmodel_script_Period_task1(model_script*pMd1){………}
②定时型任务(任务名为task2)被转换为c语言函数时,函数名为任务名之前加上“model_script_Upe_”前缀:void model_script_Upe_task2(model_script*pMdl){………}
(2)将测试脚本中模型名和模型变量名,转换模型语言中另一个相应的名字。测试脚本中的模型名转换为C函数时要加上一个前缀“g_p”,测试脚本中的模型中含有的变量名被转换时,则要加上前缀“m_”和“m_p”变为:例如:模型model_1含有变量v1,v2,v3,转换后得到:g_pmodel_1,m_v1,m_v2,m_v3和m_pv1,m_pv2,m_pv3;因为这与GESTE平台上仿真模型的构成方式有关。
(3)对于将要进行读操作(数据接收)的模型变量,在读取操作语句之前插入一条RTPP_GetVarValue函数调用语句。RTPP_GetVarValue函数负责把接收缓冲区中的该变量拷贝到本地变量,以供进行运算操作。
例如:int n=model_1.v1;要转换为:RTPP_GetVarValue(g_pmodel_1->m_pv1,(char*)&g_pmodel_1->m_v1);int n=g_pmodel_1->m_v1;这两条语句再例如:if(model_1.v1>=3){…..}
要转换为:RTPP_GetVarValue(g_pmodel_1->m_pv1,(char*)&g_pmodel_1->m_v1);
If(g_pmodel_1->m_v1>=3){…..}
又如:int n=model_1.v2.b1;要转换为:RTPP_GetVarValue(g_pmodel_1->m_pv2,(char*)&g_pmodel_1->m_v2);intn=g_pmodel_1->m_v2.b1;(块变量v2的分量b1没有被划分为位段)
再如:int n=model_1.v2.b2;要转换为:RTPP_GetVarValue(g_pmodel_1->m_pv2,(char*)&g_pmodel_1->m_v2);int n=g_pmodel_1->m_v2.b2.Value;(块变量v2的分量b2被划分为了位段)
再如:int n=model_1.v2.b3.s1;要转换为:RTPP_GetVarValue(g_pmodel_1->m_pv2,(char*)&g_pmodel_1->m_v2);intn=g_pmodeL_1->m_v2.b3.bValue.s1;(直接对位段进行读操作)
(4)对于将要进行写操作(数据发送)的普通模型变量,在赋值语句之后立即插入一条RTPP_SetVarValue函数调用语句。RTPP_SetVarValue函数负责把本地变量拷贝到发送缓冲区,以便发送给其它模型。
例如:model_1.v1=6;要转换为:g_pmodel_1->m-v1=6;
RTPP_SetVarValue(g_pmodel_1->m_pv1,(char*)&g_pmodel_1->m_v1);
(5)对于将要进行写操作(赋值)的块模型变量,在对该块的各个分量赋值语句完成之后统一插入一条RTPP_SetVarValue函数调用语句。
例如:model_1.v2.b1=3;model_1.v2.b3=5;setBlockData(model_1.v2);要转换为:
g_pmodel_1->m_v2.b1=3;g_pmodel_1->m_v2.b3=5;RTPP_SetVarValue(g_pmodel_1->m_pv2,(char*)&g_pmodel_1->m_v2);(块变量v2的分量b1和b3都没有被划分为位段)
又如:model_1.v2.b2=8;setBlockData(model_1.v2);要转换为:g_pmodel_1->m_v2.b2.Value=8;RTPP_SetVarValue(g_pmodel_1->m_pv2,(char*)&g_pmodel_1->m_v2);(块变量v2的分量b2被划分为了位段)
再如:model_1.v2.b2.s1=33;model_1.v2.b2.s2=70;setBlockData(model_1.v2);要转换为:g_pmodel_1->m_v2.b2.bValue.s1=33;g_pmodel_1->m_v2.b2.bValue.s2=70;RTPP_SetVarValue(g_pmodel_1->m_pv2,(char*)&g_pmodel_1->m_v2);(直接对位段进行赋值操作)
(6)时间变量t,要转换为:pMdl->timercounter。pMdl->timercounter是GESTE平台上表示内部时钟的变量。
(7)脚本正文的其他语句以及非模型变量由于和c语言完全一样,不需要任何转换,直接输出即可。
依据测试脚本到行为子模型的转换规则,编程实现脚本转化器,对输入的测试脚本进行自动转换并输出为行为子模型为如下型式:
RTPP_TaskRegister(″ScriptModel_Period_Task1″,TASK_TYPE_PERD,NORMAL,50,1,-1,NULL,(FUNCPTR)ScriptModel_Period_Task1,(int)pMd1,0,0,0,0,0,0,0,0,0);void ScriptModel_Period_Task1(){
g_pmodel4->m_bv.v2=3;
RTPP_SetVarValue(g_pmodel4->m_pbv,(char*)&g_pmodel4->m_bv);
}
脚本转换器的工作流程如图4所示,具体为:
脚本转换器接收测试脚本文件作为输入,接着,转换器进行自身的初始化工作,包括初始化缓冲区,初始化全局变量。由于ESSTSL测试脚本文件由一个或多个任务(Task)组成,所以,脚本转换器对脚本进行模型化的过程循环的方式对每一个Task进行。即,脚本转换器依次对每个Task进行模型化,具体为:
每一个Task的模型化为:
1)处理Task头部;
脚本转换器扫描Task头部一次,将task头部的5个任务描述信息TaskID、priority、period、starttime、endtime提取出来,并存入内存缓冲区。
2)处理Task正文,流程如图5所示;
处理Task正文为进行Task正文两次扫描;首先记录当前Task的正文的起始位置,即当前输入文件的文件指针的位置,然后开始逐一读取字符流,进行脚本正文的第一次扫描,在第一次扫描的过程中进行词法分析、识别单词符号并确定将要进行读取操作的模型变量,并将这些模型变量的名字存入内存缓冲区,当扫描完该Task正文的末尾,第一次扫描结束,根据这些模型变量的名字构建出所有的RTPP_GetVarValue函数调用语句,并把这些语句也存入内存缓冲区,便于以后一并输出;紧接着,回到该Task正文部分的起始位置,即恢复到之前保存下来的文件指针的位置,开始逐一读取字符流,对脚本正文进行第二次扫描,在第二次扫描过程中对Task正文部分中所有的词法、语法成分进行识别,包括判别单词是否为模型变量、系统时钟变量或者其它,并匹配相应的转换规则输出转换后的代码到缓冲区,判别脚本语句是否为控制仿真模型发送数据的行为(赋值操作),匹配转换规则,构造RTPP_SetVarValue函数调用语句并输出到缓冲区。当扫描完该Task正文的末尾,第二次扫描停止,此时,就完成对一个Task的模型化工作,转换后得到的模型代码都存放在缓冲区中。
接下来,脚本转换器判断是否还有Task等待转换,如果有,则返回1),对下一个Task进行同样的处理,如果为否,则完成对整个测试脚本文件的模型化工作,并将所有保存在缓冲区中的模型C代码输出为一个.h和一个.c文件,即行为子模型代码,脚本转换结束。
步骤4、对被测系统进行测试。
测试人员按照现有的测试方法对被测系统执行测试,在测试脚本下载到实时处理机上执行之前,将测试脚本输入给脚本转换器,脚本转换器将测试脚本代码转变输出为.H和.C文件,转换得到的.H和.C文件是测试脚本模型化的结果,它可以和整个仿真模型代码一块编译,也可以单独编译,这样的好处是当测试人员编写新的测试脚本时,转换得到的行为子模型可以被重新编译、下载,然后与实时处理机上原有的接口子模型模块和内特性子模型模块组成一个新的仿真模型。

Claims (2)

1.一种提高实时嵌入式系统测试脚本执行速度的方法,包括以下几个步骤:
步骤一、对测试脚本的语言进行分析,得到测试脚本组织结构;
现有的各种嵌入式系统仿真测试平台使用不同种类的测试脚本语言,对测试脚本语言进行详细分析,首先弄清楚脚本语言的所有语法结构,然后分析使用该脚本语言编写测试脚本的形式,即脚本的组织结构;
步骤二、分析仿真测试平台,得到仿真模型的描述方法和形式;
仿真模型为模型语言编写的代码,不同的仿真测试平台使用不同的模型语言来描述仿真模型,分析具体仿真测试平台的内部原理和机制,得到仿真模型在具体测试平台上用模型语言所描述的形式和方法;
其特征在于,还包括以下步骤:
步骤三、制定从测试脚本到行为子模型的转换规则,并编程实现脚本转化器;
通过步骤一、步骤二分别得到测试脚本组织结构以及模型语言描述仿真模型的形式和方法,从测试脚本到行为子模型的转换规则为:将测试脚本语言中的每一个变量或者语句转化为一个或者多个仿真模型语言代码中的变量和语句,即得到了与测试脚本语言对应的、等价的行为子模型;所述的行为子模型驱动仿真模型与被测系统之间的数据收发,达到驱动测试的目的;
根据测试脚本到行为子模型的转换规则编程实现脚本转化器,脚本转化器自动将输入的测试脚本代码输出为模型代码来完成从测试脚本到行为子模型的转换;
步骤四、对被测系统进行测试;
测试人员按照现有的测试方法对被测系统执行测试,在测试脚本下载到实时处理机上执行之前,将测试脚本输入给脚本转化器,脚本转化器将测试脚本代码转变输出为模型语言代码,得到行为子模型;仿真模型被交叉编译为一个整体的二进制代码,下载到实时处理机上直接运行,进行系统测试。
2.根据权利要求1所述的一种提高实时嵌入式系统测试脚本执行速度的方法,其特征在于,所述步骤三中脚本转化器在仿真平台为:GESTE仿真测试平台,脚本语言为:ESSTSL语言,仿真模型的模型语言为:C语言情况下,具体为:
将脚本测试文件输入到脚本转化器,脚本转化器依次对每个Task进行模型化,具体为:
1)处理Task头部;
脚本转化器扫描Task头部一次,将Task头部的5个任务描述信息TaskID、priority、period、starttime、endtime提取出来,并存入内存缓冲区,TaskID表示task名称,Priority表示task优先级,Period表示task周期数,若该值为-1表示定时任务,否则为周期任务,StartTime表示task开始时间,EndTime表示任务结束时间;
2)处理Task正文;
处理Task正文为进行Task正文两次扫描;首先记录当前Task的正文的起始位置,即当前输入文件的文件指针的位置,然后开始逐一读取字符流,进行脚本正文的第一次扫描,在第一次扫描的过程中进行词法分析、识别单词符号并确定将要进行读取操作的模型变量,并将这些模型变量的名字存入内存缓冲区,当扫描完该Task正文的末尾,第一次扫描结束,根据这些模型变量的名字构建出所有的RTPP_GetVarValue函数调用语句,并把这些语句也存入内存缓冲区;紧接着,回到该Task正文部分的起始位置,即恢复到之前保存下来的文件指针的位置,开始逐一读取字符流,对脚本正文进行第二次扫描,在第二次扫描过程中对Task正文部分中所有的词法、语法成分进行识别,包括判别单词是否为模型变量、系统时钟变量,并匹配相应的转换规则输出转换后的代码到缓冲区,判别脚本语句是否为控制仿真模型发送数据的行为,即赋值操作,然后匹配转换规则,构造RTPP_SetVarValue函数调用语句并输出到缓冲区;当扫描完该Task正文的末尾,第二次扫描停止,转换后得到的模型代码存放在缓冲区中;
完成了一个Task的模型化,然后判断是否还有Task等待转换,如果有,则返回1),对下一个Task进行同样的处理,如果为否,则完成对整个测试脚本文件的模型化工作,并将所有保存在缓冲区中的模型C代码输出为一个.h和一个.c文件,即行为子模型代码,脚本转换结束。
CN 200910244349 2009-12-29 2009-12-29 一种提高实时嵌入式系统测试脚本执行速度的方法 Active CN101719096B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN 200910244349 CN101719096B (zh) 2009-12-29 2009-12-29 一种提高实时嵌入式系统测试脚本执行速度的方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN 200910244349 CN101719096B (zh) 2009-12-29 2009-12-29 一种提高实时嵌入式系统测试脚本执行速度的方法

Publications (2)

Publication Number Publication Date
CN101719096A CN101719096A (zh) 2010-06-02
CN101719096B true CN101719096B (zh) 2012-12-19

Family

ID=42433672

Family Applications (1)

Application Number Title Priority Date Filing Date
CN 200910244349 Active CN101719096B (zh) 2009-12-29 2009-12-29 一种提高实时嵌入式系统测试脚本执行速度的方法

Country Status (1)

Country Link
CN (1) CN101719096B (zh)

Families Citing this family (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102073585B (zh) * 2010-11-25 2013-08-14 西北工业大学 一种基于模型的嵌入式系统流延时属性测试方法
CN102708041A (zh) * 2011-07-12 2012-10-03 安徽中医学院 一种软件可信性质最小测试用例数的计算方法
CN102314386B (zh) * 2011-09-05 2016-06-29 百度在线网络技术(北京)有限公司 一种测试移动终端的方法与设备
CN103092747B (zh) * 2011-10-27 2016-06-22 西门子公司 一种控制程序的验证和测试方法及系统
CN103218287B (zh) * 2012-01-20 2016-03-16 百度在线网络技术(北京)有限公司 用于对hadoop streaming脚本进行测试的方法及装置
CN104932870B (zh) * 2014-03-18 2019-05-24 腾讯科技(深圳)有限公司 一种对虚幻脚本的数据处理方法,及装置
CN105426303B (zh) * 2015-10-31 2018-10-16 南京南瑞继保电气有限公司 基于多现场的免维护的电网ems系统仿真测试方法
CN105528290B (zh) * 2015-12-04 2020-09-22 中国航空综合技术研究所 基于脚本的嵌入式软件仿真及测试一体化平台的构建方法
CN106126411B (zh) * 2016-06-13 2019-01-01 广州酷狗计算机科技有限公司 一种对被测程序代码进行测试的方法和装置
CN106294131A (zh) * 2016-07-26 2017-01-04 南京航空航天大学 一种蕴含相关性特征面向系统测试用的仿真流式大数据生成方法
CN108073516A (zh) * 2017-12-18 2018-05-25 中国航空工业集团公司洛阳电光设备研究所 一种面向机载嵌入式软件数据驱动测试引擎设计方法
CN108415826B (zh) * 2018-01-12 2021-10-29 深圳壹账通智能科技有限公司 应用的测试方法、终端设备及计算机可读存储介质
CN109711036B (zh) * 2018-12-24 2023-05-23 中国航空工业集团公司西安飞机设计研究所 飞行控制系统试验结果的评估方法
CN110516280B (zh) * 2019-06-20 2023-01-10 北京灵思创奇科技有限公司 一种matlab的实时仿真方法
CN110990293B (zh) * 2019-12-17 2023-08-11 北京同有飞骥科技股份有限公司 自动校验测试方法及系统
CN111367511B (zh) * 2020-03-02 2023-05-23 北京中科宇航技术有限公司 一种仿真模型接口适配开发系统及其工作方法
CN113158430B (zh) * 2021-03-25 2022-08-02 中国电子科技集团公司第二十九研究所 一种高效的在线行为建模作战仿真方法

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1667587A (zh) * 2005-04-11 2005-09-14 北京航空航天大学 基于扩展的马尔克夫贝叶斯网的软件可靠性评估方法
CN101571802A (zh) * 2009-06-19 2009-11-04 北京航空航天大学 一种嵌入式软件测试数据可视化自动生成方法及系统

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1667587A (zh) * 2005-04-11 2005-09-14 北京航空航天大学 基于扩展的马尔克夫贝叶斯网的软件可靠性评估方法
CN101571802A (zh) * 2009-06-19 2009-11-04 北京航空航天大学 一种嵌入式软件测试数据可视化自动生成方法及系统

Also Published As

Publication number Publication date
CN101719096A (zh) 2010-06-02

Similar Documents

Publication Publication Date Title
CN101719096B (zh) 一种提高实时嵌入式系统测试脚本执行速度的方法
CN101694643B (zh) 使用一个或多个自动机的系统验证
Schütz The testability of distributed real-time systems
Pohlmann et al. Generating functional mockup units from software specifications
CN103927219A (zh) 可重构专用处理器核的周期精确的仿真模型及其硬件架构
CN109937418A (zh) 用于仿真的基于波形的重构
CN107797463A (zh) 一种多轴电力推进半实物模拟试验平台的仿真方法
Pêcheux et al. SystemC AMS based frameworks for virtual prototyping of heterogeneous systems
Dobis et al. Chiselverify: An open-source hardware verification library for chisel and scala
CN109891395B (zh) 调试系统和方法
Seidner et al. Formal methods for systems engineering behavior models
Bunker et al. Formal hardware specification languages for protocol compliance verification
Endecott et al. Modelling and Simulation of Asynchronous Systems Using the LARD Hardware Description Language.
CN110442338B (zh) 一种结构分析与设计语言aadl模型的仿真方法
Lauber Forecasting real-time behavior during software design using a CASE environment
Ulrich et al. Speed and accuracy in digital network simulation based on structural modeling
Abdulhameed et al. An approach combining simulation and verification for SysML using SystemC and Uppaal
Schmid et al. A survey of simulation tools for requirements engineering
Hsiung Timing coverification of concurrent embedded real-time systems
Morelli et al. A system-level framework for the evaluation of the performance cost of scheduling and communication delays in control systems
Birsan et al. Embedded systems platform-based design from teaching to industry or vice-versa
CN104063266B (zh) 一种通过pc模拟继电保护装置多cpu同步运行的方法
Pinkevich et al. How to Improve IT Specialists Training for Designing Cyber-Physical Systems
Gangoiti et al. Using cyclic executives for achieving closed loop co-simulation
Estivill-Castro et al. Module interactions for model-driven engineering of complex behavior of autonomous robots

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant