一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

基于数据与关键字驱动的软件测试用例自动执行方法

2022-10-13 02:56:14 来源:中国专利 TAG:


1.本发明涉及一种软件测试用例自动执行方法,具体涉及一种基于数据与关键字驱动的嵌入式软件测试用例自动执行方法,属于图形化建模领域。


背景技术:

2.随着计算机技术的飞速发展,嵌入式软件的复杂度越来越高,对软件的质量要求也越来越严格,一个微小的错误就能造成巨大的损失,因此,如何提高嵌入式软件的测试效率已经被提上日程。
3.基于模型测试是属于软件测试领域的一种测试方法。按照此方法,软件的测试用例可以完全或部分的利用模型自动生成,大大的减轻了测试人员的工作负担。在嵌入式软件测试的工作中,准备测试数据的工作量巨大,而且工作难度也极大,因此,为保证嵌入式软件测试用例的准确性、完整性,采用测试数据驱动测试用例的生成不失为一个好办法,而专利号为2020100906350的《一种基于数据驱动及多种覆盖策略的软件测试用例生成方法、系统及存储介质》公开了采用测试数据驱动生成的测试用例的方法,但由于嵌入式软件的复杂性,为尽可能的减少人的干预,做到更高效可靠的测试,测试用例的自动执行也被关注起来。测试用例若要实现自动执行,就必须得到其内部执行逻辑,这对测试人员有着极高的要求,且会增大测试成本和测试风险;在测试人员不了解其内部执行逻辑的情况下,完成测试用例的自动执行就成为了的现阶段的难题。
4.因此,如何能够实现嵌入式软件测试用例的自动执行成为了现阶段的最大问题。


技术实现要素:

