CN103235756A - 一种面向嵌入式系统分区应用程序软件的仿真测试方法 - Google Patents
一种面向嵌入式系统分区应用程序软件的仿真测试方法 Download PDFInfo
- Publication number
- CN103235756A CN103235756A CN2013101407881A CN201310140788A CN103235756A CN 103235756 A CN103235756 A CN 103235756A CN 2013101407881 A CN2013101407881 A CN 2013101407881A CN 201310140788 A CN201310140788 A CN 201310140788A CN 103235756 A CN103235756 A CN 103235756A
- Authority
- CN
- China
- Prior art keywords
- test
- model
- subregion
- application program
- partition
- 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.)
- Granted
Links
Images
Abstract
一种面向嵌入式系统分区应用程序软件的仿真测试方法,该方法有五大步骤:步骤一:构建测试模型;步骤二:根据测试模型,生成测试配置信息和虚拟分区代码;步骤三:编写测试脚本,对测试过程中发生的指定事件编写响应动作;步骤四:对被测分区应用程序实施测试;步骤五:收集测试数据并进行分析。本发明在分区嵌入式软件应用程序的开发和集成测试阶段实施,能够测试或验证分区嵌入式软件应用程序的执行顺序、调度性能、接口通讯功能。其思路是利用核心操作系统本身的运算和存储单元,通过虚拟分区的方式来在线模拟其他分区应用程序的动态行为,对被测应用程序施加测试激励并接收响应。它在软件测试技术领域里有广阔的应用前景。
Description
技术领域
本发明提出一种面向嵌入式系统分区应用程序软件的仿真测试方法,特别是涉及一种面向综合模块化嵌入式系统分区应用程序软件的仿真测试方法,它是一种嵌入式软件仿真测试方法,其主要面向综合模块化嵌入式系统分区应用程序软件,它与嵌入式软件测试技术、嵌入式软件脚本技术以及软件故障注入技术有关,属于软件测试技术领域。
背景技术
近几年,随着嵌入式系统功能日趋复杂,系统的软硬件结构也不断发生变化。嵌入式系统软件由传统功能单一,软硬件紧密耦合的结构向模块化、多层次、开放式的软件体系结构转化。其中:
模块化指软件系统的功能由一个或多个模块组成,每个模块分时间占用系统资源并得到执行,与传统嵌入式系统软件独占硬件资源的结构相区分;
多层次指软件系统分为硬件层、模块支持层、操作系统层和应用层多个层次,图1描述了一个模块化分区嵌入式软件体系结构。每个分区中都可能包含不同的操作系统,命名为分区操作系统,其与核心操作系统位于操作系统层。在这种多层次的软件结构中,核心操作系统用于分时调度每个分区应用程序,而分区操作系统则在相应分区处在运行状态下时负责调度分区内的各个任务。
开放式指软件将不再与硬件紧密耦合。多层次的软件结构通过模块支持层和核心操作系统层将各种不同的硬件设备操作封装并抽象成了统一的操作系统应用接口,因此使分区应用程序也不再与硬件紧密耦合。分区应用程序可以在任意一个符合综合模块化嵌入式软件接口规范的系统中运行。
以上特点给嵌入式软件的测试带来了新的挑战。以综合模块化航空电子系统(IMA)为例,其具有通用性、经济性和高可靠性等优点的同时,也大大提高了系统的复杂度,从而提高了软件测试和验证的难度。IMA系统的开发和设计需要符合ARINC653规范,该规范明确了嵌入式系统中核心操作系统(COS)、分区操作系统(POS)和分区应用程序(PA)等概念。而对于分区应用程序,在进行系统集成测试前往往难以得到应用程序与其他交联模块的运行状态和参数。
在实际开发和测试过程中,会发生诸如没有足够的处理器资源运行所需应用、数据的传输延迟导致信号不能及时响应等故障,此类故障只有在进行系统集成后才能暴露,而系统集成阶段的测试难以进行故障定位,增加了解决问题的难度和成本。另外,有些故障可能需要重新设计系统结构才能解决,从而严重影响系统的交付时间。与此同时,对分区应用程序进行软件测试存在巨大的障碍。每个分区应用程序虽然能够独立运行,但缺乏与其他分区的交联,很难实施对分区应用程序各项功能的全面测试。
当前对于分区应用程序的测试,通常在系统内部总线级别上独立开发一个测试模块,通过模拟内部总线数据来实现对其他嵌入式分区功能的模拟,但这种方法需要重新设计硬件软件,费用高、通用性差,不易采用。
由此可知,嵌入式系统从原有的单个操作系统运行多个应用逐步发展为有一个核心操作系统和多个分区操作系统及分区应用程序协同才能实现预期的功能需求。软件测试作为保证软件质量的重要手段,必须能够对此类应用进行全面的测试,才能保证系统的整体质量。
发明内容
1、目的:
针对上述问题,本发明提出基于虚拟分区和实时脚本技术的综合模块化嵌入式系统分区应用程序软件自动测试方法,提供一种面向综合模块化嵌入式系统分区应用程序软件的仿真测试方法。该方法在分区嵌入式软件应用程序的开发和集成测试阶段实施,能够测试或验证分区应用程序的执行顺序、调度性能、接口通讯功能。其思路是利用核心操作系统本身的运算和存储单元,通过虚拟分区的方式来在线模拟其他分区应用程序的动态行为,对被测应用程序施加测试激励并接收响应。
2、技术方案:
(1)功能原理:
本发明与综合模块化嵌入式系统应用程序的开发过程紧密结合,其基于主机/目标机架构,如图2所示。其中测试开发端为被测软件的开发平台,同时也是本测试方法的管理平台,主要负责测试设计、管理和结果分析。数据服务端负责测试实施过程中的数据管理,执行测试激励数据发送和测试响应数据收集工作。分区应用程序则直接运行在测试执行端,即被测硬件执行平台。在测试过程中,运行于测试执行端的虚拟分区程序将根据数据服务端所发送的测试指令和测试配置执行各种测试动作,记录测试数据并回传到数据服务端。一次测试可以将多个测试执行端连接与主机端连接在一个通讯网络里进行。
(2)技术方案:
由于综合模块化分区嵌入式系统中使用资源配置信息文件管理系统的各种资源(如CPU时间、内存、I/O接口等),测试人员可以根据被测对象的特点和资源需求,定制相应的资源配置信息文件。本发明以该配置信息文件和分区应用程序作为输入,在特定的硬件平台上对分区应用程序的运行环境进行模拟,并利用虚拟分区与分区应用程序进行交互,实时监控分区应用程序的通讯数据。本发明的总体技术方案如图3所示,具体步骤描述如下:
步骤一:构建测试模型
为了能够准确详细地描述分区应用程序及其运行环境,需要利用分区应用程序的相关配置信息文件,构建测试模型。对于综合模块化嵌入式系统,有两类配置信息文件对系统的资源配置做出规划。其中:
(1)模块配置信息,用于配置整个模块化嵌入式系统中所执行的分区数量以及为每个分区应用程序所分配的内存地址、IO空间地址、CPU时间片等硬件资源信息,以及分区端口之间的通讯连接信息。对于具有外部总线的硬件平台,还定义了哪些分区应用程序需要对外部总线进行访问,包括访问的接口类型、接口配置等信息。
(2)分区配置信息,其主要定义了分区内进程或任务的数量、优先级、调度方式、执行时间等,还记录了分区应用程序所需的内存空间数量、IO空间类型、端口访问权限和方式等信息。
在本方法中,除了要导入分区应用程序自身的分区资源配置信息文件外,还需要导入与分区应用程序有关的模块资源配置信息文件。
利用分区配置信息文件和模块配置信息文件构建测试模型的方法如下:
(1)读取被测分区应用程序的分区配置信息文件,首先构建被测分区应用程序模型,根据配置信息中的分区内进程数量和端口访问信息,构建分区应用程序模型中的进程模型,为每个进程模型创建相应端口;根据分区应用程序的端口数量、端口类型、端口访问权限,构建分区应用程序模型中的相应端口,并将分区应用程序模型端口与进程模型端口相连接。
(2)读取与被测分区应用程序有数据交互的其他分区应用程序的分区配置信息文件,读取信息与构建模型内容与被测分区应用程序类似。
(3)读取模块配置信息文件,构建模块模型。通过模块配置信息中的分区端口连接信息,将模块模型中各分区模型的端口相连接;将模块配置信息文件中的内存地址、IO空间地址、CPU时间片信息记录在分区模型的属性中;将分区应用程序与外部总线的连接信息记录在外部设备模型中。
(4)将模块模型、分区模型和外部设备模型集成,构成测试模型。
步骤二:利用测试模型,生成测试框架
在测试模型中包含了分区应用程序的资源使用情况以及分区应用程序所在模块的资源使用情况。结合测试模型中的配置信息,可生成运行在测试硬件平台上的测试框架。本步骤包含以下操作:
(1)根据与分区模型,生成虚拟分区代码;
根据测试模型中的分区模型信息,生成虚拟分区代码。其中根据测试模型的分区模型信息,生成指定数量的虚拟分区,根据分区的端口数量、端口类型和端口访问权限生成相应的端口创建、端口配置和端口删除代码。
(2)根据分区模型,为虚拟分区生成分区配置信息文件;
根据测试模型中的分区模型信息,生成虚拟分区配置信息文件。其中根据测试模型的分区模型信息,生成指定数量的配置信息文件,根据分区的端口数量、端口类型和端口访问权限在配置信息文件中做相应配置。
(3)根据模块模型和外部设备模型,生成测试模块配置信息文件;
根据模块模型和外部设备模型,生成测试模块配置信息文件。其中包括虚拟分区与被测分区应用程序的连接信息,虚拟分区与被测分区应用程序的内存地址、IO空间地址和CPU时间片信息。测试模块配置信息文件与原模块配置信息文件的区别在于前者会根据虚拟分区中数据激励和采集的要求,配置相应的端口和访问信息。
(4)根据分区应用程序的分区资源配置和模块资源配置信息,对整个测试系统的可调度性进行评估。
通过以上步骤后,即可得到完整的测试框架,接下来需要测试人员编写测试脚本,即进入软件测试中的测试用例构建环节。
步骤三:编写测试脚本
通过以上步骤建立了测试框架,但还没有实现完整的测试用例,用户通过周期调用及事件注册API函数,将已编写好的脚本注册到测试框架中相应的事件,其中包括:
(1)分区端口的数据收发;
(2)按预定周期及延时的触发控制;
(3)帧格式及数据的解析运算;
(4)数据的记录和传输;
完成测试脚本后,脚本代码将与虚拟分区代码一同编译成可加载的模块文件;
步骤四:对分区应用程序实施测试
完成以上工作后,测试人员与开发人员调试系统类似的方式模拟运行测试框架和分区应用程序;在整个测试框架构建工作完成后,各虚拟分区将按测试脚本指定的时序和过程进行自动化测试并记录测试过程中产生的各种数据,其中包括:
(1)分区应用程序的加载和卸载数据,包括触发时间、执行时间;
(2)分区应用程序的调度数据,包括任务切换时间、分区应用的时间片长度;
(3)分区应用程序间的通讯数据,包括各端口的标号、接收和发送时间以及数据帧内容;
(4)分区应用程序执行过程中的异常和错误发生时间、错误状态信息;
步骤五:收集测试数据并进行分析
在测试过程中,虚拟分区通过高速外总线将测试数据实时传送到数据服务端保存,在测试结束后,测试开发端从数据服务端获取测试数据并进行分析。
3、优点及功效:
以虚拟分区和实时脚本技术实现的模块化分区嵌入式软件应用程序的测试方法,其思路是利用系统配置对被测分区应用程序的真实运行环境进行模拟,并通过实施脚本技术对被测软件进行激励施加、响应收集和状态监控的自动化测试过程,其优势在于:
1、纯软件的开发成本较设计专用测试硬件小,且测试软件可在不同测试对象条件下重用;
2、虚拟分区运行于指定硬件平台,具有同等的操作接口的权限,可以操纵功能模块所访问的内存、寄存器等存储或运算单元,更有利于模拟各种正常、边界、异常类型的数据;
3、虚拟分区可以监控被测分区软件的各类接口输出数据,以及在存储单元内部的输出数据,更有利于功能软件的状态监控;
4、虚拟分区能够监控被测分区的故障及处理过程,为被测软件的运行安全监控提供更多的判断依据。
5、虚拟分区与实时脚本技术相结合,可以实现动态的状态激励和故障注入工作。
附图说明
图1综合模块化嵌入式系统软件体系结构图;
图2测试系统总体结构图;
图3测试总体技术方案图;
图4测试开发端功能模块图;
图5测试执行端系统结构图;
图6虚拟分区功能结构图;
图7测试开发端测试插件与开发平台关系图;
图8测试实施过程图;
图9数据服务实施方案图;
具体实施方式
本发明利用虚拟分区和实时脚本技术,对综合模块化嵌入式系统分区应用程序软件进行仿真测试。本发明以分区应用程序配置信息文件、模块配置信息文件和分区应用程序作为输入,在真实硬件平台上对分区应用程序的运行环境进行模拟,并利用虚拟分区与分区应用程序进行数据交互,实时激励并采集响应。同时位于虚拟分区内部的实时脚本可以对分区应用程序进行故障注入和状态监控。测试系统的总体结构如图2所示。图1为综合模块化嵌入式系统软件体系结构图。
●测试开发端实施方案
测试开发端具有良好的用户界面和丰富的数据分析工具,选用Microsoft Windows操作系统作为测试开发端的操作系统。测试开发端的主要功能均使用开发平台插件的形式实现,能够有效利用分区应用程序的编译和调试环境。测试人员可无需安装和学习其他的平台技术,通过使用与系统开发人员统一的程序界面完成测试工作。
测试开发端的实施方案如图7所示。其主要包括应用管理、测试管理、资源管理、数据通讯和结果分析模块,每个模块都以插件的形式插入到系统开发平台的相应功能模块中。而各功能模块的详细结构及其关系如图4所示,其主要分为管理层和核心层,其中每个管理层模块都有对应的核心层功能实现,详细内容介绍如下:
(1)应用管理模块
应用管理模块是对分区应用程序的管理模块,其中包含对被测分区应用程序本身及其相应的分区配置信息文件等。作为开发平台的插件,该模块跟踪开发平台项目管理模块,将编译好的分区应用程序和分区配置信息文件复制到单独的文件夹管理。如果某个分区应用程序和分区配置信息文件因为修改而发生了改变,应用管理会自动将最新的文件复制到单独文件夹中。管理模块将单独文件夹中的内容作为测试系统的输入管理起来,记录其对应关系。
(2)测试管理模块
测试管理模块主要包含测试模型和测试框架的生成功能。在开发人员完成分区应用程序的开发阶段后,利用测试管理插件,自动生成分区应用程序的测试模型及测试框架。测试管理模块首先读取应用管理模块所管理的被测分区应用程序及分区配置信息文件,构建测试模型。然后根据模型生成虚拟分区代码、端口访问代码及虚拟分区的分区配置信息文件。
(3)资源管理模块
资源管理模块主要管理测试管理模块所生成的测试框架,同时,测试人员编写的测试脚本也在此处管理。在测试开始执行过程中,资源管理模块通过数据通讯模块将测试脚本、测试框架等下载到硬件平台执行。
(4)结果分析模块
结果分析模块主要管理测试执行过程中从数据服务端传输到测试开发端的测试数据。将测试结果保存到测试开发端文件系统。
●数据服务端实施方案
数据服务端提供测试过程中的所需的激励数据和响应数据的存储。数据服务端采用实时操作系统,并挂载大容量的数据存储设备。数据服务端的连接关系如图9所示。在测试实施过程中,虚拟分区通过核心操作系统与被测分区应用程序通讯,而用于激励的测试数据和监控得到的响应数据则通过高速通讯总线(AFDX)与数据服务端通讯,从数据服务端获取激励数据或向数据服务端发送响应数据。
●测试执行端实施方案
测试执行端是分区应用程序及测试框架所运行的硬件平台,其系统结构如图5所示,主要分为用户层和核心层两部分。其中核心层主要由测试系统的硬件执行平台和核心操作系统组成,而用户层则包含了分区应用程序和虚拟分区以及测试脚本等。
(1)核心层
核心层是测试系统的底层平台,为用户层提供可执行平台和配置信息的加载等功能,其主要分为以下几个部分:
1.硬件层
在本测试方法中,硬件层包含了被测分区应用程序运行的真实硬件平台。包括CPU、内存、总线、外部接口设备等。
2.模块支持层
模块支持层提供了访问和驱动硬件设备的统一接口,为核心操作系统服务。
3.核心操作系统
核心操作系统是软件系统的整体调度者,其管理了所有分区应用程序的资源,其中包括CPU时间片、内存区块等。核心操作系统通过读取模块配置信息文件和分区配置信息文件为每个分区应用程序分配相应的软/硬件资源。
(2)用户层
用户层包含了被测分区应用程序和虚拟分区。在测试过程中,虚拟分区通过核心操作系统提供的通讯接口与分区应用程序进行数据交互,对其施加激励并监控响应。位于虚拟分区内部的测试脚本执行程序则可按照指定的时间和顺序对分区应用程序执行测试用例。
虚拟分区是分区应用程序测试过程中的核心组件,虚拟分区可以模拟真实分区行为与分区应用程序进行数据交互,其主要结构如图6所示。
虚拟分区功能组件主要分为六个部分,其详细内容介绍如下:
(1)定时器
定时器组件为调度组件提供精确的时间信号,其需要按照指定的时间或周期为调度组件提供触发事件。
(2)任务调度
任务调度组件管理所有的脚本任务,其包含周期型或事件型的脚本任务。
(3)脚本管理
脚本管理组件用于封装现有的脚本解释器,提供统一接口供任务管理器调用。
(4)内存管理
内存管理组件负责管理测试过程中分区发送或分区接收数据的保存,同时支持脚本对数据和存储空间的控制。
(5)数据存储
数据存储组件负责管理测试执行过程中的所有需要保存下来的数据,包括某些事件的执行时间、执行结果等,还包括测试过程中的日志和错误信息。
(6)通讯接口
通讯接口组件负责访问其他分区和外部接口设备,将需要保存的内容传送到数据服务端。
●实施步骤
实施步骤如图8、图3所示,本发明一种面向嵌入式系统分区应用程序软件的仿真测试方法,该方法具体步骤如下:
步骤一:构建测试模型
(1)导入配置信息文件
将分区应用程序的分区配置信息文件及分区应用程序所在模块的模块配置信息文件导入到测试系统中。
(2)生成测试模型
测试系统通过分析分区应用程序及模块的配置信息文件,自动生成测试模型。测试模型使用AADL描述。
步骤二:根据测试模型,生成测试框架。
利用测试模型中的配置信息,测试系统可以得到整体系统的资源分配情况和被测软件的资源使用情况以及其与其他应用模块的数据交互情况。结合被测系统各层次的配置信息,测试系统进行以下一系列操作:
(1)根据与分区模型,生成虚拟分区代码;
根据测试模型中的分区模型信息,生成虚拟分区代码。其中根据测试模型的分区模型信息,生成指定数量的虚拟分区,根据分区的端口数量、端口类型和端口访问权限生成相应的端口创建、端口配置和端口删除代码。
(2)根据分区模型,为虚拟分区生成分区配置信息文件;
根据测试模型中的分区模型信息,生成虚拟分区配置信息文件。其中根据测试模型的分区模型信息,生成指定数量的配置信息文件,根据分区的端口数量、端口类型和端口访问权限在配置信息文件中做相应配置。
(3)根据模块模型和外部设备模型,生成测试模块配置信息文件;
根据模块模型和外部设备模型,生成测试模块配置信息文件。其中包括虚拟分区与被测分区应用程序的连接信息,虚拟分区与被测分区应用程序的内存地址、IO空间地址和CPU时间片信息。测试模块配置信息文件与原模块配置信息文件的区别在于前者会根据虚拟分区中数据激励和采集的要求,配置相应的端口和访问信息。
(4)根据分区应用程序的分区资源配置和模块资源配置信息,对整个测试系统的可调度性进行评估。
通过以上步骤后,被测系统的整体框架已经完成,接下来需要用户编写测试脚本,即进入软件测试中的测试用例环节。
步骤三:编写测试脚本,对测试过程中发生的指定事件编写响应动作。
编写测试脚本是实现完整的测试用例的主要过程。测试人员通过调用指定的API函数,编写测试脚本。测试脚本函数可以注册到框架中相应的测试事件中,其中包括:
(1)虚拟分区端口的数据收发,其中包括:
函数名称 | 功能 |
SendXXX | 在指定端口发送指定长度的数据 |
RecvXXX | 在指定端口接收指定长度的数据 |
RegRecv | 在指定端口注册相应的数据接收函数 |
IOCtrlXXX | 端口控制函数 |
(2)按一定周期或延时的触发控制,其中包括:
(3)帧格式或数据的解析运算,其中包括:
(4)数据的记录和传输
函数名称 | 功能 |
SaveLog | 保存至测试日志 |
SaveData | 保存指定数据 |
UploadData | 将指定数据传送至数据服务端 |
FlushData | 清除数据缓存 |
完成测试脚本后,脚本代码将与虚拟分区代码一同编译成可以加载的测试框架。
步骤四:加载测试框架,对分区应用程序实施测试。
完成以上工作后,测试人员在测试执行端运行测试框架。在整个测试框架构建工作完成后,各虚拟分区将按测试脚本指定的时序和过程进行自动化测试并记录测试过程中产生的各种数据,其中包括:
(1)分区应用程序的加载和卸载数据,包括触发时间、执行时间等;
(2)分区应用程序的调度数据,包括任务切换时间、分区应用的时间片长度等;
(3)分区应用程序间的通讯数据,包括各端口的标号、接收和发送时间以及数据帧内容等;
(4)分区应用程序执行过程中的异常和错误发生时间、错误状态等信息;
在测试过程中,虚拟分区将通过与数据服务端连接的高速总线(AFDX)将测试记录数据实时传送到数据服务端保存。
步骤五:收集测试数据并进行分析
测试过程结束后,测试开发端可以向数据服务端发送指令,将测试数据上传到测试开发端。
Claims (1)
1.一种面向嵌入式系统分区应用程序软件的仿真测试方法,其特征在于:该方法具体步骤如下:
步骤一:构建测试模型
为了能够准确详细地描述分区应用程序及其运行环境,需要利用分区应用程序的相关配置信息文件,构建测试模型;对于综合模块化嵌入式系统,有两类配置信息文件对系统的资源配置做出规划,其中:
(1)模块配置信息,用于配置整个模块化嵌入式系统中所执行的分区数量以及为每个分区应用程序所分配的内存地址、IO空间地址和CPU时间片硬件资源信息,以及分区端口之间的通讯连接信息;对于具有外部总线的硬件平台,还定义了哪些分区应用程序需要对外部总线进行访问,包括访问的接口类型、接口配置信息;
(2)分区配置信息,其定义了分区内进程和任务的数量、优先级、调度方式、执行时间,还记录了分区应用程序所需的内存空间数量、IO空间类型、端口访问权限和方式信息;
在本方法中,除了要导入分区应用程序自身的分区资源配置信息文件外,还需要导入与分区应用程序有关的模块资源配置信息文件;
利用分区配置信息文件和模块配置信息文件构建测试模型的方法如下:
(1)读取被测分区应用程序的分区配置信息文件,首先构建被测分区应用程序模型,根据配置信息中的分区内进程数量和端口访问信息,构建分区应用程序模型中的进程模型,为每个进程模型创建相应端口;根据分区应用程序的端口数量、端口类型、端口访问权限,构建分区应用程序模型中的相应端口,并将分区应用程序模型端口与进程模型端口相连接;
(2)读取与被测分区应用程序有数据交互的其他分区应用程序的分区配置信息文件,读取信息与构建模型内容与被测分区应用程序类似;
(3)读取模块配置信息文件,构建模块模型;通过模块配置信息中的分区端口连接信息,将模块模型中各分区模型的端口相连接;将模块配置信息文件中的内存地址、IO空间地址、CPU时间片信息记录在分区模型的属性中;将分区应用程序与外部总线的连接信息记录在外部设备模型中;
(4)将模块模型、分区模型和外部设备模型集成,构成测试模型;
步骤二:利用测试模型,生成测试框架
在测试模型中包含了分区应用程序的资源使用情况以及分区应用程序所在模块的资源使用情况,结合测试模型中的配置信息,能生成运行在测试硬件平台上的测试框架;本步骤包含以下操作:
(1)根据与分区模型,生成虚拟分区代码;
根据测试模型中的分区模型信息,生成虚拟分区代码;其中根据测试模型的分区模型信息,生成指定数量的虚拟分区,根据分区的端口数量、端口类型和端口访问权限生成相应的端口创建、端口配置和端口删除代码;
(2)根据分区模型,为虚拟分区生成分区配置信息文件;
根据测试模型中的分区模型信息,生成虚拟分区配置信息文件;其中根据测试模型的分区模型信息,生成指定数量的配置信息文件,根据分区的端口数量、端口类型和端口访问权限在配置信息文件中做相应配置;
(3)根据模块模型和外部设备模型,生成测试模块配置信息文件;
根据模块模型和外部设备模型,生成测试模块配置信息文件;其中包括虚拟分区与被测分区应用程序的连接信息,虚拟分区与被测分区应用程序的内存地址、IO空间地址和CPU时间片信息;测试模块配置信息文件与原模块配置信息文件的区别在于前者会根据虚拟分区中数据激励和采集的要求,配置相应的端口和访问信息;
(4)根据分区应用程序的分区资源配置和模块资源配置信息,对整个测试系统的可调度性进行评估;
通过以上步骤后,即得到完整的测试框架,接下来需要测试人员编写测试脚本,即进入软件测试中的测试用例构建环节;
步骤三:编写测试脚本
通过以上步骤建立了测试框架,但还没有实现完整的测试用例,用户通过周期调用及事件注册API函数,将已编写好的脚本注册到测试框架中相应的事件,其中包括:
(1)分区端口的数据收发;
(2)按预定周期及延时的触发控制;
(3)帧格式及数据的解析运算;
(4)数据的记录和传输;
完成测试脚本后,脚本代码将与虚拟分区代码一同编译成能加载的模块文件;
步骤四:对分区应用程序实施测试
完成以上工作后,测试人员与开发人员调试系统类似的方式模拟运行测试框架和分区应用程序;在整个测试框架构建工作完成后,各虚拟分区将按测试脚本指定的时序和过程进行自动化测试并记录测试过程中产生的各种数据,其中包括:
(1)分区应用程序的加载和卸载数据,包括触发时间、执行时间;
(2)分区应用程序的调度数据,包括任务切换时间、分区应用的时间片长度;
(3)分区应用程序间的通讯数据,包括各端口的标号、接收和发送时间以及数据帧内容;
(4)分区应用程序执行过程中的异常和错误发生时间、错误状态信息;
步骤五:收集测试数据并进行分析
在测试过程中,虚拟分区通过高速外总线将测试数据实时传送到数据服务端保存,在测试结束后,测试开发端从数据服务端获取测试数据并进行分析。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310140788.1A CN103235756B (zh) | 2013-04-22 | 2013-04-22 | 一种面向嵌入式系统分区应用程序软件的仿真测试方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310140788.1A CN103235756B (zh) | 2013-04-22 | 2013-04-22 | 一种面向嵌入式系统分区应用程序软件的仿真测试方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103235756A true CN103235756A (zh) | 2013-08-07 |
CN103235756B CN103235756B (zh) | 2015-11-04 |
Family
ID=48883801
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310140788.1A Active CN103235756B (zh) | 2013-04-22 | 2013-04-22 | 一种面向嵌入式系统分区应用程序软件的仿真测试方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103235756B (zh) |
Cited By (31)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103617117A (zh) * | 2013-11-15 | 2014-03-05 | 中国航空无线电电子研究所 | 一种基于航空嵌入式软件测试知识库系统 |
CN103995475A (zh) * | 2014-05-16 | 2014-08-20 | 北京航空航天大学 | 一种柔性嵌入式被测设备模拟器 |
CN104407977A (zh) * | 2014-12-08 | 2015-03-11 | 北京航空航天大学 | 基于模型检测的分阶段任务系统的自动化联调测试方法 |
CN105045666A (zh) * | 2015-07-09 | 2015-11-11 | 西北工业大学 | Windows操作系统环境下的分区调度方法 |
CN105117279A (zh) * | 2015-07-29 | 2015-12-02 | 西北工业大学 | Windows下的机载操作系统分区通信方法 |
CN105930154A (zh) * | 2016-04-19 | 2016-09-07 | 烽火通信科技股份有限公司 | 网络操作系统中建立并使用设备硬件模型的方法及装置 |
CN105955239A (zh) * | 2016-05-26 | 2016-09-21 | 上海添测智能科技有限公司 | 一种基于共享内存的通用测试平台快速构建方法 |
CN106055435A (zh) * | 2015-04-17 | 2016-10-26 | Hgst荷兰公司 | 在部署时验证存储介质 |
CN103544065B (zh) * | 2013-11-05 | 2017-02-22 | 中国航空工业集团公司西安飞机设计研究所 | 一种arinc653标准下的航电系统分区窗口调度方法 |
CN106445640A (zh) * | 2016-10-20 | 2017-02-22 | 南京南瑞继保电气有限公司 | 一种嵌入式虚拟装置运行方法和系统 |
CN106502882A (zh) * | 2016-09-23 | 2017-03-15 | 卡斯柯信号有限公司 | 适用于城轨软件自动化测试的测试脚本设计方法 |
CN107704376A (zh) * | 2016-08-11 | 2018-02-16 | 福建省天奕网络科技有限公司 | 游戏自动化测试方法及其系统 |
CN108089977A (zh) * | 2017-11-28 | 2018-05-29 | 维沃移动通信有限公司 | 一种应用程序的异常处理方法、装置及移动终端 |
CN105117279B (zh) * | 2015-07-29 | 2018-06-01 | 西北工业大学 | Windows下的机载操作系统分区通信方法 |
CN108319549A (zh) * | 2017-12-26 | 2018-07-24 | 上海科梁信息工程股份有限公司 | 一种测试系统及测试方法 |
CN108874696A (zh) * | 2017-12-29 | 2018-11-23 | 哈尔滨安天科技股份有限公司 | 多权限安全存储设备的自动测试方法、装置及电子设备 |
CN108920480A (zh) * | 2018-04-17 | 2018-11-30 | Oppo广东移动通信有限公司 | 一种文件系统异常的处理方法及设备、计算机存储介质 |
CN108962335A (zh) * | 2018-07-26 | 2018-12-07 | 郑州云海信息技术有限公司 | 一种内存循环注错的测试装置及方法 |
CN109085780A (zh) * | 2018-08-03 | 2018-12-25 | 厦门大学 | 一种基于Unity3D的实验仪器控制系统及方法 |
CN109254919A (zh) * | 2018-09-03 | 2019-01-22 | 吉林大学 | 一种嵌入式软件诊断系统及方法 |
CN109684148A (zh) * | 2018-11-08 | 2019-04-26 | 中国航空工业集团公司洛阳电光设备研究所 | 一种基于arinc653的机载嵌入式软件虚拟总线通信构建方法 |
CN109960623A (zh) * | 2017-12-26 | 2019-07-02 | 中国航空工业集团公司西安航空计算技术研究所 | 一种机载分区操作系统仿真器运行时监控方法 |
CN110515595A (zh) * | 2019-08-02 | 2019-11-29 | 中国航空无线电电子研究所 | 一种航空电子分布式管理系统的资源建模及管理方法 |
CN111124927A (zh) * | 2019-12-25 | 2020-05-08 | 中国航空工业集团公司西安飞机设计研究所 | 一种多分区机载软件的测试方法 |
CN111813671A (zh) * | 2020-07-03 | 2020-10-23 | 北京航空航天大学 | 一种ima软件仿真测试系统 |
CN111858326A (zh) * | 2020-07-13 | 2020-10-30 | 北京机电工程研究所 | 一种面向嵌入式实时操作系统的综合化集成测试方法 |
CN111966581A (zh) * | 2020-07-25 | 2020-11-20 | 芯发威达电子(上海)有限公司 | 一种多操作系统的移动端测试方法、系统和电子设备 |
CN112084113A (zh) * | 2020-09-16 | 2020-12-15 | 上海创景信息科技有限公司 | 基于嵌入式仿真验证软件的可配置自动化测试方法及系统 |
CN112330301A (zh) * | 2020-11-25 | 2021-02-05 | 杜瑞 | 一种人工智能开发平台和系统 |
CN112380108A (zh) * | 2020-07-10 | 2021-02-19 | 中国航空工业集团公司西安飞行自动控制研究所 | 一种面向分区空间隔离的全自动测试方法 |
CN113608879A (zh) * | 2021-08-27 | 2021-11-05 | 北京易智联科技有限公司 | 一种可重构的模拟器或测试设备架构设计方法 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6126328A (en) * | 1997-02-28 | 2000-10-03 | Oracle Corporation | Controlled execution of partitioned code |
CN101120323A (zh) * | 2005-02-18 | 2008-02-06 | S2技术有限公司 | 用于测试设备的系统和方法 |
CN102521123A (zh) * | 2011-11-24 | 2012-06-27 | 西安邮电学院 | 一种基于逻辑执行块的嵌入式软件测试插桩方法 |
-
2013
- 2013-04-22 CN CN201310140788.1A patent/CN103235756B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6126328A (en) * | 1997-02-28 | 2000-10-03 | Oracle Corporation | Controlled execution of partitioned code |
CN101120323A (zh) * | 2005-02-18 | 2008-02-06 | S2技术有限公司 | 用于测试设备的系统和方法 |
CN102521123A (zh) * | 2011-11-24 | 2012-06-27 | 西安邮电学院 | 一种基于逻辑执行块的嵌入式软件测试插桩方法 |
Cited By (53)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103544065B (zh) * | 2013-11-05 | 2017-02-22 | 中国航空工业集团公司西安飞机设计研究所 | 一种arinc653标准下的航电系统分区窗口调度方法 |
CN103617117B (zh) * | 2013-11-15 | 2016-03-23 | 中国航空无线电电子研究所 | 一种基于航空嵌入式软件测试知识库系统 |
CN103617117A (zh) * | 2013-11-15 | 2014-03-05 | 中国航空无线电电子研究所 | 一种基于航空嵌入式软件测试知识库系统 |
CN103995475A (zh) * | 2014-05-16 | 2014-08-20 | 北京航空航天大学 | 一种柔性嵌入式被测设备模拟器 |
CN103995475B (zh) * | 2014-05-16 | 2016-05-18 | 北京航空航天大学 | 一种柔性嵌入式被测设备模拟器 |
CN104407977A (zh) * | 2014-12-08 | 2015-03-11 | 北京航空航天大学 | 基于模型检测的分阶段任务系统的自动化联调测试方法 |
CN104407977B (zh) * | 2014-12-08 | 2016-06-01 | 北京航空航天大学 | 基于模型检测的分阶段任务系统的自动化联调测试方法 |
CN106055435B (zh) * | 2015-04-17 | 2019-08-06 | 西部数据技术公司 | 在部署时验证存储介质 |
CN106055435A (zh) * | 2015-04-17 | 2016-10-26 | Hgst荷兰公司 | 在部署时验证存储介质 |
CN105045666A (zh) * | 2015-07-09 | 2015-11-11 | 西北工业大学 | Windows操作系统环境下的分区调度方法 |
CN105045666B (zh) * | 2015-07-09 | 2018-06-01 | 西北工业大学 | Windows操作系统环境下的分区调度方法 |
CN105117279A (zh) * | 2015-07-29 | 2015-12-02 | 西北工业大学 | Windows下的机载操作系统分区通信方法 |
CN105117279B (zh) * | 2015-07-29 | 2018-06-01 | 西北工业大学 | Windows下的机载操作系统分区通信方法 |
CN105930154B (zh) * | 2016-04-19 | 2019-02-15 | 烽火通信科技股份有限公司 | 网络操作系统中建立并使用设备硬件模型的方法及装置 |
CN105930154A (zh) * | 2016-04-19 | 2016-09-07 | 烽火通信科技股份有限公司 | 网络操作系统中建立并使用设备硬件模型的方法及装置 |
CN105955239A (zh) * | 2016-05-26 | 2016-09-21 | 上海添测智能科技有限公司 | 一种基于共享内存的通用测试平台快速构建方法 |
CN105955239B (zh) * | 2016-05-26 | 2018-08-21 | 上海南土信息科技有限公司 | 一种基于共享内存的通用测试平台快速构建方法 |
CN107704376A (zh) * | 2016-08-11 | 2018-02-16 | 福建省天奕网络科技有限公司 | 游戏自动化测试方法及其系统 |
CN106502882B (zh) * | 2016-09-23 | 2019-02-01 | 卡斯柯信号有限公司 | 适用于城轨软件自动化测试的测试脚本设计方法 |
CN106502882A (zh) * | 2016-09-23 | 2017-03-15 | 卡斯柯信号有限公司 | 适用于城轨软件自动化测试的测试脚本设计方法 |
CN106445640B (zh) * | 2016-10-20 | 2019-06-18 | 南京南瑞继保电气有限公司 | 一种嵌入式虚拟装置运行方法和系统 |
CN106445640A (zh) * | 2016-10-20 | 2017-02-22 | 南京南瑞继保电气有限公司 | 一种嵌入式虚拟装置运行方法和系统 |
CN108089977A (zh) * | 2017-11-28 | 2018-05-29 | 维沃移动通信有限公司 | 一种应用程序的异常处理方法、装置及移动终端 |
CN108319549A (zh) * | 2017-12-26 | 2018-07-24 | 上海科梁信息工程股份有限公司 | 一种测试系统及测试方法 |
CN108319549B (zh) * | 2017-12-26 | 2021-09-14 | 上海科梁信息科技股份有限公司 | 一种测试系统及测试方法 |
CN109960623B (zh) * | 2017-12-26 | 2022-09-20 | 中国航空工业集团公司西安航空计算技术研究所 | 一种机载分区操作系统仿真器运行时监控方法 |
CN109960623A (zh) * | 2017-12-26 | 2019-07-02 | 中国航空工业集团公司西安航空计算技术研究所 | 一种机载分区操作系统仿真器运行时监控方法 |
CN108874696A (zh) * | 2017-12-29 | 2018-11-23 | 哈尔滨安天科技股份有限公司 | 多权限安全存储设备的自动测试方法、装置及电子设备 |
CN108920480A (zh) * | 2018-04-17 | 2018-11-30 | Oppo广东移动通信有限公司 | 一种文件系统异常的处理方法及设备、计算机存储介质 |
CN108920480B (zh) * | 2018-04-17 | 2021-09-03 | Oppo广东移动通信有限公司 | 一种文件系统异常的处理方法及设备、计算机存储介质 |
CN108962335A (zh) * | 2018-07-26 | 2018-12-07 | 郑州云海信息技术有限公司 | 一种内存循环注错的测试装置及方法 |
CN109085780A (zh) * | 2018-08-03 | 2018-12-25 | 厦门大学 | 一种基于Unity3D的实验仪器控制系统及方法 |
CN109085780B (zh) * | 2018-08-03 | 2021-06-04 | 厦门大学 | 一种基于Unity3D的实验仪器控制系统及方法 |
CN109254919B (zh) * | 2018-09-03 | 2022-03-29 | 吉林大学 | 一种嵌入式软件诊断系统及方法 |
CN109254919A (zh) * | 2018-09-03 | 2019-01-22 | 吉林大学 | 一种嵌入式软件诊断系统及方法 |
CN109684148B (zh) * | 2018-11-08 | 2022-03-15 | 中国航空工业集团公司洛阳电光设备研究所 | 一种基于arinc653的机载嵌入式软件虚拟总线通信构建方法 |
CN109684148A (zh) * | 2018-11-08 | 2019-04-26 | 中国航空工业集团公司洛阳电光设备研究所 | 一种基于arinc653的机载嵌入式软件虚拟总线通信构建方法 |
CN110515595A (zh) * | 2019-08-02 | 2019-11-29 | 中国航空无线电电子研究所 | 一种航空电子分布式管理系统的资源建模及管理方法 |
CN110515595B (zh) * | 2019-08-02 | 2024-02-02 | 中国航空无线电电子研究所 | 一种航空电子分布式管理系统的资源建模及管理方法 |
CN111124927B (zh) * | 2019-12-25 | 2023-05-23 | 中国航空工业集团公司西安飞机设计研究所 | 一种多分区机载软件的测试方法 |
CN111124927A (zh) * | 2019-12-25 | 2020-05-08 | 中国航空工业集团公司西安飞机设计研究所 | 一种多分区机载软件的测试方法 |
CN111813671A (zh) * | 2020-07-03 | 2020-10-23 | 北京航空航天大学 | 一种ima软件仿真测试系统 |
CN112380108A (zh) * | 2020-07-10 | 2021-02-19 | 中国航空工业集团公司西安飞行自动控制研究所 | 一种面向分区空间隔离的全自动测试方法 |
CN112380108B (zh) * | 2020-07-10 | 2023-03-14 | 中国航空工业集团公司西安飞行自动控制研究所 | 一种面向分区空间隔离的全自动测试方法 |
CN111858326B (zh) * | 2020-07-13 | 2023-09-22 | 北京机电工程研究所 | 一种面向嵌入式实时操作系统的综合化集成测试方法 |
CN111858326A (zh) * | 2020-07-13 | 2020-10-30 | 北京机电工程研究所 | 一种面向嵌入式实时操作系统的综合化集成测试方法 |
CN111966581A (zh) * | 2020-07-25 | 2020-11-20 | 芯发威达电子(上海)有限公司 | 一种多操作系统的移动端测试方法、系统和电子设备 |
CN111966581B (zh) * | 2020-07-25 | 2022-10-25 | 芯发威达电子(上海)有限公司 | 一种多操作系统的移动端测试方法、系统和电子设备 |
CN112084113A (zh) * | 2020-09-16 | 2020-12-15 | 上海创景信息科技有限公司 | 基于嵌入式仿真验证软件的可配置自动化测试方法及系统 |
CN112084113B (zh) * | 2020-09-16 | 2024-02-23 | 上海创景信息科技有限公司 | 基于嵌入式仿真验证软件的可配置自动化测试方法及系统 |
CN112330301A (zh) * | 2020-11-25 | 2021-02-05 | 杜瑞 | 一种人工智能开发平台和系统 |
CN113608879A (zh) * | 2021-08-27 | 2021-11-05 | 北京易智联科技有限公司 | 一种可重构的模拟器或测试设备架构设计方法 |
CN113608879B (zh) * | 2021-08-27 | 2024-02-09 | 北京易智联科技有限公司 | 一种可重构的模拟器或测试设备架构设计方法 |
Also Published As
Publication number | Publication date |
---|---|
CN103235756B (zh) | 2015-11-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103235756B (zh) | 一种面向嵌入式系统分区应用程序软件的仿真测试方法 | |
US8930912B2 (en) | Method and system for performing software verification | |
CN110309071B (zh) | 测试代码的生成方法及模块、测试方法及系统 | |
CN104750603B (zh) | 一种多核dsp软件仿真器及其物理层软件测试方法 | |
Xue et al. | MPIWiz: Subgroup reproducible replay of MPI applications | |
CN110768872B (zh) | 巡检方法、系统、装置、计算机设备和存储介质 | |
US20180285134A1 (en) | Emulation of hardware components | |
Waller | Performance benchmarking of application monitoring frameworks | |
US20090248390A1 (en) | Trace debugging in a hardware emulation environment | |
CN111813671A (zh) | 一种ima软件仿真测试系统 | |
CN114818565A (zh) | 基于python的仿真环境管理平台、方法、设备及介质 | |
CN113051040A (zh) | 一种异地远程分布式联合仿真方法 | |
RU2678717C1 (ru) | Способ построения программного комплекса автоматизации и визуализации тестирования встроенного программного обеспечения электронных устройств | |
CN109947535A (zh) | 面向虚拟机的故障注入套件 | |
Wang et al. | Automated test case generation for the Paxos single-decree protocol using a Coloured Petri Net model | |
CN106529304B (zh) | 一种安卓应用并发漏洞检测系统 | |
CN110569154B (zh) | 一种芯片接口功能测试方法、系统、终端及存储介质 | |
CN114896108A (zh) | 测试验证系统 | |
Engblom et al. | Testing Embedded Software using Simulated Hardware | |
Augusto et al. | RETORCH: an approach for resource-aware orchestration of end-to-end test cases | |
CN112199273B (zh) | 一种虚拟机压力/性能测试方法及系统 | |
Lutz et al. | Testing tools (software) | |
Cao et al. | Android unit test case generation based on the strategy of multi-dimensional coverage | |
Sundmark et al. | Monitored software components-a novel software engineering approach | |
CN110414097A (zh) | Ima系统资源配置验证方法和系统、计算机可读存储介质 |
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 |