一种汽车仪表测试方法、装置和设备与流程

专利2022-06-29  87


本发明属于汽车仪表测试技术领域,具体涉及一种汽车仪表测试方法、装置和设备。



背景技术:

汽车仪表的功能模块很多,每个模块中包含多个逻辑复杂的子功能,针对每一个功能点都需要编写对应的测试用例,实际测试中多为两两组合,相关的测试用例条数众多且逻辑复杂,因此编写此类用例时所用时间过长。并且不同功能之间需要进行组合测试,编写用例时很难将功能模块的组合覆盖全面,造成测试的不完整,又常会出现冗余无效的组合,重复的测试会增加测试时间。



技术实现要素:

为了解决现有技术存在的测试用例编写时间长、覆盖不全面的问题,本发明提供了一种汽车仪表测试方法、装置和设备,其具有覆盖完全、组合全面、节约测试用例编写时间等特点。

根据本发明的具体实施方式的一种汽车仪表测试方法,包括:

确定待测试功能项;

获取和所述待测试功能项相关的功能模块以及每个所述功能模块包含的子功能;

基于pairwise算法将不同所述功能模块的所述子功能进行组合生成测试用例;

基于所述测试用例对所述待测试功能项进行测试。

进一步地,所述基于pairwise算法将不同所述功能模块的所述子功能进行组合生成测试用例所采用的组合因子的数量为两个或三个。

进一步地,所述汽车仪表测试方法还包括:将基于所述pairwise算法生成的所述测试用例以表格的形式输出测试用例表格。

进一步地,所述汽车仪表测试方法还包括:基于pairwise算法增加重要的所述功能模块的测试用例。

进一步地,所述基于pairwise算法增加重要的所述功能模块的测试用例包括:

基于所述测试用例表格对所述功能模块进行全排列;

对全排列后的所述测试用例使用pairwise算法分别从第一个所述测试用例和最后一个所述测试用例开始对所述测试用例进行过滤,生成两个新的测试用例表格;

所述两个新的测试用例表格中相同的测试用例即为需要增加的重要的所述功能模块的测试用例。

进一步地,所述基于pairwise算法将不同所述功能模块的所述子功能进行组合生成测试用例具体包括:

生成待测功能项的模型文件;

将所述模型文件输入pict工具生成所述测试用例。

进一步地,所述模型文件包括:参数、子模型和约束条件;

所述参数包括所述功能模块和所述功能模块的所述子功能;

所述子模型将所述参数分组并使用不同的阶数限定每组参数;

所述约束条件对所述参数间的约束关系进行限定。

进一步地,所述汽车仪表测试方法还包括:在同一所述测试用例中只使用一个无效值进行非法性测试。

根据本发明具体实施方式的一种汽车仪表测试装置,包括:

输入模块,用于确定待测试功能项,并获取和所述待测试功能项相关的功能模块以及每个所述功能模块包含的子功能;

生成模块,用于基于pairwise算法将不同所述功能模块的所述子功能进行组合生成测试用例;

执行模块,用于基于所述测试用例对所述待测试功能项进行测试。

根据本发明具体实施方式的一种汽车仪表测试设备,包括:

处理器,以及与所述处理器相连接的存储器;

所述存储器用于存储计算机程序;

所述处理器用于调用并执行所述存储器中的所述计算机程序,以执行如上所述的汽车仪表测试方法。

本发明的有益效果为:在编写组合测试时,通过选择需要组合的功能模块,根据测试需求选取组合方式,基于pairwise算法将不同模块的子功能组合在一起,组合结果直接输出,减少测试人员自己组合记录的时间同时有效避免了测试工程师己编写时的功能遗漏,保证组合的全面性。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1是根据一示例性实施例提供的汽车仪表测试方法的流程图;

图2是根据一示例性实施例提供的汽车仪表测量装置的原理图;

图3是根据一示例性实施例提供的汽车仪表测量设备的原理图。

具体实施方式