5.本发明为了解决由于嵌入式软件的复杂性导致嵌入式软件的测试用例测试准确率不高,测试效果不好的问题,进而提出了一种基于数据与关键字驱动的软件测试用例自动执行方法。
6.本发明采取的技术方案是:
7.它包括以下步骤:
8.s1、建立模型工程;
9.s2、初始化模型工程的系统资源,并根据初始化后的系统资源生成具体测试数据;
10.s3、根据建立的模型工程和生成的具体测试数据建立软件的测试模型;
11.s4、对所述测试模型进行约束设计;
12.s5、将驱动测试用例自动执行的关键字与所述测试模型进行绑定;
13.s6、配置测试用例的覆盖策略,利用s5得到的绑定关键字后的测试模型根据具体测试数据生成固定格式的测试用例;
14.s7、对s6中生成的固定格式的测试用例进行筛选、确认,将筛选、确认后得到的测试用例进行整合,作为测试用例执行集;
15.s8、将测试用例执行集与测试环境绑定连接,绑定成功后用每个测试环境遍历测
试用例执行集;
16.s9、利用s5中绑定的关键字驱动测试用例执行集内的每个测试用例自动化执行。
17.优选的,所述s2中初始化模型工程的系统资源,并根据初始化后的系统资源生成具体测试数据;具体过程为:
18.s21、系统资源包括数据、时间约束、测试用例的测试环境;
19.设置数据的参数,所述参数包括数据格式、数据类型、数据精度、数据范围;
20.所述数据格式包括单个数据、结构数据、集合数据;
21.s22、根据数据的参数生成具体测试数据;
22.所述具体测试数据的生成包括以下四种情况:
[0023]ⅰ、设置数据的取值域,并分别设置数据的有效类和数据的无效类;
[0024]ⅱ、通过设置的数据取值域或识别逻辑运算表达式,自动根据等价类、边界值的算法抽样生成数据有效值和数据无效值;
[0025]ⅲ、生成连续数据;
[0026]ⅳ、采用五值法生成时间约束,所述五值法包括左边界-精度,左边界,中间值,右边界,右边界 精度值。
[0027]
优选的,所述s3中建立的测试模型为可嵌套的活动图;
[0028]
所述活动图的图元包括动作节点、动作流、开始节点、结束节点、判断节点、定时器节点、并发开始节点和并发结束节点。
[0029]
优选的,所述s3中建立的测试模型的测试路径包括:
[0030]
(1)普通路径:没有回路,没有判断节点,没有并发的路径;
[0031]
(2)循环路径:带回路的路径;
[0032]
(3)并发路径:指在同一时间间隔内有两个或两个以上的活动执行;
[0033]
(4)约束性函数表达式:在测试模型的判断节点上进行逻辑运算、算数运算、时间约束与数据运算、不同类型时间约束运算。
[0034]
优选的,所述s4中约束设计包含数据约束设计、预置条件、时间约束和时序逻辑关系。
[0035]
优选的,所述s5中关键字包括关键字函数名称、关键字函数的参数、关键字函数的类型;所述关键字函数的类型包括业务层关键字、逻辑层关键字、执行层关键字。
[0036]
优选的,所述s5中将驱动测试用例自动执行的关键字与所述测试模型进行绑定,具体过程为:
[0037]
将测试模型活动图的每个图元均与一个或多个关键字进行绑定,同一图元绑定的多个关键字之间用半角的分号分隔。
[0038]
优选的,所述s9中利用s5中绑定的关键字驱动测试用例执行集内的每个测试用例自动化执行,具体过程为:
[0039]
s91、利用s5中绑定的关键字驱动测试用例执行集内的每个测试用例生成对应的测试脚本,测试脚本为测试用例对应关键字函数调用及其参数值显示;
[0040]
s92、将测试脚本发送至测试系统内相应的测试环境;
[0041]
s93、测试环境自动执行测试脚本;
[0042]
s94、测试系统实时记录并动态显示测试脚本执行情况,即可得到对应测试用例的
执行情况;
[0043]
s95、执行完毕后,测试环境将执行结果反馈给测试系统;
[0044]
s96、测试系统分析并更新测试脚本的执行结果,并输出。
[0045]
优选的,所述s91中利用s5中绑定的关键字驱动测试用例执行集内的每个测试用例生成对应的测试脚本,具体过程为:
[0046]
s911、对关键字函数进行解析;
[0047]
s912、将解析后的关键字按前后顺序输出测试用例;
[0048]
s913、将连续帧类型的测试数据的输出参数赋多个值;
[0049]
s914、将关键字的参数值取值为相应测试数据的取值,没有取值的关键字原样输出,得到测试脚本。
[0050]
优选的,所述s911中对关键字函数进行解析包括以下三部分:
[0051]
(1)测试所要执行的关键操作,即实际操作的一些关键动作;
[0052]
(2)关键动作所要触发的被操作对象,即被操作的控件元素;
[0053]
(3)测试时所必须提供的数据,即测试数据。
[0054]
有益效果:
[0055]
本发明先对嵌入式软件建立测试模型,在对测试模型进行约束设计,将用于驱动测试用例自动执行的关键字与测试模型进行绑定,所述测试模型为可嵌套的活动图,将活动图的每个图元均与一个或多个关键字进行绑定,同一图元绑定的多个关键字之间用半角的分号分隔;所述关键字包括关键字函数名称、关键字函数的参数、关键字函数的类型;所述关键字函数的类型包括业务层关键字、逻辑层关键字、执行层关键字。再基于数据与各种覆盖策略生成测试用例,筛选、确认已生成的测试用例与测试环境进行绑定,绑定成功后用每个测试环境遍历测试用例执行集;最终利用关键字驱动测试用例生成测试脚本,每个测试用例对应有一个测试脚本,测试系统执行测试脚本并实时反馈结果至测试系统,从而实现测试用例的自动化测试执行,不仅提高了测试用例测试的准确率,还获得了较好的测试效果。且利用关键字驱动测试,将测试用例和实际的测试数据进行了分离,对测试人员的代码能力要求不高,操作简单;测试人员仅需选择测试用例,绑定相应的测试环境即可实现测试用例的分布式执行,不仅提高了测试人员的工作效率,还降低了测试的成本与风险。
[0056]
在本发明中,当被测应用发生变化时,测试人员只需要修改对应的关键字以及它的具体逻辑即可实现,而且测试数据和测试逻辑完全分离,从而使得测试用例及其测试脚本变得易于维护,使测试变得更加高效,另外,本发明中的自动化测试执行尽可能的减少了人为的干预,将测试脚本送到相应的测试环境进行自动执行,使测试过程更加高效可靠。
附图说明
[0057]
图1是本发明方法的流程图;
具体实施方式
[0058]
具体实施方式一:结合图1说明本实施方式,本实施方式所述一种基于数据与关键字驱动的软件测试用例自动执行方法,它包括以下步骤:
[0059]
s1、建立模型工程;
[0060]
模型工程包括模型的文件与模型的数据;
[0061]
建立模型工程实际是为测试项目建立一个工作空间,建立嵌入式软件模型工程时,首先为测试项目命名,确定项目的实际存放位置,然后系统创建工程的模型文件以及模型数据。模型文件包含测试文档文件夹、图片文件夹、测试模型文件等物理文件,其中测试模型文件是测试人员打开模型编辑器、读写模型内容的入口文件。而模型数据是指模型的实际内容,以及项目中可能使用到的信息的统一存储数据,可以用数据库或者xml等形式实现。
[0062]
s2、初始化模型工程的系统资源,并根据初始化后的系统资源生成具体测试数据;具体过程为:
[0063]
系统资源包括数据、时间约束、测试用例的测试环境。
[0064]
初始化模型工程的所有系统资源,并根据初始化后的系统资源生成关于嵌入式软件的具体测试数据;时间约束为利用给定时间范围进行约束。
[0065]
s21、设置数据的参数,所述参数包括数据格式、数据类型、数据精度、数据范围,所述数据格式包括单个数据、结构数据、集合数据;
[0066]
单个数据:一个数据一个单独的物理含义;结构数据:由多个不同属性的数据组成,这种数据通常会同时采集、计算和处理;集合数据:由多个物理数据组成,每个物理数据之间没有太多的关联,只是简单的组合,可以在一起进行处理,也可以分开进行处理。数据需要能表达单个数据、结构数据和集合数据。
[0067]
s22、根据数据的参数生成具体测试数据;
[0068]
所述具体测试数据的生成包括以下四种情况:
[0069]ⅰ、设置数据的取值域,并分别设置数据的有效类和数据的无效类;
[0070]ⅱ、通过设置的数据取值域或识别简单的逻辑运算表达式,自动根据等价类、边界值的算法抽样生成数据有效值和数据无效值;
[0071]
具体的算法描述如算法a所示。
[0072]
算法名称:算法a
[0073]
输入:数据
[0074]
输出:具体测试数据
[0075]
过程:获取数据的参数,即数据结构,判断数据是单个数据还是多个数据;针对单个数据,覆盖数据的各个等价类以及边界值(7值法、9值法);针对多个数据,先确定单个数据的取值,再对多个数据进行组合测试(ec、2-wise、3-wise、n-wise等);最后得到具体测试数据,将具体测试数据保存。
[0076]ⅲ、生成连续数据;连续接收某数据,数据可以不变,但多数的情况是数据在实时变化;
[0077]ⅳ、采用五值法生成时间约束,所述五值法包括左边界-精度,左边界,中间值,右边界,右边界 精度值。
[0078]
s3、根据建立的模型工程和生成的具体测试数据建立软件的测试模型;所述软件为嵌入式软件。
[0079]
所述建立的测试模型为可嵌套的活动图,支持对基本业务,循环处理和并发业务的软件业务覆盖。
[0080]
活动图的图元包括动作节点、动作流、开始节点、结束节点、判断节点、定时器节点、并发开始节点和并发结束节点,其动作节点支持子图嵌套建模。
[0081]
通过采用活动图的形式化表达方式对嵌入式软件系统进行测试需求建模,再对模型进行约束设计和驱动测试自动执行关键字的绑定。
[0082]
所述测试模型的测试路径包括:
[0083]
普通路径:没有回路,没有判断节点,没有并发的路径。
[0084]
循环路径:带回路(环路)的路径。
[0085]
并发路径:是指在同一时间间隔内有两个或两个以上的活动执行。对于一些复杂的大型系统而言,对象在运行时往往不止存在一个控制流,而是存在两个或多个并发运行的控制流。
[0086]
约束性函数表达式:在模型的判断节点上可以进行逻辑运算、算数运算、时间约束与数据运算、不同类型时间约束运算。
[0087]
s4、对所述测试模型进行约束设计。
[0088]
所述约束设计包含数据约束设计、预置条件、时间约束和时序逻辑关系。
[0089]
测试模型的活动图中可以嵌套同类型的子图,即活动图可以嵌套子活动图,建模时除完成软件功能逻辑描述外,还可基于测试模型进行约束设计,约束设计如下所述:
[0090]
数据约束设计:在活动图中的活动节点中引用数据配置中的输入数据,根据定义好的数据,添加数据约束条件,即采用逻辑表达式表示约束,通过逻辑表达式能够确定在什么样的情况下走哪条分支。引用定义数据采用$符号,自动将所有定义好的数据快捷引用,采用逻辑运算符{》,《,=,&&,||,!}等进行约束,每引用一次数据变量代表在数据变量取值集合中取值一次。
[0091]
预置条件:在活动图的图元上添加预置条件。预置条件分为两种:一种是整个测试模型的预置条件,相当于在测试模型表达的功能或场景执行之前设置前提条件,多用于用例套执行;另一种是某个活动的预置条件,相当于在执行该活动前必须满足的前提条件。预置条件既可以是文字表述,也可以是引用数据的逻辑表达。
[0092]
时间约束:在活动图的活动节点上可以表达时间约束。时间约束分为绝对时间和相对时间,具体分为时间点约束、持续时间约束、周期时间约束。时间点约束是限制时间产生或结束的时刻;持续时间约束是限制任务执行持续时间或者开始前等待时间;周期时间约束是限制任务重复执行的时间间隔;
[0093]
时序逻辑关系:在活动图上可以表达以下4种情况的时序逻辑关系。时间点之间时序关系、时间点与持续时间的时序关系、持续时间之间的时序关系、时间点与周期时间之间的时序关系。
[0094]
s5、将驱动测试用例自动执行的关键字与所述测试模型进行绑定,具体过程为:
[0095]
将测试模型活动图的每个图元均与一个或多个关键字进行绑定,同一图元绑定的多个关键字之间用半角的分号分隔。
[0096]
为实现驱动测试自动执行关键字,首先需进行关键字的定义,关键字主要包括以下三部分:
[0097]
(1)关键字函数名称;
[0098]
(2)关键字函数的参数:来源于已定义好的测试数据;
[0099]
(3)关键字函数的类型:业务层关键字、逻辑层关键字、执行层关键字;
[0100]
s6、配置测试用例的覆盖策略,利用s5得到的绑定关键字后的测试模型根据具体测试数据生成固定格式的测试用例;
[0101]
所述覆盖策略包括数据覆盖策略、条件判定覆盖策略、路径覆盖策略、子图覆盖策略。
[0102]
根据软件的不同测试风险级别为测试模型的各层活动图配置覆盖策略确定测试目标,根据数据覆盖策略组合具体测试数据,在具体测试数据驱动下,基于测试模型选择路径深度、子图带入策略、条件组合,直至生成最终满足数据覆盖策略、条件判定覆盖策略、路径覆盖策略和子图覆盖策略的测试用例。
[0103]
数据覆盖策略:本发明为各层图形提供数据覆盖策略选择,包含ec、2-wise,3-wise,n-wise和无覆盖选择。其中,ec为单一选择组合,每个因子至少出现一次;2-wise,3-wise,n-wise:n为是不同数据因素之间交互的力度,两种特殊的情况下,单因素覆盖标准,组合生成的测试用例数为c=max{ai},数据因素完全组合覆盖时,组合生成的测试用例数为其中,ai为第i个因素经过测试数据生成处理后数据域中可选取值的个数。
[0104]
条件判定覆盖策略:本发明提供条件组合覆盖选择,不勾选时默认分支覆盖,类似于白盒测试中的逻辑覆盖。
[0105]
路径覆盖策略:本发明中提供1,2,3,n的深度下拉框选择,采用基于深度的路径覆盖策略,该策略以判定节点为两个相邻路径的交叉汇合点,计算相邻路径的覆盖深度,设定深度越大,覆盖程度越高,生成的测试路径越多,最终生成的测试用例用测试路径进行分类,每条路径可能会有多组数据执行。
[0106]
子图覆盖策略:包含展开关系、贯通关系和组合四种关系。展开关系:为了直观或方便显示,将子图作为父图的一部分单独成图,覆盖策略与父图一致;贯通关系:取子图中任一贯通路径融入父图中,层次化测试思路;组合关系:子图中所有路径与父图连接路径进行全组合,考虑在父图中有多个入路径或出路径的情况。
[0107]
s7、对s6中生成的固定格式的测试用例进行筛选、确认,将筛选、确认后得到的测试用例进行整合,作为测试用例执行集;
[0108]
根据用户自定义条件或系统默认条件对已生成的固定格式的测试用例进行筛选、确认,将筛选、确认后得到的测试用例整合为测试用例执行集。
[0109]
s8、将测试用例执行集与测试环境绑定连接,绑定成功后用每个测试环境遍历测试用例执行集;
[0110]
根据s2中系统资源已设置好的测试环境,检查测试用例能否成功连接测试环境,连接成功后,系统将测试用例逐个发送给每个测试环境,进行测试用例的自动化执行;否则操作结束。测试用例执行详细步骤如下:
[0111]
(1)基于数据与覆盖策略自动生成测试用例。
[0112]
(2)筛选、确认最终测试用例,将得到的测试用例组成测试用例执行集。
[0113]
(3)将测试用例执行集与测试环境(测试平台)绑定连接。
[0114]
(5)绑定成功后,用每个测试环境遍历测试用例执行集,逐个对测试用例进行自动化执行。
[0115]
s9、利用s5中绑定的关键字驱动测试用例执行集内的每个测试用例自动化执行,
具体过程为:
[0116]
单个测试用例的自动化执行步骤如下:
[0117]
s91、利用s5中绑定的关键字驱动测试用例执行集内的每个测试用例生成对应的测试脚本,测试脚本为测试用例对应关键字函数调用及其参数值显示;具体过程为:
[0118]
s911、对关键字函数进行解析,包括以下三部分:
[0119]
(1)测试所要执行的关键操作,即实际操作的一些关键动作;
[0120]
(2)关键动作所要触发的被操作对象,即被操作的控件元素;
[0121]
(3)测试时所必须提供的数据,即测试数据。
[0122]
s912、将解析后的关键字按前后顺序输出测试用例;
[0123]
s913、将连续帧类型的测试数据的输出参数赋多个值;
[0124]
系统资源定义的数据能定义连续帧类型的数据,具体的数据结构就是类似数组那种,举例就是数据a有3帧,就可以定义a[3],那参数值对应为3个。(赋值数组:属性a=[1,2,3])。
[0125]
s914、将关键字的参数值取值为相应测试数据的取值,没有取值的关键字原样输出,得到测试脚本;
[0126]
s92、将测试脚本发送至测试系统内相应的测试环境;
[0127]
s93、测试环境自动执行测试脚本,并实时反馈执行情况;
[0128]
s94、测试系统实时记录并动态显示测试脚本执行情况,即可得到对应测试用例的执行情况;
[0129]
s95、执行完毕后,测试环境将执行结果反馈给测试系统;
[0130]
s96、测试系统分析并更新测试用例的执行结果,并输出给测试人员。
[0131]
测试用例和测试脚本是一一对应的,一个测试用例一个测试脚本,遍历测试用例,再把测试用例对应的脚本交给测试平台执行,测试平台反馈结果,再执行下一个测试用例。即可实现嵌入式软件测试用例的自动化执行,最终实现嵌入式软件的测试。
[0132]
在本发明中,当被测应用发生变化时,测试人员只需要修改对应的关键字以及它的具体逻辑即可实现,而且测试数据和测试逻辑完全分离,从而使得测试用例及其测试脚本变得易于维护,使测试变得更加高效,另外,本发明中的自动化测试执行尽可能的减少了人为的干预,将测试脚本送到相应的测试环境进行自动执行,使测试过程更加高效可靠。
再多了解一些

本文用于创业者技术爱好者查询,仅供学习研究,如用于商业用途,请联系技术所有人。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献