一种基于状态行为树的自动化仿真测试优化方法技术

技术编号:20943563 阅读:32 留言:0更新日期:2019-04-24 02:01
本发明专利技术公开了一种基于状态行为树的自动化仿真测试优化方法。包括以下步骤:层次化的测试脚本设计;状态行为树模型的建立,包括状态行为树的初建和构成;基于最大公共子树的测试优化,包括状态行为树编码和最大公共子树求解;混合实时任务调度,包括任务调度模型的建立和任务调度策略的制定。本发明专利技术用于半实物和全数字相结合的仿真测试的优化,既能实现测试执行的自动化,提高测试效率,又能将半实物和全数字进行有机结合开展协同仿真测试,对测试执行进行优化,还能对两种类型仿真测试任务进行合理调度,提高仿真系统的性能。

An Optimal Method for Automated Simulation Testing Based on State Behavior Tree

The invention discloses an optimization method of automatic simulation test based on state behavior tree. It includes the following steps: hierarchical test script design; state behavior tree model establishment, including the initial construction and composition of state behavior tree; test optimization based on maximum common subtree, including state behavior tree coding and maximum common subtree solution; hybrid real-time task scheduling, including task scheduling model establishment and task scheduling strategy formulation. The invention is used for optimization of simulation test combining hardware-in-the-loop and full-digital. It can not only realize automation of test execution, improve test efficiency, but also organically combine hardware-in-the-loop and full-digital to carry out cooperative simulation test, optimize test execution, rationally schedule two types of simulation test tasks and improve the performance of simulation system.