为使本发明的目的、技术方案和优点更加清楚,下面将对本发明的技术方案进行详细的描述。显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所得到的所有其它实施方式,都属于本发明所保护的范围。

参照图1所示,本发明的实施例提供了一种汽车仪表测试方法,包括以下步骤:

101、确定待测试功能项;

102、获取和待测试功能项相关的功能模块以及每个功能模块包含的子功能;

103、基于pairwise算法将不同功能模块的子功能进行组合生成测试用例;

104、基于测试用例对待测试功能项进行测试。

具体的,pairwise算法是基于数学统计和对传统的正交分析法进行优化后得到的产物,它能在保证测试覆盖率的前提下控制测试用例的数量。

pairwise算法基于如下2个假设:

(1)每一个维度都是正交的,即每一个维度互相都没有交集。

(2)根据数学统计分析,73%的缺陷(单因子是35%,双因子是38%)是由单因子或2个因子相互作用产生的。19%的缺陷是由3个因子相互作用产生的。

因此,pairwise基于覆盖所有2因子的交互作用产生的用例集合性价比最高而产生的。

例如在一个接口中,有三个输入变量x、y、z,取值分别为:d(x)={x1,x2};d(y)={y1,y2};d(z)={z1,z2}。如果按正常的正交分析方法三种变量的组合将有2*2*2共计8种组合的方式,而pairwise算法会从三个变量的组合表的最后一行开始,如果这行的变量两两组合值能够在上面的行或在此表中找到,那么这行就能够从用例集删除,以此方法测试用例的数量将减少一半。pairwise算法和正交分析法进行比较,当有3个维度,每个维度有4个因子的时候:

正交分析法的测试用例的数量:4*4*4=64个;

pairwise算法的测试用例数量:20个;

pairwise的测试用例的数量是正交设计法的三分之一。当维度越多的时候,效果越明显。当有10个维度的时候4*4*4*4*3*3*3*2*2*2=55296个测试用例,pairwise为24个。是原始测试用例规模的0.04%。可以有效减少冗余组合,节省测试所用时间,同时能够覆盖完全具有更好的测试效果。

正是基于pairwise算法的上述优点,在进行汽车仪表测试时采用两个或三个因子的组合方式,基于pairwise算法将不同模块的子功能组合在一起,例如,待测功能项为仪表超速报警创建一组测试用例,可以采用功能模块:蓄电状态、ig状态、车速值、车速单位、报警值设置状态、安全带状态、其余报警状态(使用优先级打断测试)等相关的模块以及各个模块中的子功能项所采用的组合因子的数量为两个或三个,使用pairwise算法将生成测试用例的组合结果直接以表格的形式输出,减少测试人员自己组合记录的时间。

为进一步优化该技术方案,在本发明的另一具体实施例中,还包括:基于pairwise算法增加重要的功能模块的测试用例。

其中,基于pairwise算法增加重要的功能模块的测试用例包括:

基于测试用例表格对功能模块进行全排列;

对全排列后的测试用例使用pairwise算法分别从第一个测试用例和最后一个测试用例开始对测试用例进行过滤,生成两个新的测试用例表格;

两个新的测试用例表格中相同的测试用例即为需要增加的重要的功能模块的测试用例。

具体的,pairwise算法在一般维度方面,重要性是平均的,所以在维度1上,是一个平面它和维度2(平面)相交是一条线,具体到因子就是一个点。所以就找到了一组测试用例。

在重要维度方面,重要性不是平均的,所以采用正交表的曲面理论。比如维度1是重要维度,采用曲面表示如果维度2也是重要维度,那么维度1和维度2相交就是2条线。具体到因素,就是2个点(或者多个点)。如果维度2是一般维度(平面)曲面和平面相交,也有可能是1条线,也可能是2条线。在这里选1条线。

综上所述,重要维度方面要适当增加测试用例。具体的包括以下步骤:

201、按照输入维度的顺序全排列测试用例。(输入维度的顺序代表重要性从高到底)

