CN109669363A - 一种基于状态行为树的自动化仿真测试优化方法 - Google Patents
一种基于状态行为树的自动化仿真测试优化方法 Download PDFInfo
- Publication number
- CN109669363A CN109669363A CN201811250669.0A CN201811250669A CN109669363A CN 109669363 A CN109669363 A CN 109669363A CN 201811250669 A CN201811250669 A CN 201811250669A CN 109669363 A CN109669363 A CN 109669363A
- Authority
- CN
- China
- Prior art keywords
- test
- node
- state
- behavior tree
- state behavior
- 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.)
- Pending
Links
Classifications
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B17/00—Systems involving the use of models or simulators of said systems
- G05B17/02—Systems involving the use of models or simulators of said systems electric
Landscapes
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Engineering & Computer Science (AREA)
- Automation & Control Theory (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明公开了一种基于状态行为树的自动化仿真测试优化方法。包括以下步骤:层次化的测试脚本设计;状态行为树模型的建立,包括状态行为树的初建和构成;基于最大公共子树的测试优化,包括状态行为树编码和最大公共子树求解;混合实时任务调度,包括任务调度模型的建立和任务调度策略的制定。本发明用于半实物和全数字相结合的仿真测试的优化,既能实现测试执行的自动化,提高测试效率,又能将半实物和全数字进行有机结合开展协同仿真测试,对测试执行进行优化,还能对两种类型仿真测试任务进行合理调度,提高仿真系统的性能。
Description
技术领域
本发明涉及一种计算机领域的仿真测试方法,尤其涉及一种基于状态行为树的自动化仿真测试优化方法。
背景技术
随着计算机软硬件技术的发展,仿真测试技术也获得了飞速的发展,且得到广泛的应用。它不仅可以作为软件研制最后阶段的测试与验证手段,还可以应用在前期的方案论证、设计等阶段。
目前比较成熟的仿真测试技术就工作原理的不同可以分为半实物仿真测试、全数字仿真测试两个大的类别。半实物仿真测试是一种硬件在环的仿真测试方法,能够通过真实的硬件接口与被测系统相连,提供被测系统运行的交联环境,适用于嵌入式系统配置项级和系统级的动态测试与验证,可实现对嵌入式系统进行闭环的黑盒、动态、非侵入的测试。全数字仿真测试环境提供了一个完整的虚拟目标机器硬件系统,包括了处理器、内存管理单元、存储器系统和一些外围设备,如:网络、串口、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代表目标为全数字仿真测试节点的测试执行任务队列,Q4代表来源为全数字仿真测试节点的测试反馈任务队列,四个队列的优先级关系为:Q1>Q2>Q3>Q4;
作为优选,所述步骤4.2的具体方法是:对于Q1和Q2两个高优先级的实时任务队列,彼此之间按照优先级分别进行抢占式调度,对于Q3和Q4两个低优先级的非实时任务队列,彼此之间按照优先级分别进行非抢占式调度;进一步,所述步骤4.2的具体方法中,引入实时负载因子RF,实时负载因子RF表示实时任务所占比重,通过RF计算Q1和Q2实时任务队列时间阈值,设定Q1和Q2在Q3和Q4非空的情况下,在时间阈值之后进行切换。
进一步,所述RF由下式获得:
所述时间阈值由下式获得:
TR=RF×(tproc,1+tproc,2+2×tswitch)。
本发明的有益效果在于:
本发明采用的状态行为树模型支持设计、调试、回溯等一系列测试相关工作,能够在任意节点下断点,或保存运行过程,事后单步跟踪调试、分析数据,根据每个节点的动作及事件,分别部署到不同的节点,在分布式协同仿真的机制下,实现透明、任意的访问系统内的节点,基于最大公共子树的测试优化方法实现了测试用例执行的复用与优化,混合实时任务调度方法支持强实时性的半实物仿真系统和弱实时性的全数字仿真系统分布式协同仿真的一体化集成仿真验证,降低了不同实时域的仿真测试节点产生的对系统性能的影响;本发明用于半实物和全数字相结合的仿真测试的优化,既能实现测试执行的自动化,提高测试效率,又能将半实物和全数字进行有机结合开展协同仿真测试,对测试执行进行优化,还能对两种类型仿真测试任务进行合理调度,提高仿真系统的性能。
附图说明
图1是本发明所述基于状态行为树的自动化仿真测试优化方法的总体流程示意图;
图2是本发明所述层次化的测试脚本设计的组织示意图;
图3是本发明所述状态行为树的节点组成示意图;
图4是本发明所述状态行为树中的子树示意图;
图5是本发明所述状态行为树的子树查找算法示意图;
图6是本发明所述混合实时任务调度的多优先级任务队列示意图。
具体实施方式
下面结合实施例和附图对本发明作进一步说明:
实施例:
如图1和图2所示,本发明所述基于状态行为树的自动化仿真测试优化方法,包括以下步骤:
步骤1:层次化的测试脚本设计;
步骤2:状态行为树模型的建立,包括以下步骤:
步骤2.1:状态行为树的初建;
步骤2.2:状态行为树的构成;
步骤3:基于最大公共子树的测试优化,包括以下步骤:
步骤3.1:状态行为树编码;
步骤3.2:最大公共子树求解;
步骤4:混合实时任务调度,包括以下步骤:
步骤4.1:任务调度模型的建立;
步骤4.2:任务调度策略的制定。
一般在自动化测试脚本中不仅包含了测试用例的逻辑描述,还包含了许多其他的测试需要用到的参数等数据,增加了测试脚本的复杂度,使得测试脚本不易理解和分析,增加了测试人员编写和修改测试脚本的工作难度,并且不易于脚本的维护。同时,考虑到全数字、半实物混合测试时测试业务的复杂性和多样性,测试时需要包含不同的测试控制功能,使用不同类型的测试公共函数。因此,采用将测试脚本按树形结构进行分层设计的策略,将测试脚本的设计分为测试环境模块TestEnv、测试接口模块TestSuite、和测试用例模块TestCase三层,以分离脚本逻辑与数据,方便测试人员对数据的配置和选择,有利于测试脚本的维护和管理,提高了测试执行的效率;测试环境模块TestEnv包括封装执行前所需要的测试环境、先决条件、对输入数据的要求和期望的输出、数据等信息;测试接口模块TestSuite包括封装测试执行的基本功能和测试流程控制,对复用函数提供API接口,在脚本编写时直接调用模块,以此加强测试套件的通用性,方便于测试人员二次开发;测试用例模块TestCase包括描述测试任务的具体实现和操作。通过测试脚本编译得到状态行为树,将脚本的执行以状态行为树的方式进行组织,支持设计、调试、回溯等一系列测试相关工作,能够在任意节点下断点,或保存运行过程,事后单步跟踪调试、分析数据,测试人员可以在更高的逻辑层(如:状态、事件、动作)规划、设计、部署和执行测试用例,因此能够在短时间内构建外部交联系统的主要逻辑,达到对被测系统深入、全面的自动化测试目的,并基于状态行为树实现基于最大公共子树的测试执行优化算法,可有效优化测试执行的过程,提高测试的效率,在测试任务的执行与调度阶段,针对四类不同任务的特点建立任务调度模型,采用混合实时域的任务调度策略进行有效地任务调度。
如图3所示,所述步骤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所示,有序标记树orderedlabeledtree OLT是一个无环连通图,表示为OLT=<V,E,Σ,L,r>,V是顶点集合,E是边集合,对于(x,y)∈E,表示x节点是y节点的父节点,Σ是标签集合,节点可以通过标签进行比较和排序,L是节点集合到标签集合的映射,L:V→Σ,同一父节点下的子节点(也叫兄弟节点)没有相同的标签,r代表根节点。状态行为树是一种OLT,所有节点都带有一个标记且任意一个节点的所有子节点是有序的(顺序按照树的层次结构从上到下,从左往右排序)。T'=<V',E',Σ',L',r'>是T=<V,E,Σ,L,r>的子树当且仅当 T'是T的子树,记为
如图5所示,所述步骤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),L有限时可以在线性时间内构建后缀树S;所述步骤3.2的具体方法是:根据编码创建的后缀树S,用绿色和红色分别表示状态行为树T和R的节点,可以证明,存在一个唯一对应的S中的绿色(或红色)叶子节点和T(或R)中的子树相对应,后序遍历生成树,标记S中的红色叶子节点,内部节点如果有至少一个孩子节点已被标记,则标记之;对于S的一个内部节点z,w(z)表示从根节点到z的路径上所有边上标记的字符串,它表示所有从z向下的所有叶子节点对应的公共后缀的最长公共前缀;对于绿色叶子节点l,记从根节点到l的所有标记的节点集合为A(l),如下计算deep(l):
可以证明若S的绿色叶子节点l满足len(l)≤deep(l),那么T和R有l对应的公共子树B。重复上述步骤即可找出所有的公共子树,其中最大公共子树即为我们所求满足最大复用度的状态行为树。
所述步骤3.2中,当某一测试用例执行流程或者部分执行流程已经存在相应的状态行为树描述时,搜索当前状态行为树中可以执行该测试用例全部或者部分流程的状态行为树子树,复用该测试结果,实现测试执行的复用和优化;对于每一个测试用例存在与之相对应的状态行为树,采用可以提供最高复用度的状态行为树,该状态行为树的确定方法如下:正要执行的测试用例状态行为树与已经执行完毕的状态行为树为最大公共子树,确定该最大公共子树为可以提供最高复用度的状态行为树。
如图6所示,所述步骤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代表目标为全数字仿真测试节点的测试执行任务队列,Q4代表来源为全数字仿真测试节点的测试反馈任务队列,四个队列的优先级关系为:Q1>Q2>Q3>Q4;测试任务到来之后根据测试任务的不同类型加入相应的任务队列,相同队列的任务处理时间是固定的,记为tproc,i,1≤i≤4,任务抢占花费的时间也是固定的,记为tswitch;
所述步骤4.2的具体方法是:对于Q1和Q2两个高优先级的实时任务队列,彼此之间按照优先级分别进行抢占式调度,对于Q3和Q4两个低优先级的非实时任务队列,彼此之间按照优先级分别进行非抢占式调度,这样能确保实时任务的实时性。
所述步骤4.2的具体方法中,为了确保调度的公平性,防止Q1和Q2一直抢占,导致Q3和Q4饥饿,引入实时负载因子RF,显然,实时负载因子RF表示实时任务所占比重,通过RF计算Q1和Q2实时任务队列时间阈值TR=RF×(tproc,1+tproc,2+2×tswitch),为了确保Q3和Q4不会因为优先级低而一直饥饿,设定Q1和Q2在Q3和Q4非空的情况下,必须在时间阈值之后进行切换,这样确保了调度的公平性,并且对实时任务的实时性影响最小。采用这样的策略,实时任务队列Q1和Q2拥有较高优先级,能保证系统的整体性能,特别是半实物仿真测试节点的实时性要求,在加入等待时间阈值机制之后,队列Q3和Q4能保证任务的最低平均等待时间,从而确保全数字仿真测试节点的功能仿真,并且保证了公平性。
说明:上述内容与图1-图6的内容不是完全相同,但其含义相互对应,之所以不同,一方面是因为需要把技术方案内容表达得更加准确,另一方面是为了在图中采用本行业常用的示意图表达方式。
上述实施例只是本发明的较佳实施例,并不是对本发明技术方案的限制,只要是不经过创造性劳动即可在上述实施例的基础上实现的技术方案,均应视为落入本发明专利的权利保护范围内。
Claims (8)
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+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。
5.根据权利要求4所述的基于状态行为树的自动化仿真测试优化方法,其特征在于:所述步骤3.2中,当某一测试用例执行流程或者部分执行流程已经存在相应的状态行为树描述时,搜索当前状态行为树中可以执行该测试用例全部或者部分流程的状态行为树子树,复用该测试结果,实现测试执行的复用和优化;对于每一个测试用例存在与之相对应的状态行为树,采用可以提供最高复用度的状态行为树,该状态行为树的确定方法如下:正要执行的测试用例状态行为树与已经执行完毕的状态行为树为最大公共子树,确定该最大公共子树为可以提供最高复用度的状态行为树。
6.根据权利要求1所述的基于状态行为树的自动化仿真测试优化方法,其特征在于:所述步骤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代表目标为全数字仿真测试节点的测试执行任务队列,Q4代表来源为全数字仿真测试节点的测试反馈任务队列,四个队列的优先级关系为:Q1>Q2>Q3>Q4;
所述步骤4.2的具体方法是:对于Q1和Q2两个高优先级的实时任务队列,彼此之间按照优先级分别进行抢占式调度,对于Q3和Q4两个低优先级的非实时任务队列,彼此之间按照优先级分别进行非抢占式调度。
7.根据权利要求6所述的基于状态行为树的自动化仿真测试优化方法,其特征在于:所述步骤4.2的具体方法中,引入实时负载因子RF,实时负载因子RF表示实时任务所占比重,通过RF计算Q1和Q2实时任务队列时间阈值,设定Q1和Q2在Q3和Q4非空的情况下,在时间阈值之后进行切换。
8.根据权利要求7所述的基于状态行为树的自动化仿真测试优化方法,其特征在于:所述RF由下式获得:
所述时间阈值由下式获得:
TR=RF×(tproc,1+tproc,2+2×tswitch)。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811250669.0A CN109669363A (zh) | 2018-10-25 | 2018-10-25 | 一种基于状态行为树的自动化仿真测试优化方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811250669.0A CN109669363A (zh) | 2018-10-25 | 2018-10-25 | 一种基于状态行为树的自动化仿真测试优化方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN109669363A true CN109669363A (zh) | 2019-04-23 |
Family
ID=66142452
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811250669.0A Pending CN109669363A (zh) | 2018-10-25 | 2018-10-25 | 一种基于状态行为树的自动化仿真测试优化方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109669363A (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112882930A (zh) * | 2021-02-04 | 2021-06-01 | 网易(杭州)网络有限公司 | 自动化测试方法、装置、存储介质及电子设备 |
CN113010426A (zh) * | 2021-03-19 | 2021-06-22 | 汇链通供应链科技(上海)有限公司 | 基于数据回溯的产品性能分析方法及装置 |
CN113343617A (zh) * | 2021-05-27 | 2021-09-03 | 长沙海格北斗信息技术有限公司 | 软硬件协同仿真方法 |
CN113420520A (zh) * | 2021-06-25 | 2021-09-21 | 海光信息技术股份有限公司 | 集成电路装置设计仿真方法、装置、设备和可读存储介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104155879A (zh) * | 2013-05-14 | 2014-11-19 | 洛克威尔自动控制技术股份有限公司 | 用于自动控制系统的仿真的系统和方法 |
CN104298122A (zh) * | 2014-02-20 | 2015-01-21 | 郑州宇通客车股份有限公司 | 一种用于acc系统开发的硬件在环试验系统及试验方法 |
CN104536303A (zh) * | 2014-12-11 | 2015-04-22 | 中国航空工业集团公司第六三一研究所 | 一种故障注入方法 |
CN108614443A (zh) * | 2016-12-12 | 2018-10-02 | 中国航空工业集团公司西安航空计算技术研究所 | Phm系统模型开发和验证平台设计方法 |
CN108646586A (zh) * | 2018-03-20 | 2018-10-12 | 重庆邮电大学 | 一种智能网联汽车在环仿真、测试验证系统与方法 |
-
2018
- 2018-10-25 CN CN201811250669.0A patent/CN109669363A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104155879A (zh) * | 2013-05-14 | 2014-11-19 | 洛克威尔自动控制技术股份有限公司 | 用于自动控制系统的仿真的系统和方法 |
CN104298122A (zh) * | 2014-02-20 | 2015-01-21 | 郑州宇通客车股份有限公司 | 一种用于acc系统开发的硬件在环试验系统及试验方法 |
CN104536303A (zh) * | 2014-12-11 | 2015-04-22 | 中国航空工业集团公司第六三一研究所 | 一种故障注入方法 |
CN108614443A (zh) * | 2016-12-12 | 2018-10-02 | 中国航空工业集团公司西安航空计算技术研究所 | Phm系统模型开发和验证平台设计方法 |
CN108646586A (zh) * | 2018-03-20 | 2018-10-12 | 重庆邮电大学 | 一种智能网联汽车在环仿真、测试验证系统与方法 |
Non-Patent Citations (2)
Title |
---|
YUNQIANG YAN等: "Collaborative Simulation Testing with State Behavior Tree", 《 2018 IEEE INTERNATIONAL CONFERENCE ON SOFTWARE QUALITY, RELIABILITY AND SECURITY COMPANION (QRS-C)》 * |
高峰等: "基于分层模型的半实物仿真测试平台设计", 《计算机工程》 * |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112882930A (zh) * | 2021-02-04 | 2021-06-01 | 网易(杭州)网络有限公司 | 自动化测试方法、装置、存储介质及电子设备 |
CN112882930B (zh) * | 2021-02-04 | 2023-09-26 | 网易(杭州)网络有限公司 | 自动化测试方法、装置、存储介质及电子设备 |
CN113010426A (zh) * | 2021-03-19 | 2021-06-22 | 汇链通供应链科技(上海)有限公司 | 基于数据回溯的产品性能分析方法及装置 |
CN113010426B (zh) * | 2021-03-19 | 2022-08-23 | 汇链通产业供应链数字科技(厦门)有限公司 | 基于数据回溯的产品性能分析方法及装置 |
CN113343617A (zh) * | 2021-05-27 | 2021-09-03 | 长沙海格北斗信息技术有限公司 | 软硬件协同仿真方法 |
CN113343617B (zh) * | 2021-05-27 | 2022-07-22 | 长沙金维信息技术有限公司 | 软硬件协同仿真方法 |
CN113420520A (zh) * | 2021-06-25 | 2021-09-21 | 海光信息技术股份有限公司 | 集成电路装置设计仿真方法、装置、设备和可读存储介质 |
CN113420520B (zh) * | 2021-06-25 | 2024-01-23 | 海光信息技术股份有限公司 | 集成电路装置设计仿真方法、装置、设备和可读存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109669363A (zh) | 一种基于状态行为树的自动化仿真测试优化方法 | |
CN106649103B (zh) | 一种安卓应用程序自动化黑盒测试的方法及系统 | |
CN107844424B (zh) | 基于模型的测试系统及方法 | |
Riley et al. | The ns-3 network simulator | |
Ulrich | Exclusive simulation of activity in digital networks | |
CN102375778B (zh) | 实现数字信号处理器自动测试的方法及系统 | |
CN102662644B (zh) | 一种使用流程图生成测试案例的方法 | |
Beck et al. | A simulation framework for virtual network embedding algorithms | |
CN111290947B (zh) | 一种基于对抗判别的跨软件缺陷预测方法 | |
CN101853201A (zh) | 一种基于着色petri网的软件并行测试方法及工具 | |
CN104050087A (zh) | 一种基于uml模型的软件架构正确性验证方法 | |
CN100437513C (zh) | 实现自动测试的方法与系统 | |
JP2012123789A (ja) | アプリケーション性能試験のための並列作業負荷シミュレーション | |
CN105760296A (zh) | 自动化测试控制方法、装置及终端 | |
CN105302719A (zh) | 一种变异测试方法及装置 | |
CN114186693B (zh) | 一种量子操作系统的调度方法、系统、装置及计算机介质 | |
CN106528425A (zh) | 一种用于微处理器的平台化插件自动测试方法 | |
Raju et al. | Automatic conversion of CSP to CTJ, JCSP, and CCSP | |
CN102722601A (zh) | 数控系统的模型转换形式化语义集成框架的实现方法 | |
CN114757135A (zh) | 一种基于需求驱动验证的可编程逻辑器件验证方法及系统 | |
CN105159746B (zh) | 面向容错组合web服务的可靠性仿真工具 | |
Wainer et al. | DEMES: a Discrete-Event methodology for Modeling and simulation of Embedded Systems | |
CN102236068B (zh) | 一种芯片测试的方法和装置 | |
Han et al. | Automated warship software testing system based on loadrunner automation API | |
CN111159032A (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 | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20190423 |
|
WD01 | Invention patent application deemed withdrawn after publication |