【技术实现步骤摘要】
一种基于状态行为树的自动化仿真测试优化方法
本专利技术涉及一种计算机领域的仿真测试方法,尤其涉及一种基于状态行为树的自动化仿真测试优化方法。
技术介绍
随着计算机软硬件技术的发展,仿真测试技术也获得了飞速的发展,且得到广泛的应用。它不仅可以作为软件研制最后阶段的测试与验证手段,还可以应用在前期的方案论证、设计等阶段。目前比较成熟的仿真测试技术就工作原理的不同可以分为半实物仿真测试、全数字仿真测试两个大的类别。半实物仿真测试是一种硬件在环的仿真测试方法,能够通过真实的硬件接口与被测系统相连,提供被测系统运行的交联环境,适用于嵌入式系统配置项级和系统级的动态测试与验证,可实现对嵌入式系统进行闭环的黑盒、动态、非侵入的测试。全数字仿真测试环境提供了一个完整的虚拟目标机器硬件系统,包括了处理器、内存管理单元、存储器系统和一些外围设备,如:网络、串口、CAN接口、1553B接口等,从硬件模拟的角度看来,它对硬件组件的建模足够详细,精确地模拟了目标硬件的功能,达到了全系统模拟的目的;从操作系统及其支持的应用程序角度看来,它们在这个虚拟的“机器”上运行,它提供了完全的运行环境,全数字仿真环境解决因硬件环境限制无法验证的问题,如:寄存器故障、存储器故障等。上述两种传统的仿真测试方法各有优势和不足,为了结合各自的优势,常常结合两种方式开展测试验证工作,但存在以下问题:(1)无论半实物还是全数字仿真测试环境,测试人员都需要人工描述软件动作行为和编辑激励数据帧,并手动输入的测试平台执行,会使测试人员陷入冗杂的软件动作行为描述、激励数据帧编辑、测试执行等“细枝末节”中。而很难站在顶层针对系统级业务逻辑设计测试用例,导致设计的测试用例缺乏全局性和总体性,既增加了测试人员的工作量,又难以确保测试的充分性,严重降低了测试的效率。(2)在开展测试验证时,测试执行过程之间存在大量部分重复的情况,增加了测试执行的时间成本,降低了测试的效率。(3)半实物仿真测试由于硬件在环的特点实时性高,而全数字仿真测试由于需要进行指令翻译、主要面向功能仿真实时性低,导致不同测试任务的实时性要求差别较大,单一的测试调度策略难以满足要求。因此,需要专利技术一种新的自动化仿真测试优化方法,用于半实物和全数字相结合的仿真测试的优化,既能实现测试执行的自动化,提高测试效率,又能将半实物和全数字进行有机结合开展协同仿真测试,对测试执行进行优化,还能对两种类型仿真测试任务进行合理调度,提高仿真系统的性能。
技术实现思路
本专利技术的目的就在于为了解决上述问题而提供一种基于状态行为树的自动化仿真测试优化方法。本专利技术通过以下技术方案来实现上述目的:一种基于状态行为树的自动化仿真测试优化方法,包括以下步骤:步骤1:层次化的测试脚本设计;步骤2:状态行为树模型的建立,包括以下步骤:步骤2.1:状态行为树的初建;步骤2.2:状态行为树的构成;步骤3:基于最大公共子树的测试优化,包括以下步骤:步骤3.1:状态行为树编码;步骤3.2:最大公共子树求解;步骤4:混合实时任务调度,包括以下步骤:步骤4.1:任务调度模型的建立;步骤4.2:任务调度策略的制定。作为优选,所述步骤1中,将测试脚本设计分为测试环境模块、测试接口模块和测试用例模块三层,以分离脚本逻辑与数据,所述测试环境模块包含封装测试执行前所需要的测试环境、先决条件、对输入数据的要求和期望的输出、数据信息;所述测试接口模块包含封装测试执行的基本功能和测试流程控制信息,并对复用函数提供API接口;所述测试用例模块用于描述测试任务的具体实现和操作。作为优选,所述步骤2.1中,所述状态行为树是一个四元组T=<V,E,L,N>,V={v1,v2,...,vm},表示顶点集合,并且V=S∪B,S={s1,s2,...,sj},表示测试用例状态集合,B={b1,b2,...,bk},表示行为集合;对于任一顶点vi表示测试用例流程中的一个状态(vi∈S)或者行为(vi∈B),m是正整数,表示测试流程中状态和行为顶点的总个数(m=j+k);E={e1,e2,...,ep},表示边的集合,其中任一一条边ei的两端分别连着一个状态行为顶点,表示两个状态行为之间的先后或者依赖关系;L={l1,l2,...,lt},表示标签的集合,每个节点都有相应的标签名称,表示状态节点的状态名称或者行为节点的行为名称;状态行为树具有层次结构,N表示状态行为树的总层数;所述步骤2.2中,对于状态行为树上的任意一边及其两个端点表示为vaeivb,表示va代表的测试行为或者状态先于vb代表的测试行为或者状态,或者va代表的测试状态依赖于vb代表的测试行为;树的每个节点代表一个测试动作或者测试状态,状态行为树节点的类型依据测试场景的不同可以扩展;每个状态节点代表测试执行中的一个离散状态,每个行为节点代表测试执行的动作,并指定了测试动作执行时的相关参数。作为优选,所述步骤3.1的具体方法是:以前序遍历方式得到状态行为树树T和R的编码code(T)和code(R),编码方式如下:前序遍历每个节点,遍历过程中若从某个节点向上回溯一次则加入一个回溯标记#,直至遍历结束;由code(T)及code(R)得到C=code(T).$.code(R).$,|C|=2(n+m+1),$为分隔符;以此编码为基础,生成对应编码的后缀树S,S具有O(n)个节点和2(n+m+1)个叶子节点,编号从1至2(n+m+1);所述步骤3.2的具体方法是:根据编码创建的后缀树S,用绿色和红色分别表示状态行为树T和R的节点,后序遍历生成树,标记S中的红色叶子节点,内部节点如果有至少一个孩子节点已被标记,则标记之;对于S的一个内部节点z,w(z)表示从根节点到z的路径上所有边上标记的字符串,它表示所有从z向下的所有叶子节点对应的公共后缀的最长公共前缀;对于绿色叶子节点l,记从根节点到l的所有标记的节点集合为A(l),若S的绿色叶子节点l满足len(l)≤deep(l),那么T和R有l对应的公共子树B。作为优选,所述步骤3.2中,当某一测试用例执行流程或者部分执行流程已经存在相应的状态行为树描述时,搜索当前状态行为树中可以执行该测试用例全部或者部分流程的状态行为树子树,复用该测试结果,实现测试执行的复用和优化;对于每一个测试用例存在与之相对应的状态行为树,采用可以提供最高复用度的状态行为树,该状态行为树的确定方法如下:正要执行的测试用例状态行为树与已经执行完毕的状态行为树为最大公共子树,确定该最大公共子树为可以提供最高复用度的状态行为树。作为优选,所述步骤4.1的具体方法包括以下步骤:步骤4.1.1:将测试任务按照任务来源和目标分为四类任务:(1)目标为半实物仿真测试节点的测试执行任务;(2)来源为半实物仿真测试节点的测试反馈任务;(3)目标为全数字仿真测试节点的测试执行任务;(4)来源为全数字仿真测试节点的测试反馈任务;步骤4.1.2:确定上述(1)和(3)两类任务的优先级高于(2)和(4)两类任务;步骤4.1.3:针对四类任务的特点,建立四个测试任务循环缓冲队列:Q1,Q2,Q3,Q4,Q1代表目标为半实物仿真测试节点的测试执行任务队列,Q2代表来源为半实物仿真测试节点的测试反馈任务队列,Q3代表本文档来自技高网
...