202、从第一个开始往下使用pairwise算法过滤测试用例。

203、从最后一个开始往上使用pairwise算法过滤测试用例。

204、找出以上2组中相同测试用例的数量,就是要增加的测试用例的数量。

增加的测试用例是步骤204中相同的测试用例的,变换维度1和维度2生成的测试用例。

作为上述实施例可行的实现方式,在本发明的一些具体实施例中,使用pict工具生成正交测试用例,pict(thepairwiseindependentcombinatorialtestingtool),是一款结对测试用例设计工具。在实际使用过程中,需要输入测试用例相关的参数,然后pict可以有效的按照两两组合或高阶组合的原理来创建和设计所需的测试用例,以获得参数的全面组合覆盖,首先需要准备一个模型文件,例如,针对仪表超速报警来创建一组测试用例,则可以使用以下参数来描述该域:蓄电状态、ig状态、车速值、车速单位、报警值设置状态、安全带状态、其余报警状态(用于优先级打断测试)等。

除了测试有效的组(即“正向测试”),通常还需要使用允许范围以外的值来测试程序是否正确处理错误。每个“负向测试”测试用例应该只有一个无效值,因为大多数应用程序在检测到第一个错误时会执行一些失败的操作。出于这个原因,一个被称为输入掩蔽的问题会发生在非法性测试中。且一个无效输入阻止另一个无效输入被测试。

如上述的超速报警,若车速255km/h为无效值,则也需要进行相关测试。

此外为了防止输入屏蔽,重要的是在同一测试用例中不使用两个无效值(两个不同的参数),默认带前缀“~”的任意值都是无效的,可以通过选项/n指定一个其它的前缀。

模型由三个部分组成:参数定义、子模型定义、约束定义。

三部分顺序不可调换,不可重叠,部分之间不需要任何分隔符,允许出现空行,允许通过“#”添加注释。

子模型允许把参数分组,每组可使用不同的阶数。如果某些参数的组合需要更彻底地测试,或必须与模型中的其他参数分离,可以使用子模型。子模型格式:

{<paramname1>,<paramname2>,<paramname3>,…}@<阶数>

例如,报警信息打断测试,各因数及其值如下:

蓄电状态:batt_on,batt_off

ig状态:ig_on,ig_off

a报警状态:w_a_on,w_a_off

b报警状态:w_b_on,w_b_off

c报警状态:w_c_on,w_c_off

d报警状态:w_d_on,w_d_off

e报警状态:w_e_on,w_e_off

因为此次测试主要目的是报警与报警之间的打断关系,所以将电源状态归为一组,报警信息归为一组,并提高报警信息相关的阶数(order),这样就可以充分测试报警信息之间的不同组合,又能避免每种电源状态与报警信息的碰撞次数,避免了过多的测试用例。增加子模型后的模型如下:

蓄电:batt_on,batt_off

ig:ig_on,ig_off

a报警:w_a_on,w_a_off

b报警:w_b_on,w_b_off

c报警:w_c_on,w_c_off

d报警:w_d_on,w_d_off

e报警:w_e_on,w_e_off

{蓄电,ig}@2

{a报警,b报警,c报警,d报警,e报警}@3。

同时如果仪表待测的参数间有约束条件,使用pict可以将约束条件加到模型中,约束语句以“;”结束。

语法:参数与值可以使用以下关系:=,<>,>,>=,<,<=和like。like是通配符匹配运算符(*-任何字符,?-一个字符)。

参数分为字符串和数字两种,只有当该参数的所有制都是数字时才认为该参数类型为数字,数字类型的参数只能与数字进行比较,字符串类型的参数只能与字符串进行比较。

字符串比较时默认不区分大小写。需要区分大小写可用/c选项。

1)无条件约束

即仅对当前待测功能进行约束,如:

[车速]小于200;

[speed]<200;

[水温]值为100;

[temperature]="100";

[联系人]取为m 任意字符的值(*代表任意字符);

[contacts]like"m*";

