CN101833498B - 一种基于测试脚本技术的嵌入式系统自动化检测系统 - Google Patents
一种基于测试脚本技术的嵌入式系统自动化检测系统 Download PDFInfo
- Publication number
- CN101833498B CN101833498B CN2009101622769A CN200910162276A CN101833498B CN 101833498 B CN101833498 B CN 101833498B CN 2009101622769 A CN2009101622769 A CN 2009101622769A CN 200910162276 A CN200910162276 A CN 200910162276A CN 101833498 B CN101833498 B CN 101833498B
- Authority
- CN
- China
- Prior art keywords
- test
- module
- interface
- script
- data
- 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.)
- Expired - Fee Related
Links
Images
Landscapes
- Debugging And Monitoring (AREA)
Abstract
本发明公开了一种基于测试脚本技术的嵌入式系统自动化检测系统,该系统包含交联环境建模模块、测试面板配置模块、测试脚本解释器、多任务调度模块、接口驱动模块、数据收集模块、测试报告生成模块、测试管理模块,多任务调度模块根据由脚本解释器解释注册的任务,通过交联环境建模模块传递给接口驱动模块,再由接口驱动模块对被测系统施加激励,从而完成测试,其中接口驱动模块给系统提供统一的接口,本发明解决了目前的测试系统存在的通用性差、自动化程度低的缺点,并且具有二次开发的能力。
Description
技术领域
本发明涉及计算机软件技术,特别涉及嵌入式软件的测试,具体涉及一种基于测试脚本技术的嵌入式系统自动化检测系统。
背景技术
嵌入式系统一般质量要求较高,如飞机上的飞行控制系统,若失效将造成非常严重的后果。这样就要求产品在出厂前进行充分的检测与测试;在外场使用时能快速定位产品故障位置。不论是出厂检测还是外场检测,都要求检测设备能最大程度的实现测试的自动化,从而提高测试效率,减轻操作人员的工作量,并保证测试的准确性。
多数检测设备在使用时需要测试人员守候在测试设备前执行各项操作,对于需要出厂的每一样产品都必须重复同样的过程,费时费力且容易出错;有些检测设备虽然实现了一定程度的自动化,然而它们缺乏对检测流程的描述,所有的自动化测试流程都固化在代码中,不能适应测试流程的变化。此外,几乎所有的检测设备都有其专用性,因为产品的接口特性和功能需求不同,这些检测设备只能用来检测特定型号或特定系列的嵌入式产品,不具有二次开发的能力。
发明内容
本发明的目的在于提供一种针对嵌入式系统的通用、全自动、并具有二次开发能力的基于测试脚本技术的嵌入式系统自动化检测系统。
为了实现上述目的本发明采用的技术方案如下:
本发明提出的一种基于测试脚本技术的嵌入式系统自动化检测系统包括以下模块:
交联环境建模模块:提供可视化建模界面供测试者对被测系统(SUT:System Under Test)的交联设备进行建模,模型最终保存为XML文件,供主程序使用;
测试面板配置模块:提供可视化界面,供测试人员使用,进行测试面板的搭建工作;
测试脚本解释器:按照测试语句进行各种函数的调用以及测试数据的实时解析和分发,使测试动作真正被执行;
多任务调度模块:实现仿真模型以及测试脚本的多任务管理;
接口驱动模块:介于多任务调度模块和具体硬件的驱动层之间,为多任务调度模块提供 了统一的接口;
数据收集模块:用于测试数据的收集,存储和管理;
测试报告生成模块:用于将数据收集模块收集的数据生成测试报告;
测试管理模块:负责测试流程的管理、测试过程控制,包括选择测试脚本,测试的启动,暂停,和停止;
参见附图1,通过交联环境建模模块提供的可视化建模界面配置SUT的仿真测试环境,然后将配置好的测试环境存成XML格式文件;通过测试面板配置模块提供的可视化界面选择需要的控件;使用Python语言编写文本格式的测试脚本文件,脚本中描述一个或多个测试用例的操作;测试管理模块接受用户的指令开始自动化测试,通知多任务调度模块测试开始,多任务调度模块调用所述的XML文件中的配置信息动态生成仿真交联设备模型,交联设备模型通过接口驱动模块和SUT相联,然后,多任务调度模块将所述的测试脚本文件提交给测试脚本解释器进行解释执行,测试脚本解释器根据所述的测试脚本中描述的测试任务的属性向多任务调度模块提交任务,多任务调度模块将这些测试任务记录下来,统一调度,多任务调度模块根据其记录的测试任务内容通过交联设备模型、接口驱动模块向SUT施加测试激励,STU将反馈数据通过接口驱动模块传递给数据收集模块存储,测试报告生成模块根据用户指令将数据收集模块收集到的数据生成测试报告。
所述的交联环境建模模块包括:
界面工具包:提供可视化页面,供测试者对SUT的交联设备进行建模;
模型类库:用来存储通过用户界面获得模型的相关信息;
测试者通过所述的界面工具包提供的可视化界面对SUT的交联设备进行配置、建模,然后存储到所述的模型类库,通过所述的模型类库中的存储函数把模型的相关信息存储到XML格式的文件中。
所述的测试面板配置模块提供两类控件:显示类和控制类,设置控制面板时,首先导入交联环境模块配置好的XML格式文件,选择需要的显示控件和控制控件,每个显示控件与一个或多个接口变量绑定起来,每个控制控件同一段测试脚本绑定起来,点击该控制控件将触发测试脚本解释器对该脚本的执行。
所述的接口驱动模块为三层结构:板卡层(Board Level)、IO层(IO Level)和管理层(Management Level)。
所述的板卡层位于驱动部分的最底层,其直接操作硬件驱动程序,完成测试数据的采集和发送;板卡层中定义了多个板卡类和通道类,每个板卡类是一种型号板卡设备的抽象,每 个板卡至少包含一个通道,每个通道和一个变量相互绑定,对于变量的操作可以被视为对一个物理通道的操作;
所述的IO层中定义了多个IO类,IO类是输入输出形式的抽象,每一个IO类对应一种总线接口;在IO类中管理着支持该类型总线的板卡;
最后,所述的管理层整体管理所有输入输出类型,并根据配置,为变量分配IO端口和物理板卡通道;管理层是驱动部分和系统其它模块的接口,系统通过管理层实现对变量的分配、赋值和取值;管理层检查变量的配置信息是否合法;
使用同种总线接口的板卡的信息由板卡层采集后,通过统一的接口——对应该接口的IO类——由IO层读取,最后由管理层上传至系统的其它模块。
所述的数据收集模块使用了SQLite小型数据库用于测试数据的收集,存储和管理,并使用双缓存机制存储数据,在把主缓存中的数据写入数据库时,新收集的数据将被写入辅助缓存中,并添加保护以确保数据缓冲不会发生读写冲突,且数据缓冲和写数据库功能在不同的线程中实现,写入数据库使用了SQLite的事务机制。
所述的测试脚本在开源脚本Python的基础上作了扩展,增加了扩展模块″ts″,在Python词法、语法的基础上加入针对实时嵌入式软件测试特性的描述,包括测试输入、获取测试反馈以及执行时间控制、测试结果判断、测试脚本的复用、测试脚本接口几个方面的实现。
本发明具有下述有益效果:
本发明提供的交联环境建模工具,使得测试人员可对被测系统的交联设备进行建模,生成仿真模型,同时,测试者还可以在平台的基础上对仿真模型进行二次开发,添加模型的动态特性;本发明提供的接口驱动模块支持多数标准工业总线接口,采用开放式的架构,可以较容易的增加新类型接口的驱动,使本系统可以用于测试多种被测设备,通用性强;本系统的测试脚本基于开源脚本语言python扩展而来,功能强大,语法简单,提高了测试的自动化程度。
附图说明
图1为本发明基于测试脚本技术的嵌入式系统自动化检测系统的组成结构;
图2为交联环境建模示意图;
图3为Block类型变量配置界面;
图4为429总线协议配置界面;
图5为422总线协议配置界面;
图6为交联环境的建模过程;
图7为多任务调度模块的结构图;
图8为接口驱动模块的机构图;
图9为通道类的MUL图;
图10为板卡类的MUL图;
图11为IO类的MUL图;
图12为管理类的MUL图;
图13为本发明的数据结构图;
图14为采用本发明对嵌入式系统进行自动化检测的实施过程;
图15为飞行控制系统的交联环境图。
具体实施方式
被测系统的运行需要交联设备的与之配合,本发明通过交联环境建模模块提供的可视化建模界面配置被测系统的仿真测试环境。所述的交联环境建模模块的界面工具包采用MFC的界面工具包提供可视化界面,在可视化界面中可以配置交联环境图,在交联环境图中采用矩形节点表示交联设备,节点间的连线表示设备之间的接口通讯,所述的接口可以是如下总线接口:RS-422,RS-232,AI,AO,DI,DO,ARINC-429,连线上可配置接口变量,配置完接口变量,可以根据用户的需求对变量的属性进行配置。参见附图2,INS表示被测系统SUT,矩形节点DCMP表示SUT的一种交联设备,连线MIL-STD-1553表示交联设备DCMP和被测系统间的接口类型,通过接口配置窗口1为各接口添加接口变量,通过变量配置窗口2可以对变量进行传输类型,周期,变量类型,初始值等属性的配置。变量类型可根据被测系统的接口控制文档进行配置,交联环境建模模块将配置好的测试环境存成XML文件。
所述的变量的传输类型包含周期型和事件型两种,周期型指该变量将按设定的周期进行发送或接收;事件型意味着某个事件将触发该变量的发送或接收(事件指来自测试脚本解释器或其他仿真模型的信号)。
所述的变量类型可以是Block类型(即C语言里的struct),Block类型变量中可配置元素(即struct的成员变量),元素还可再配置位段(支持按位赋值)。把变量的结构配置成BLOCK型,可以对变量进行更细致的配置,参见附图3,BLOCK的概念类似于C语言中的结构体,把一个变量配置成许多个元素,同理,也可以把一个元素配置成许多个位段。
为了保证在每个交联环境图中模型节点和连线不会互相发生冲突,所述的交联环境建模模块为每个模型节点和连接分别绑定一个唯一的UUID,并且记录其在交联环境图中的位置信息。
针对不同种类的数据总线,所述的建模模块提供不同的协议配置选项,满足用户对各总线上的变量的配置需求。参见附图4、附图5,为两个不同数据总线的配置界面。
参见附图6,通过交联环境建模模块为交联环境的建模步骤如下:首先根据SUT的交联设备的实际情况配置模型节点,然后为模型节点添加总线接口并设置接口属性,最后添加并设置接口变量,完成设置并存成XML格式。
本发明的系统使用类工厂模式来对对象进行初始化,在测试初始化的时候通过解析XML文件获得模型变量的相关配置信息,并在内存中重新申请空间以对其进行操作,以此来降低图形建模工具与测试主程序之间的耦合性,提高程序的稳定性。
测试脚本在自动测试设备中起着非常关键的作用,是测试用例自动执行的主要手段,所述的测试脚本以文本形式描述一个或多个测试用例的操作,达到驱动被测软件运行的目的。测试脚本中需要包含的数据和指令有:
控制信息:对被测系统施加的激励;
时间:输入何时进行,以什么样的规律进行;
捕获何种数据:获取被测系统输出;
比较信息:比较什么,和谁比较以及如何比较;
等等。
本发明在开源脚本Python的基础上作了扩展,增加了扩展模块″ts″,在Python词法、语法的基础上加入针对实时嵌入式软件测试特性的描述,包括测试输入、获取测试反馈以及执行时间控制、测试结果判断、测试脚本的复用、测试脚本接口几个方面的实现,脚本函数及功能如表1所示。
表1脚本函数及功能
脚本函数 | 功能 |
messagebox | 用于弹出对话框,以便和用户交互 |
showimage | 用于弹出图片对话框,以便和用户交互 |
exassert | 用于判断一个bool表达式的真假,自动输出跟踪信息 |
ntassert | 用于判断一个bool表达式的真假 |
handle_MB | 用于对对话框返回的字符串进行解析,返回一个double类型的值 |
handle_MBL | 用于对对话框返回的字符串进行解析,返回一个list类型的值 |
gethandle | 用于获取数据结构(变量、元素和位段)的句柄 |
getvalue | 用于对三种数据结构(变量、元素和位段)的取值,并输出跟踪信息 |
ntgetvalue | 用于对三种数据结构(变量、元素和位段)的取值 |
setvalue | 用于对三种数据结构(变量、元素和位段)的赋值,并输出跟踪信息 |
ntsetvalue | 用于对三种数据结构(变量、元素和位段)的赋值 |
assign | 用于对三种数据结构(变量、元素和位段)的赋值,但是只更新仿真 设备的值,并不更新真实设备的值 |
send | 用于更新真实设备的值,通常和assign一同使用 |
register | 用于向调度程序注册测试任务 |
extrace | 用于输出跟踪信息 |
DBwrite | 用于实现数据库写入操作 |
1)测试输入
SUT只与交联设备模型有数据交互,脚本对SUT的测试激励是通过设备模型来施加的。测试脚本在扩展模块″ts″中提供″setvalue″函数来对三种数据结构(变量、元素和位段)进行赋值,并输出跟踪信息,仿真交联设备模型会按照接口协议自动的将数据发给SUT。″setvalue″函数共有两个参数。第一个参数为数据结构名或数据结构句柄,数据结构名是string类型(注:变量格式为“模型名.变量名”,元素格式为“模型名.变量名.元素名”,位段格式为“模型名.变量名.元素名.位段名”),数据结构句柄是int类型。第二个参数为要赋予的值,是double类型。下面用变量举例,用法如下所示:
setvalue(′DCMP.ins_main_mode′,1)#通过设备模型′DCMP响惯导发送数据,设置惯导主模式为1
此脚本通过第一个参数进行查找,发现此变量确实存在,就调用赋值函数接口将此变量的值更新为第二个参数,否则报错,同时终止脚本运行。如果使用数据结构的句柄作为第一个参数则要先使用gethandle来获得数据结构的句柄。gethandle的参数只有一个,即数据结构名。用法如下所示:
handle=gethandle(′DCMP.ins_main_mode′)#获得惯导主模式的句柄
setvalue(handle,1)
句柄实际上就是需要赋值的数据结构的地址,所以通过句柄进行赋值速度较快。
2)获取SUT反馈
脚本获取SUT的反馈数据同样也是通过设备模型完成,模型按照接口协议接收并保存SUT数据。测试脚本提供″getvalue″函数来对三种数据结构(变量、元素和位段)的取值。″getvalue″函数只有一个参数。参数为数据结构名或数据结构句柄,数据结构名是string类型(注:变量格式为“模型名.变量名”,元素格式为“模型名.变量名.元素名”,位段格式为“模型名.变量名.元素名.位段名”),数据结构句柄是int类型。输出为数据结构的值,类型为XML中定义的数据结构的类型。下面用变量举例,用法如下所示:
value=getvalue(′DCMP.ins_main_mode ′)#获得惯导主模式的值
此脚本通过第一个参数进行查找,发现此变量确实存在,就调用取值函数接口获得此变量的值,否则报错,同时终止脚本运行。如果想快速取值,可以使用句柄作为参数。用法如下所示:
value=getvalue(handle)#获得惯导主模式的值
得到变量的值之后,可以将它和预期值进行比较,从而检测被测设备是否正常工作。函数exassert实现对比功能,其参数为实际值与预期值的bool表达式。用法如下所示:
exassert(value==1)#实际值与预期值对比
然后exassert会自动输出正确与否跟踪信息,为用户提供判断依据。
3)测试脚本的复用
本文为″ts″模块增加了″run_script″方法,以实现脚本间的相互调用,提高测试脚本复用度。
import ts #导入测试控制模块
ts.run_script(′scriptl′) #测试脚本′scriptl′被调用
4)执行时间控制
测试任务对时间的控制要求有两种:定时执行和周期执行。定时执行是指测试任务在设定时间到达时执行一次;周期执行指测试任务在设定的开始时间和结束时间内按规定周期重复运行。
测试人员把测试任务写成Python函数,″ts″模块提供″register″函数将测试任务的类型、执 行时间以及周期等信息注册到本发明的测试系统中。测试开始后,测试系统将按照任务的时间特性动的调用测试脚本函数。″register″函数共有四个参数。第一个参数为任务名称,是string类型。第二个参数是任务的开始时间,是int类型。第三个参数是任务的运行时间,是int类型。第四个参数是任务的周期,是int类型。
register(′task′,0,50,60)#将任务向调度程序进行注册
任务实际就是脚本中的函数,这个函数没有参数,register的第一个参数就是这个函数的函数名,register在获得函数名后,在当前的运行时环境中找到此函数对象,如果找不到解释器报错,然后终止脚本的运行。然后把它放到一个全局字典中,并把它的相关信息传给调度程序,而当调度程序需要执行此任务时,会执行函数run_script,它有一个参数是uint类型,是任务名字符串在内存中的地址,函数run_script会通过任务名在全局字典找到函数对象,并执行此函数对象,从而实现测试任务的调度执行。后三个时间参数的单位是毫秒。
下面给出一个完整的测试脚本:
form script import*#导入扩展模块
def task():#测试任务
handle=gethandle(′DCMP.ins_main_mode′)#获得惯导主模式的句柄
setvalue(handle,1)#设置惯导主模式为1
value=getvalue(handle)#获得惯导主模式的值
exassert(value==1)#实际值与预期值对比
register(′task′,0,50,60)#将任务向调度程序进行注册
对于简单的延时操作,″ts″模块提供了″delay″方法可以提供毫秒级的延迟,延迟过程中解释器线程被挂起,不占用CPU资源。
5)测试结果判断
测试用例执行过程中或执行结束后,需要对测试数据进行分析、比较,以确认该用例是否通过。″ts″模块提供方法″assert″可对测试结果进行断言,若断言不成立,该测试用例将被认为不通过,然后将结论写入测试结果数据库中,并终止对该测试用例的测试。下面举例说明:
import ts #导入测试控制模块
ts.setvalue(′RC.pitch′,5)#通过设备模型′RC′(遥控设备)向飞控发送数据,设置俯仰角为5度
ts.delay(5000)#延迟5秒
pitch=ts.getvalue(′AIRCRAFT.pitch′)#通过模型′AIRCRAFT′获取飞机当前的俯仰角ts.exassert(′4.9<pitch<5.1′)#5秒后,若俯仰角不在正确范围内,判断该用例未通过
6)测试脚本接口
在本发明的测试系统中,测试用例的执行是通过脚本解释器对测试脚本的解释来实现的。解释器先理解测试行为,再按照测试输入,通过模型控制器改变交联设备模型的运行状态,最终达到向SUT施加测试激励的目的。
测试面板使得测试人员能够实时监视并控制测试的进行。面板上的控件分为两类:显示类和控制类。供变量观察的控件有:编辑框,树形控件,趋势图,仪表盘,数码管,信号灯等。可设置接口变量的控件有:按钮,旋钮,编辑框等。测试面板配置模块首先导入SUT测试环境配置信息,即存储交联环境图的XML文件,并根据需要选择各种控件。每个显示控件可与一个接口变量绑定起来(也可与多个变量绑定,如曲线图),设置其显示属性(如线条颜色,按钮风格等)。每个控制控件可同一段测试脚本(也称在线脚本)绑定起来,点击该按钮将触发解释器对该脚本的执行,如设置某个接口变量的值。显控面板配置完毕后,存成XML文件,本专利所述的测试系统启动时可以导入该配置文件,并根据该配置文件动态生成面板和各种控件。
本发明通过多任务方式(即多线程)实现各种交联设备的仿真。仿真模型以及测试脚本的多任务管理是通过多任务调度模块实现的。多任务调度模块提供任务注册和测试的开始、暂停、停止等功能。通过任务注册接口,在一次测试用例执行过程中可以注册多个任务,包括周期性任务和一次运行的定时任务。一个任务可以有开始时间,运行时间,周期等时间属性的控制。调度模块按照所注册任务的时间属性准确地控制任务的运行和结束。另一方面,调度机制根据建模时模型的周期特性创建模型任务,实现脚本之外模型自身的任务仿真。依赖于操作系统的时间精度,多任务调度模块需要达到毫秒级定时精度。通过采用ACE的定时器序列和主动定时器,调度模块可方便灵活的实现定时器,这可以满足各种时间相关测试的需求。调度模块提供的任务注册的接口由脚本扩展模块使用。调度模块通过和消息机制和界面窗口进行通信,以触发测试的开始和停止。
参见附图7,多任务调度模块以交联环境配置模块生成的模型配置XML文件为输入,建立接口变量表,同时创建模型任务。使用Python语言编写文本格式的测试脚本文件也作为调 度模块的输入,在一个脚本文件中创建一个或者多个任务。所有脚本的解释执行都通过脚本解释器完成,而脚本解释器又调用了任务调度所提供的任务注册等接口。在首次解释执行完脚本后,描述测试用例的任务被创建完成,处于挂起状态。然后在接到用户的测试开始命令后,各个任务开始运行。任务的周期性运行通过控制和任务绑定的信号量来实现。所有相同周期的任务共用一个定时器,在定时器超时事件发生时,判断任务是否还在运行时间内,如果是,则释放任务绑定的信号量以使得任务运行;否则停止任务。每个测试任务实际执行所做的工作是由python脚本在注册任务时指定的函数对象来定义的,所有函数对象由脚本解释执行器维护,一个测试用例的执行就是调度器和解释器配合着调用python函数对象的过程。测试脚本解释器对接口变量的操作也是通过调用变量管理模块的接口来实现的。
此外由调度模块提供接口实现在多任务环境中操作建模生成的模型变量,这些操作包括变量的检索,更新值,读取变量值,传送,收集等。
本发明通过接口驱动模块实现了各种IO接口的抽象,屏蔽了具体硬件的差异。接口驱动模块介于调度模块和具体硬件的驱动层之间,为调度模块提供了统一的接口。对于DI,DO,AI,AO,RS-422,RS232,LOCAL等总线提供了统一的读写接口。所有的IO类型都继承自同一接口,通过对接口方法的不同实现来完成接口操作的特殊工作。在扩展新的IO类型是,只需要再继承实现此同一接口即可,非常方便。不同硬件驱动的差异性在特定总线类型的实现中屏蔽。当使用了不同的硬件及驱动时,只需变化读写接口的内部实现,而对调度模块的接口则不需要任何改变。
具体的,参见附图8,接口驱动模块包含管理层、IO层、板卡层,管理层是接口驱动模块和系统的接口,在管理层中定义了管理类,调度机制调用本类实现对变量的分配、赋值和取值;在IO层定义了IO类,每个IO类对应一种总线接口,例如AI、ARINC-429,板卡层包含多个板卡类和通道类,每个板卡类是一种型号板卡设备的抽象,例如:PCI-1751、PCI-1724,每个板卡至少包含一个通道,每个通道和一个变量相互绑定。使用同种总线接口的板卡的信息由板卡层采集后,通过统一的接口——对应该接口的IO类——由IO层读取。
通道是系统可分配给变量的最小单元,一个通道通常与一个变量相互绑定,对于变量的操作可以被视为对一个物理通道的操作。参见附图9,为基本通道类的UML图,该类是对各种板卡通道的操作的一个抽象。根据不同型号板卡的特殊要求,只需要继承该类即可。
(1)属性
通道号:即该通道的编号,类型:unsinged int。
通道名称:上层赋予该通道的名称,类型:string。
描述信息:上层用于描述该通道的信息,类型:string。
总线类型:描述该通道支持的总线类型,类型:enum。
变量对象指针:分配给本通道的变量对象指针,类型:PVOID。
板卡对象指针:指向板卡类的指针,类型:PVOID。
是否已分配:表示该通道是否已被分配给变量,类型:bool。
是否有效:表示该通道当前是否可用,类型:bool。
(2)方法
初始化:初始化通道,即为该通道寄存器附初始值,并做打开通道等相关操作。
设置配置信息:对于通道的某个配置寄存器进行读写,改变配置信息。
读取配置信息:得到通道的某个配置信息。
分配变量:将通道分配给某个模型变量,将变量指针赋予该通道。
分离变量:将通道与某个已分配的变量分离。
检测变量配置信息是否有效:将通道的板卡信息与变量配置信息对比,检查是否有矛盾。
写入:向通道中写入数值。
读取:从通道中读取数值。
关闭:关闭该通道。
所述的板卡类在分配一个通道给变量的时候,会先初始化一个通道类,然后将变量绑定到该通道,如果配置信息检查无误,将把该通道对象的地址作为句柄返回给上层。如果配置信息有误,将返回错误。参见附图10,为板卡类的UML图:
(1)属性
板卡名称:上层赋予该板卡的名称,类型:string。
描述信息:上层赋予该板卡的描述信息,类型:string。
支持总线类型:该板卡支持的总线类型,类型:enum。
最大通道号:该板卡所支持的最大通道号,类型:unsinged int。
(2)方法
初始化:将板卡置于初始状态,并初始化各通道。
设置配置信息:写板卡配置寄存器,设置配置信息。
读取配置信息:读取板卡配置寄存器,获得配置信息。
分配变量:将板卡上的某一通道分配给模型变量
分离变量:将板卡上已分配的通道与变量分离。
检测变量配置信息是否有效:调用通道检测函数,得到变量配置信息是否有效。
启动:启动板卡,发送或接收数据。
停止:停止板卡发送或接收。
关闭:关闭板卡。
参见附图11,为IO类的UML图,
(1)属性
IO名称:输入输出形式的名称,类型:string。
描述信息:输入输出形式的描述信息,类型:string。
总线类型:输入输出类型,类型:enum。
支持板卡:支持本输入输出类型的板卡指针,类型:PVOID。
(2)方法
初始化:初始化所有支持的板卡。
设置配置信息:设置所有板卡的配置信息。
读取配置信息:读取相应板卡的配置信息。
分配变量:将变量分配给某个板卡的某个通道。
分离变量:将变量从某个板卡的某个通道分离。
检测变量配置信息是否有效:调用板卡类的检测函数,检测变量配置信息是否有效
启动:启动所有板卡
停止:停止所有板卡
关闭:关闭所有板卡。
参见附图12,为管理类的UML图
(1)属性
配置XML文件:用于记录驱动部分配置信息的XML文件路径,类型:string。
(2)方法
设置配置信息:设置某个变量绑定通道的配置信息。
读取配置信息:读取某个变量绑定通道的配置信息。
分配变量:为变量分配通道。
分离变量:将变量从通道分离。
读取:读取变量值。
写入:写入变量值。
启动:启动测试。
停止:停止测试。
关闭:关闭所有IO。
驱动部分的配置信息记录在一个XML格式文件中,该文件为驱动提供当前系统可支持的输入输出类型及其对应的类名称,以及可支持的板卡类型及类名称等信息。
具体的,XML文件中使用“driver”节点作为根节点,每一种输入输出类型使用一个“IOType”子节点。
在“IOType”子节点中,“name”表示IO名称,“type”表示IO类型,“description”表示描述信息,“board”表示可以支持的板卡。每一个板卡以“board”的子节点表示。
对于“board”子节点,“name”表示板卡名称,“type”表示板卡类型,“description”表示描述信息,“file”表示该板卡的驱动文件(即板卡层),“channel”表示通道信息。
本发明使用了SQLite小型数据库用于测试数据的收集,存储和管理。SQLite是一个轻量级、跨平台的关系型数据库,它使用进程内的数据库引擎,因此不存在数据库的客户端和服务器。使用SQLite只需要带上它的一个动态库,就可以使用它的全部功能,在部署的时候能够省去不少麻烦。SQLite数据库在稳定性和效率上的表现非常优秀。
为了避免因数据刷新过快,超过IO处理能力而导致丢失数据的情况发生,本发明使用双缓存机制存储数据,在把主缓存中的数据写入数据库时,新收集的数据将被写入辅助缓存中,并添加保护以确保数据缓冲不会发生读写冲突。另外,数据缓冲和写数据库功能在不同的线程中实现,写入数据库使用了SQLite的事务机制,这些机制的引入都大幅的提升了数据收集模块的工作效率和安全性,克服了SQLite数据库在连续插入记录时的性能缺陷,保证了检测工作可靠,高效地进行。
测试结束后,测试者可浏览测试结果数据库,并从该数据库生成word形式的测试报告。测试报告的模板可定制,这里存储为XML文件格式。
本发明的数据结构按照图13所示方式组织。
本发明提出的嵌入式系统的自动化检测方法的实施过程如图14所示,下面结合具体实例说明。
飞行控制系统(FCS:Flight Control System)作为一种典型的嵌入式系统,是飞机航电系统的关键部分,一般在出厂前需要做各种复杂冗长的检测,以确保产品无故障。在外场使用时,有时也需要通过检测来排除故障或进行维护。本发明可使得检测流程高度自动化,减轻人员负担,减少检测时间并提高了测试的准确性。使用本发明对某型号的飞行控制系统进行检测的步骤如下:
1.对FCS的测试环境进行建模。
FCS通过RS422、ARINC429、AI/AO、DI/DO等接口与其他航电设备相连,包括惯导、 大气机、高度表、舵机、综显、操作杆等设备,如图15所示。按照FCS的接口控制文档配置交联环境的接口变量,形成配置文件“Model.xml”。
2.配置显控面板。
3.将检测流程以脚本形式描述
例如这样一个测试流程:
检测飞控在改平状态下,俯仰角信号ωz信号传动比,按表2进行操作,记录舵机位移,并按表中所列公式计算传动比,应符合 ,在该项目的检测过程中,应先输入Vy,Hp,Q等参数,然后进入改平状态,输入ωz(两次,分别为ωz=上8°/s和ωz=下8°/s),测量舵机位移(对应两次ωz的不同输入,得到L1,L2),计算Kωz,与预期结果比较。
表
采用测试脚本描述该检测流程,如下所示
deftask581():
extrace(′改平状态下ωz信号传动比检查′)
############################
messagebox(′title=将TS-19速率陀螺的Wz输入轴平行于TZS-74速率转台的旋转
轴。;icon=4;′)
setvalue(H_HR,10) #设置升降速度为10m/s
setvalue(H_Hp,0) #设置气压高度为0km
setvalue(H_Qc,0) #设置动压为0kg/m2
setvalue(H_DO_QGAIPQ,1) #俯仰改平请求接通
sleep(0.5) #延时0.5秒
setvalue(H_AO_Wz,8)#设置ωz=上8°/s
message=messagebox(′title=记录DCD-29舵机的位移值(单位:mm)。;button=确
定;variable=L1的值为:;′)
l1=handle_MB(message)#记录位移L1
extrace(′DCD-29舵机的位移值L1=′+str(l1)+′mm′)
DBwrite(′传动比_改平_1_L1′′,str(l1))#将L1写入数据库
setvalue(H_AO_Wz,-8) #设置ωz=下8°/s
message=messagebox(′title=记录DCD-29舵机的位移值(单位:mm)。;button=确
定;variable=L2的值为:;′)
l2=handle_MB(message) #记录位移L2
extrace(′DCD-29舵机的位移值L2=′+str(l2)+′mm′)
DBwrite(′传动比_改平_1_L2′′,str(l2)) #将L2写入数据库
kwz=2.0*abs(l1-l2)/(7*16) #计算Kωz
extrace(′传动比=′+str(kwz))
DBwrite(′传动比_改平_1_Kwz′,str(kwz)) #将Kωz写入数据库
extrace(′传动比判断′)
ispass=exassert(kwz>=0.2-0.04and kwz<=0.2+0.04)
if ispass:
extrace(′传动比的值正常′,1)
else:
extrace(′传动比的值不正常′,2)
register(′task541′,0,50,60)#测试任务注册
类似地,所有的测试流程都可以脚本的形式描述出来,我们将这些脚本文件放入测试工程的script文件夹。
4.执行测试
接下来就可以对被测系统进行检测了,有两种检测方式:全自动检测和手动检测。测试人员选择检测方式后,点击测试开始按钮,如果是全自动测试,系统会弹出测试流程选择对话框,测试者可以从已有的测试脚本中挑选要执行的测试项,以及它们的执行顺序。
手动检测方式是指测试者自己操作面板上的按钮,执行各项输入,从测试面板上观察测试结果。相比全自动测试,手动方式增加了灵活性,但自动化程度较低。
5.分析测试数据,生成报告
测试结束后,测试者可打开数据分析界面,列表显示测试数据库中的数据,通过菜单“生成报告”可生成word形式的测试报告。
Claims (14)
1.一种基于测试脚本技术的嵌入式系统自动化检测系统,其特征在于:包括以下模块:
交联环境建模模块:提供可视化建模界面供测试者对SUT的交联设备进行建模,模型最终保存为XML文件,供主程序使用;
测试面板配置模块:提供可视化界面,供测试人员使用,进行测试面板的搭建工作;
测试脚本解释器:按照测试语句进行各种函数的调用以及测试数据的实时解析和分发,使测试动作真正被执行;
多任务调度模块:实现仿真模型以及测试脚本的多任务管理;
接口驱动模块:介于多任务调度模块和具体硬件的驱动层之间,为多任务调度模块提供了统一的接口;
数据收集模块:用于测试数据的收集,存储和管理;
测试报告生成模块:用于将数据收集模块收集的数据生成测试报告;
测试管理模块:负责测试流程的管理、测试过程控制,包括选择测试脚本,测试的启动,暂停,和停止;
通过交联环境建模模块提供的可视化建模界面配置SUT的仿真测试环境,然后将配置好的测试环境存成XML格式文件;通过测试面板配置模块提供的可视化界面选择需要的控件;使用Python语言编写文本格式的测试脚本文件,脚本中描述一个或多个测试用例的操作;测试管理模块接受用户的指令开始自动化测试,通知多任务调度模块测试开始,多任务调度模块调用所述的XML文件中的配置信息动态生成仿真交联设备模型,交联设备模型通过接口驱动模块和SUT相联,然后,多任务调度模块将所述的测试脚本文件提交给测试脚本解释器进行解释执行,测试脚本解释器根据所述的测试脚本中描述的测试任务的属性向多任务调度模块提交任务,多任务调度模块将这些测试任务记录下来,统一调度,多任务调度模块根据其记录的测试任务内容通过交联设备模型、接口驱动模块向SUT施加测试激励,STU将反馈数据通过接口驱动模块传递给数据收集模块存储,测试报告生成模块根据用户指令将数据收集模块收集到的数据生成测试报告。
2.权利要求1所述的系统,其特征在于:
所述的交联环境建模模块包括:
界面工具包:提供可视化页面,供测试者对SUT的交联设备进行建模;
模型类库:用来存储通过用户界面获得模型的相关信息;
测试者通过所述的界面工具包提供的可视化界面对SUT的交联设备进行配置、建模,然后存储到所述的模型类库,通过所述的模型类库中的存储函数把模型的相关信息存储到XML 格式的文件中。
3.权利要求2所述的系统,其特征在于:所述的交联环境建模模块的界面工具包采用MFC的界面工具包提供可视化界面,在可视化界面中可以配置交联环境图,在交联环境图中采用矩形节点表示交联设备,节点间的连线表示设备之间的接口通讯,所述的接口可以是如下总线接口:RS-422,RS-232,AI,AO,DI,DO,ARINC-429,连线上可配置接口变量,配置完接口变量,可以根据用户的需求对变量的属性进行配置,这些变量属性包括传输类型,周期,变量类型,初始值;所述的变量类型是Block类型;所述的交联环境建模模块为每个模型节点和连接分别绑定一个唯一的UUID,并且记录其在交联环境图中的位置信息。
4.权利要求1所述的系统,其特征在于:所述的测试面板配置模块提供两类控件:显示类和控制类,设置控制面板时,首先导入交联环境模块配置好的XML格式文件,选择需要的显示控件和控制控件,每个显示控件与一个或多个接口变量绑定起来,每个控制控件同一段测试脚本绑定起来,点击该控制控件将触发测试脚本解释器对该脚本的执行。
5.权利要求1所述的系统,其特征在于:所述的接口驱动模块为三层结构:板卡层、IO层和管理层;
所述的板卡层位于接口驱动模块的最底层,其直接操作硬件驱动程序,完成测试数据的采集和发送;板卡层中定义了多个板卡类和通道类,每个板卡类是一种型号板卡设备的抽象,每个板卡至少包含一个通道,每个通道和一个变量相互绑定,对于变量的操作可以被视为对一个物理通道的操作;
所述的IO层中定义了多个IO类,IO类是输入输出形式的抽象,每一个IO类对应一种总线接口;在IO类中管理着支持该类型总线的板卡;
最后,所述的管理层整体管理所有输入输出类型,并根据配置,为变量分配IO端口和物理板卡通道;管理层是接口驱动模块和系统其它模块的接口,系统通过管理层实现对变量的分配、赋值和取值;管理层检查变量的配置信息是否合法;
使用同种总线接口的板卡的信息由板卡层采集后,通过统一的接口——对应该接口的IO类——由IO层读取,最后由管理层上传至系统的其它模块。
6.权利要求1所述的系统,其特征在于:所述的数据收集模块使用了SQLite小型数据库用于测试数据的收集,存储和管理。
7.权利要求6所述的系统,其特征在于:所述的数据收集模块使用双缓存机制存储数据,在把主缓存中的数据写入数据库时,新收集的数据将被写入辅助缓存中,并添加保护以确保数据缓冲不会发生读写冲突,且数据缓冲和写数据库功能在不同的线程中实现,写入数据库使用了SQLite的事务机制。
8.权利要求1所述的系统,其特征在于:所述的测试脚本在开源脚本Python的基础上作了扩展,增加了扩展模块″ts″,加入针对实时嵌入式软件测试特性的描述,可以实现测试输入、获取测试反馈以及执行时间控制、测试结果判断、测试脚本的复用、测试脚本接口功能。
9.权利要求8所述的系统,其特征在于:所述的测试输入通过扩展模块″ts″中提供的″setvalue″函数来实现,″setvalue″函数可以用来对三种数据结构进行赋值,并输出跟踪信息,
10.权利要求9所述的系统,其特征在于:所述的″setvalue″函数共有两个参数,第一个参数为数据结构名或数据结构句柄,第二个参数为要赋予的值,通过第一个参数进行查找,发现此变量确实存在,就调用赋值函数接口将此变量的值更新为第二个参数,否则报错,同时终止脚本运行。
11.权利要求8所述的系统,其特征在于:所述的获取测试反馈通过扩展模块″ts″中提供的″getvalue″函数来用于对三种数据结构的取值。
12.权利要求11所述的系统,其特征在于:所述的″getvalue″函数有一个参数,参数为数据结构名或数据结构句柄,输出为数据结构的值,类型为XML中定义的数据结构的类型;通过对参数进行查找,发现此变量确实存在,就调用取值函数接口获得此变量的值,否则报错,同时终止脚本运行。
13.权利要求8所述的系统,其特征在于:所述的执行时间控制通过″ts″模块提供″register″函数将测试任务的类型、执行时间以及周期信息注册到本发明的测试系统中来实现。
14.权利要求13所述的系统,其特征在于:所述的″register″函数共有四个参数,第一个参数为任务名称;第二个参数是任务的开始时间;第三个参数是任务的运行时间;第四个参数是任务的周期;所述的任务实际就是脚本中的函数,这个函数没有参数,register的第一个参数就是这个函数的函数名,register在获得函数名后,在当前的运行时环境中找到此函数对象,如果找不到解释器报错,然后终止脚本的运行;然后把它放到一个全局字典中,并把它的相关信息传给调度程序,而当调度程序需要执行此任务时,会执行函数run script,它有一个参数是任务名字符串在内存中的地址,函数run_script会通过任务名在全局字典找到函数对象,并执行此函数对象,从而实现测试任务的调度执行;后三个时间参数的单位是毫秒。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2009101622769A CN101833498B (zh) | 2009-07-31 | 2009-07-31 | 一种基于测试脚本技术的嵌入式系统自动化检测系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2009101622769A CN101833498B (zh) | 2009-07-31 | 2009-07-31 | 一种基于测试脚本技术的嵌入式系统自动化检测系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101833498A CN101833498A (zh) | 2010-09-15 |
CN101833498B true CN101833498B (zh) | 2012-06-06 |
Family
ID=42717574
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2009101622769A Expired - Fee Related CN101833498B (zh) | 2009-07-31 | 2009-07-31 | 一种基于测试脚本技术的嵌入式系统自动化检测系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101833498B (zh) |
Families Citing this family (80)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102413157A (zh) * | 2010-09-21 | 2012-04-11 | 智微科技股份有限公司 | 网络储存系统以及网络储存方法 |
CN101976582A (zh) * | 2010-10-15 | 2011-02-16 | 北京航天测控技术开发公司 | 存储器建模方法及装置 |
CN101968770A (zh) * | 2010-11-01 | 2011-02-09 | 北京航空航天大学 | 一种可复用的嵌入式软件测试开发方法和系统 |
CN102156784B (zh) * | 2011-04-18 | 2013-01-02 | 烽火通信科技股份有限公司 | 验证环境图形化的芯片验证方法与装置 |
CN102810123A (zh) * | 2011-06-02 | 2012-12-05 | 苏州雄立科技有限公司 | 一种激励产生方法及装置 |
CN102819486B (zh) * | 2011-06-09 | 2014-12-10 | 腾讯科技(深圳)有限公司 | 一种网络产品自动化测试系统和测试方法 |
JP5772316B2 (ja) * | 2011-07-08 | 2015-09-02 | ソニー株式会社 | 情報処理装置、情報処理方法及びコンピュータプログラム |
CN102354297A (zh) * | 2011-07-20 | 2012-02-15 | 中兴通讯股份有限公司 | 一种测试方法及装置 |
CN102521127A (zh) * | 2011-12-07 | 2012-06-27 | 中国航空无线电电子研究所 | 通用总线数据分析系统 |
CN102609811A (zh) * | 2012-01-19 | 2012-07-25 | 贵州航天风华精密设备有限公司 | 一种航天器测试项目指标的通用化定义系统及其定义方法 |
CN103218287B (zh) * | 2012-01-20 | 2016-03-16 | 百度在线网络技术(北京)有限公司 | 用于对hadoop streaming脚本进行测试的方法及装置 |
CN103294589B (zh) * | 2012-02-22 | 2017-02-01 | 中国移动通信集团公司 | 一种测试用例的实现方法、系统及中间适配装置 |
CN102693183B (zh) * | 2012-05-30 | 2015-04-01 | 瑞斯康达科技发展股份有限公司 | 一种实现软件自动化测试的方法及系统 |
CN103729286B (zh) * | 2012-10-10 | 2017-10-03 | 上海斐讯数据通信技术有限公司 | 用于嵌入式设备的自动化测试平台 |
CN103793320B (zh) * | 2012-10-31 | 2017-02-08 | 晨星软件研发(深圳)有限公司 | 配合多个应用程序的整合系统和测试系统 |
US9104813B2 (en) * | 2012-12-15 | 2015-08-11 | International Business Machines Corporation | Software installation method, apparatus and program product |
CN103064787B (zh) * | 2012-12-21 | 2015-06-10 | 清华大学 | 一种基于扩展接口自动机模型的嵌入式组件建模与测试方法 |
CN103092156B (zh) * | 2012-12-26 | 2016-02-10 | 莱诺斯科技(北京)有限公司 | 设备可替换型自动化测试系统及方法 |
CN103092732B (zh) * | 2013-01-23 | 2016-08-17 | 加弘科技咨询(上海)有限公司 | 利用脚本动态监控设备的系统 |
CN103257925B (zh) * | 2013-04-28 | 2016-01-20 | 株洲南车时代电气股份有限公司 | 列车运行监控记录软件自动测试装置、系统及其方法 |
CN103559023B (zh) * | 2013-08-23 | 2017-09-22 | 航天科工惯性技术有限公司 | 接口转换方法和装置 |
CN103559114B (zh) * | 2013-11-12 | 2015-08-19 | 福建联迪商用设备有限公司 | 嵌入式模块驱动功能测试系统及方法 |
CN103729216A (zh) * | 2013-12-20 | 2014-04-16 | 江苏锐天信息科技有限公司 | 一种arinc429板卡数据输入输出方法 |
CN103885881B (zh) * | 2014-04-03 | 2016-08-03 | 北京航空航天大学 | 一种基于VxWorks系统多任务机制的高实时并发测试方法 |
CN104022919B (zh) * | 2014-06-25 | 2018-12-14 | 北京经纬恒润科技有限公司 | 一种控制多总线接口数据激励的方法、装置及系统 |
CN104182222A (zh) * | 2014-08-18 | 2014-12-03 | 苏州赛腾精密电子有限公司 | 自动化设备通用软件平台 |
CN104198868A (zh) * | 2014-09-23 | 2014-12-10 | 厦门雅迅网络股份有限公司 | 一种可灵活扩展和动态配置的智能工装 |
CN104361012B (zh) * | 2014-10-13 | 2018-03-27 | 交控科技股份有限公司 | 一种城市轨道交通工程线路数据的测试方法及装置 |
CN104461619B (zh) * | 2014-11-26 | 2017-10-27 | 卡斯柯信号有限公司 | 一种嵌入式软件功能可配置方法 |
CN104484166B (zh) * | 2014-12-04 | 2017-07-28 | 山东科技大学 | 一种自动化测试系统图形化建模装置及方法 |
CN105787364B (zh) * | 2014-12-23 | 2020-06-30 | 深圳市腾讯计算机系统有限公司 | 任务的自动化测试方法、装置及系统 |
CN104572117A (zh) * | 2015-01-26 | 2015-04-29 | 浪潮通用软件有限公司 | 一种预留接口的实现方法 |
CN104615541B (zh) * | 2015-02-10 | 2018-01-23 | 上海创景信息科技有限公司 | 基于流程图的仿真测试建模系统及方法 |
CN105808432B (zh) * | 2015-03-04 | 2019-05-10 | 中车株洲电力机车研究所有限公司 | 轨道交通牵引传动控制单元软件自动化测试系统及方法 |
CN106155902A (zh) * | 2015-04-28 | 2016-11-23 | 中兴通讯股份有限公司 | 一种js调试页面方法和装置 |
CN106326096A (zh) * | 2015-06-30 | 2017-01-11 | 中国船舶工业综合技术经济研究院 | 一种舰船装备软件接口协议形式化建模方法 |
CN105426278B (zh) * | 2015-11-20 | 2019-05-10 | 北京畅游天下网络技术有限公司 | 一种客户端设备性能测试方法及系统 |
CN106844190B (zh) * | 2015-12-07 | 2022-06-07 | 中兴通讯股份有限公司 | 测试脚本自动生成方法及装置 |
CN106502882B (zh) * | 2016-09-23 | 2019-02-01 | 卡斯柯信号有限公司 | 适用于城轨软件自动化测试的测试脚本设计方法 |
US10997045B2 (en) | 2016-10-20 | 2021-05-04 | Y Soft Corporation, A.S. | Universal automated testing of embedded systems |
CN108255694A (zh) * | 2016-12-28 | 2018-07-06 | 比亚迪股份有限公司 | 基于解释器的测试方法及系统 |
CN107181747B (zh) * | 2017-05-19 | 2019-12-13 | 北京中数创新科技股份有限公司 | 一种包含顶层节点的Handle解析系统 |
CN107168880A (zh) * | 2017-05-31 | 2017-09-15 | 中标软件有限公司 | 虚拟机测试方法及工具 |
CN107797930B (zh) * | 2017-10-27 | 2021-04-23 | 东信和平科技股份有限公司 | 测试智能卡功能的方法、系统、装置及可读存储介质 |
CN107908392B (zh) * | 2017-11-13 | 2020-12-22 | 平安科技(深圳)有限公司 | 数据采集工具包定制方法、装置、终端和存储介质 |
CN108170889A (zh) * | 2017-11-28 | 2018-06-15 | 北京天地玛珂电液控制系统有限公司 | 一种液压支架控制器软件的仿真测试方法和系统 |
CN108255707B (zh) * | 2017-11-30 | 2020-09-25 | 平安科技(深圳)有限公司 | 测试用例的开发角色创建方法、装置、设备及存储介质 |
CN108333445B (zh) * | 2017-12-26 | 2020-04-03 | 北京航天测控技术有限公司 | 一种基于VxWorks的数据采集仪器的仪器管理方法 |
CN108595317B (zh) * | 2017-12-28 | 2021-06-11 | 合肥工大高科信息科技股份有限公司 | 一种轨道交通安全计算机嵌入式自动化测试方法 |
CN110221955A (zh) * | 2018-03-01 | 2019-09-10 | 宝沃汽车(中国)有限公司 | 测试报告生成装置 |
CN108346342B (zh) * | 2018-03-02 | 2019-02-26 | 北京空间技术研制试验中心 | 用于航天员训练的仿真系统 |
CN108427642A (zh) * | 2018-03-05 | 2018-08-21 | 深圳市买买提信息科技有限公司 | 一种界面中控件测试的方法和装置 |
CN108845792B (zh) * | 2018-04-12 | 2022-01-04 | 武汉斗鱼网络科技有限公司 | 一种类工厂注册的方法、装置及电子设备 |
CN108897532B (zh) * | 2018-04-12 | 2022-01-04 | 武汉斗鱼网络科技有限公司 | 一种类工厂注册的方法、装置及电子设备 |
CN109165397B (zh) * | 2018-06-29 | 2023-05-26 | 华南理工大学 | 基于ug和ansa平台的自动cae分析系统与开发方法 |
CN109101424A (zh) * | 2018-08-07 | 2018-12-28 | 西北工业大学 | 一种实现数据激励的方法及装置 |
CN109164717B (zh) * | 2018-09-05 | 2021-11-16 | 中国航空工业集团公司北京长城航空测控技术研究所 | 结合仿真飞行包的系统级试验控制方法 |
CN110362465A (zh) * | 2018-10-22 | 2019-10-22 | 江苏艾科半导体有限公司 | 一种使用xml文件保存测试程序相关信息的方法 |
CN109634867B (zh) * | 2018-12-18 | 2022-02-11 | 宁夏隆基宁光仪表股份有限公司 | 基于数据模拟系统下的软件测试方法、装置及存储介质 |
CN109976750A (zh) * | 2019-03-28 | 2019-07-05 | 深圳市创联时代科技有限公司 | 一种基于嵌入式开发系统的组件源码配置和组件裁剪方法 |
CN110289043B (zh) * | 2019-06-26 | 2021-04-27 | 杭州宏杉科技股份有限公司 | 存储设备测试方法、装置、电子设备 |
CN110764997B (zh) * | 2019-09-06 | 2021-07-23 | 武汉迎风聚智科技有限公司 | 一种数据库接口符合性测试方法以及装置 |
CN110579998A (zh) * | 2019-10-24 | 2019-12-17 | 苏州良将智能科技有限公司 | 一种数据采集方法 |
CN111176994B (zh) * | 2019-12-24 | 2023-03-31 | 北京轩宇信息技术有限公司 | 针对嵌入式软件io端口的单元测试用例生成方法及装置 |
CN111104334B (zh) * | 2019-12-24 | 2023-04-07 | 重庆长安新能源汽车科技有限公司 | 基于eeprom模块接口软件的测试方法、装置及可读取存储介质 |
CN111258555A (zh) * | 2020-01-15 | 2020-06-09 | 上海知白智能科技有限公司 | 软件实现装置 |
CN111385837A (zh) * | 2020-03-02 | 2020-07-07 | 北京智芯微电子科技有限公司 | 对无线公网通信单元进行测试的系统及方法 |
CN111831379B (zh) * | 2020-07-15 | 2023-06-30 | 中车大连机车车辆有限公司 | 在线动态数据批量处理和显示方法及车载显示屏装置 |
CN112162921B (zh) * | 2020-09-15 | 2023-08-25 | 广州市方瞳科技有限责任公司 | 一种工业自动化测试与控制系统 |
CN114512077B (zh) * | 2020-10-23 | 2023-12-05 | 西安诺瓦星云科技股份有限公司 | 接收卡输出的驱动时序检测方法、装置及系统 |
CN112559318A (zh) * | 2020-11-02 | 2021-03-26 | 浙江诺诺网络科技有限公司 | 一种测试用例生成方法、装置及电子设备和存储介质 |
CN112364496B (zh) * | 2020-11-03 | 2024-01-30 | 中国航空无线电电子研究所 | 基于html5和vue技术的航电仿真面板生成系统 |
CN112347649A (zh) * | 2020-11-06 | 2021-02-09 | 上海航天控制技术研究所 | 一种基于多学科联合的飞控系统数字仿真方法 |
CN112417678B (zh) * | 2020-11-18 | 2024-04-09 | 中国运载火箭技术研究院 | 一种硬实时性飞行器测试系统 |
CN112506825A (zh) * | 2020-12-21 | 2021-03-16 | 苏州云电电力科技有限公司 | 一种i/o信号的引用方法 |
CN113566875A (zh) * | 2021-07-26 | 2021-10-29 | 深圳国芯人工智能有限公司 | 一种软件自动化智能测试系统 |
CN113706110B (zh) * | 2021-08-30 | 2022-07-15 | 航天中认软件测评科技(北京)有限责任公司 | 一种fpga测试工具一体化测试管理平台 |
CN114428605B (zh) * | 2022-04-06 | 2022-06-17 | 北京精雕科技集团有限公司 | 一种自动化系统信息交互方法及装置 |
CN114755936A (zh) * | 2022-04-20 | 2022-07-15 | 中国第一汽车股份有限公司 | 空气悬架自动测试系统及方法 |
CN117667709B (zh) * | 2023-12-07 | 2024-05-17 | 长园智能装备(广东)有限公司 | 一种制造业自动化测试方向标准协议栈的设计方法 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101183335A (zh) * | 2007-12-25 | 2008-05-21 | 中兴通讯股份有限公司 | 一种实现嵌入式软件异常测试的方法及系统 |
-
2009
- 2009-07-31 CN CN2009101622769A patent/CN101833498B/zh not_active Expired - Fee Related
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101183335A (zh) * | 2007-12-25 | 2008-05-21 | 中兴通讯股份有限公司 | 一种实现嵌入式软件异常测试的方法及系统 |
Also Published As
Publication number | Publication date |
---|---|
CN101833498A (zh) | 2010-09-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101833498B (zh) | 一种基于测试脚本技术的嵌入式系统自动化检测系统 | |
Jacky et al. | Model-based software testing and analysis with C | |
US7913230B2 (en) | Computer-implemented methods and systems for generating software testing documentation and test results management system using same | |
US20080320071A1 (en) | Method, apparatus and program product for creating a test framework for testing operating system components in a cluster system | |
US20130263090A1 (en) | System and method for automated testing | |
US20080270841A1 (en) | Test case manager | |
CN103069386B (zh) | 控制程序生成装置、控制程序生成程序以及控制程序生成方法 | |
EP3030969A1 (en) | Automated application test system | |
US20120254662A1 (en) | Automated test system and automated test method | |
RU2451990C2 (ru) | Способ обработки объема данных, используемого во время фазы отладки функционального программного обеспечения системы, установленной на борту летательного аппарата, и устройство для его осуществления | |
US20050204345A1 (en) | Method and apparatus for monitoring computer software | |
CN116820908A (zh) | 基于Locust的性能测试方法、装置、设备及介质 | |
Fournier et al. | Analyzing blocking to debug performance problems on multi-core systems | |
Augusto et al. | RETORCH: Resource-aware end-to-end test orchestration | |
CN113919158A (zh) | 一种用于飞行控制面板的仿真方法、装置及存储介质 | |
Winter et al. | The PECOS software process | |
CN102144221A (zh) | 用于自动化测试的紧凑架构 | |
Canny et al. | Engineering model-based software testing of WIMP interactive applications: a process based on formal models and the SQUAMATA tool | |
CN106020800A (zh) | 一种基于数据库的模拟训练设备操作逻辑建模与驱动方法 | |
RU2783906C1 (ru) | Комплекс тестирования встроенного программного обеспечения электронных устройств | |
CN112699035A (zh) | 一种多分区机载应用软件关联索引测试方法和装置 | |
Silva et al. | RTEMS improvement–space qualification of RTEMS executive | |
Gupta et al. | Requirement engineering: An overview | |
Figliulo et al. | Experiences with automated system testing and Sleuth | |
Schumacher et al. | Cause and effect of nondeterministic behavior in sequential and parallel SystemC simulators |
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 | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20120606 Termination date: 20150731 |
|
EXPY | Termination of patent right or utility model |