【技术保护点】
1.一种基于状态行为树的自动化仿真测试优化方法,其特征在于:包括以下步骤:步骤1:层次化的测试脚本设计;步骤2:状态行为树模型的建立,包括以下步骤:步骤2.1:状态行为树的初建;步骤2.2:状态行为树的构成;步骤3:基于最大公共子树的测试优化,包括以下步骤:步骤3.1:状态行为树编码;步骤3.2:最大公共子树求解;步骤4:混合实时任务调度,包括以下步骤:步骤4.1:任务调度模型的建立;步骤4.2:任务调度策略的制定。

【技术特征摘要】
1.一种基于状态行为树的自动化仿真测试优化方法,其特征在于:包括以下步骤:步骤1:层次化的测试脚本设计;步骤2:状态行为树模型的建立,包括以下步骤:步骤2.1:状态行为树的初建;步骤2.2:状态行为树的构成;步骤3:基于最大公共子树的测试优化,包括以下步骤:步骤3.1:状态行为树编码;步骤3.2:最大公共子树求解;步骤4:混合实时任务调度,包括以下步骤:步骤4.1:任务调度模型的建立;步骤4.2:任务调度策略的制定。2.根据权利要求1所述的基于状态行为树的自动化仿真测试优化方法,其特征在于:所述步骤1中,将测试脚本设计分为测试环境模块、测试接口模块和测试用例模块三层,以分离脚本逻辑与数据,所述测试环境模块包含封装测试执行前所需要的测试环境、先决条件、对输入数据的要求和期望的输出、数据信息;所述测试接口模块包含封装测试执行的基本功能和测试流程控制信息,并对复用函数提供API接口;所述测试用例模块用于描述测试任务的具体实现和操作。3.根据权利要求1所述的基于状态行为树的自动化仿真测试优化方法,其特征在于:所述步骤2.1中,所述状态行为树是一个四元组T=<V,E,L,N>,V={v1,v2,...,vm},表示顶点集合,并且V=S∪B,S={s1,s2,...,sj},表示测试用例状态集合,B={b1,b2,...,bk},表示行为集合;对于任一顶点vi表示测试用例流程中的一个状态(vi∈S)或者行为(vi∈B),m是正整数,表示测试流程中状态和行为顶点的总个数(m=j+k);E={e1,e2,...,ep},表示边的集合,其中任一一条边ei的两端分别连着一个状态行为顶点,表示两个状态行为之间的先后或者依赖关系;L={l1,l2,...,lt},表示标签的集合,每个节点都有相应的标签名称,表示状态节点的状态名称或者行为节点的行为名称;状态行为树具有层次结构,N表示状态行为树的总层数;所述步骤2.2中,对于状态行为树上的任意一边及其两个端点表示为vaeivb,表示va代表的测试行为或者状态先于vb代表的测试行为或者状态,或者va代表的测试状态依赖于vb代表的测试行为;树的每个节点代表一个测试动作或者测试状态,状态行为树节点的类型依据测试场景的不同可以扩展;每个状态节点代表测试执行中的一个离散状态,每个行为节点代表测试执行的动作,并指定了测试动作执行时的相关参数。4.根据权利要求1所述的基于状态行为树的自动化仿真测试优化方法,其特征在于:所述步骤3.1的具体方法是:以前序遍历方式得到状态行为树树T和R的编码code(T)和code(R),编码方式如下:前序遍历每个节点,遍历过程中若从某个节点向上回溯一次则加入一个回溯标记#,直至遍历结束;由code(T)及code(R)得到C=code(T).$.code(R).$,|C|=2(n+m+1),$为分隔符;以此编码为基础,生成对应编码的后缀树S,S具有O(n)个节点和2(n+m...

【专利技术属性】
技术研发人员:马思友高峰颜运强邓霏李春雷邹伟仵林博
申请(专利权)人:中国工程物理研究院计算机应用研究所
类型:发明
国别省市:四川,51

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1