2)条件约束

在仪表测试中,很多功能都是前一条件会决定后者的状态,如安全带报警与门开报警的提示状态,往往与当前车速值的大小有关。

使用方式如下:

如果档位等于n或p,则车速值等于100或200;

if[gear]in{"n","p"}then[speed]in{"100","200"};

如果水温报警值等于110,则水温值大于110;

if[temperature_w]=110then[temperature]>110;

这样通过针对某项待测功能项建立相应的模型文件输入pict工具中即可在保证测试完全覆盖的同时,生成更少的测试用例,节约生成测试用例的时间,提高测试的效率。

在本发明的另一些具体实施例中,对于某些需要重点关注的测试模块,可以使用权量,以此方式使pict倾向于某些取值。权重取值可以是任何正整数,默认为1。

同时权重没有绝对意义,不能确定所指定的权重会起作用,因为pict必须处理两个潜在矛盾的要求:

以最小数量的测试用例覆盖所有组合。

根据权值选择值。

其中以最小数量的测试用例覆盖所有组合总是优先于根据权值选择值,只有当选择值得目的不是为了满足以最小数量的测试用例覆盖所有组合时,根据权值选择值才会被采纳。

同时在遇到以下两种需求时,往往会用到种子:

①指定必须出现在任意测试用例中的重要的组合。

pict将使用提供的必选组合初始化输出,然后完成测试用例的其它部分,同时需要确保所有n阶组合都覆盖到。

②当需要修改模型时,它可以使输出的更改最小化。

可以提供前一次结果给pict,pict将尽可能重用已有的测试用例。

种子行必须在单独的文件(一个种子文件)中定义。使用选项/e指定文件位置:

种子文件和pict的输出结果必须使用相同的格式以便可以被插入到计算出的测试用例中。使用制表符分割各参数和值,如下:

1.如果一个种子文件包含一个不在当前模型中的参数,pict将丢弃该参数所在的列。

2.如果种子行包含一个不在当前模型中的值,pict将从种子行删除该值。pict只会使用种子行中的有效值,一个包含了无效值的种子行将成为不完整的行。

3.如果一个种子行违反了现行的约束,pict将忽略该行。

如果1或2发生,pict会打印警告信息。

在pict中使用种子时,种子文件中如果有下列格式可能会产生歧义:

空白的参数和值名称;

参数和值名称包含制表符;

对于一个参数,值的名称和别名不是唯一的。

相比于传统测试中,测试工程师往往会选取正交测试的方法进行功能点组合,编写的测试用例条目很多,且投入的成本大。此外当需要组合的模块较多或子功能较多时,很难完整实现正交组合,而使用pairwise算法可以自动生成组合结果,有效避免了测试工程师己编写时的功能遗漏,保证组合的全面性。

参照图2所示,本发明的实施例还一种汽车仪表测试装置,包括:

输入模块,用于确定待测试功能项,并获取和待测试功能项相关的功能模块以及每个功能模块包含的子功能;

生成模块,用于基于pairwise算法将不同功能模块的子功能进行组合生成测试用例;

执行模块,用于基于测试用例对待测试功能项进行测试。

作为上述实施例的实现方式,可采用具有联网功能的计算机下载pict测试工具,通过键盘等输入工具输入模型文件,通过pict工具生成测试用例,在通过相应的执行软件使用生成的测试用例对待测功能项进行测试。

参照图3所示,本发明的实施例还提供了一种汽车仪表测试设备,包括:

处理器,以及与处理器相连接的存储器;

存储器用于存储计算机程序;

处理器用于调用并执行存储器中的计算机程序,以执行如上实施例所记载的汽车仪表测试方法。

本发明实施例提供的汽车仪表测试设备的具体实施方案可以参考以上任意例所述的汽车仪表测试方法的实施方式,此处不再赘述。

此外,在本申请各个实施例中的各功能单元可以集成在一个处理模块中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的10形式实现。所述集成的模块如果以软件功能模块的形式实现并作为独立的产品

销售或使用时,也可以存储在一个计算机可读取存储介质中。

上述提到的存储介质可以是只读存储器,磁盘或光盘等。

在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述15的具体特征、结构、材料或者特点包含于本申请的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合。

以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。


技术特征:

1.一种汽车仪表测试方法,其特征在于,包括:

确定待测试功能项;

获取和所述待测试功能项相关的功能模块以及每个所述功能模块包含的子功能;

基于pairwise算法将不同所述功能模块的所述子功能进行组合生成测试用例;

基于所述测试用例对所述待测试功能项进行测试。

2.根据权利要求1所述的汽车仪表测试方法,其特征在于,所述基于pairwise算法将不同所述功能模块的所述子功能进行组合生成测试用例所采用的组合因子的数量为两个或三个。

3.根据权利要求1所述的汽车仪表测试方法,其特征在于,还包括:将基于所述pairwise算法生成的所述测试用例以表格的形式输出测试用例表格。

4.根据权利要求3所述的汽车仪表测试方法,其特征在于,还包括:基于pairwise算法增加重要的所述功能模块的所述测试用例。

5.根据权利要求4所述的汽车仪表测试方法,其特征在于,所述基于pairwise算法增加重要的所述功能模块的所述测试用例包括:

基于所述测试用例表格对所述功能模块进行全排列;

对全排列后的所述测试用例使用pairwise算法分别从第一个所述测试用例和最后一个所述测试用例开始对所述测试用例进行过滤,生成两个新的测试用例表格;

所述两个新的测试用例表格中相同的测试用例即为需要增加的重要的所述功能模块的测试用例。

6.根据权利要求1所述的汽车仪表测试方法,其特征在于,所述基于pairwise算法将不同所述功能模块的所述子功能进行组合生成测试用例具体包括:

生成待测功能项的模型文件;

将所述模型文件输入pict工具生成所述测试用例。

7.根据权利要求6所述的汽车仪表测试方法,其特征在于,所述模型文件包括:参数、子模型和约束条件;

所述参数包括所述功能模块和所述功能模块的所述子功能;

所述子模型将所述参数分组并使用不同的阶数限定每组参数;

所述约束条件对所述参数间的约束关系进行限定。

8.根据权利要求6所述的汽车仪表测试方法,其特征在于,还包括:在同一所述测试用例中只使用一个无效值进行非法性测试。

9.一种汽车仪表测试装置,其特征在于,包括:

输入模块,用于确定待测试功能项,并获取和所述待测试功能项相关的功能模块以及每个所述功能模块包含的子功能;

生成模块,用于基于pairwise算法将不同所述功能模块的所述子功能进行组合生成测试用例;

执行模块,用于基于所述测试用例对所述待测试功能项进行测试。

10.一种汽车仪表测试设备,其特征在于,包括:

处理器,以及与所述处理器相连接的存储器;

所述存储器用于存储计算机程序;

所述处理器用于调用并执行所述存储器中的所述计算机程序,以执行如权利要求1-8任一项所述的汽车仪表测试方法。

技术总结
本发明涉及一种汽车仪表测试方法、装置和设备,包括:确定待测试功能项;获取和待测试功能项相关的功能模块以及每个功能模块包含的子功能;基于Pairwise算法将不同功能模块的子功能进行组合生成测试用例;基于测试用例对待测试功能项进行测试。本发明的有益效果为:在编写组合测试时,通过选择需要组合的功能模块,根据测试需求选取组合方式,基于Pairwise算法将不同模块的子功能组合在一起,组合结果直接输出,减少测试人员自己组合记录的时间同时有效避免了测试工程师己编写时的功能遗漏,保证组合的全面性。

技术研发人员:于洋;高磊;王志永
受保护的技术使用者:黑龙江连特科技有限公司
技术研发日:2020.01.20
技术公布日:2020.06.09

转载请注明原文地址: https://bbs.8miu.com/read-26384.html

最新回复(0)