测试用例的生成方法、装置及电子设备、存储介质与流程

文档序号:33541094发布日期:2023-03-22 09:13阅读:35来源:国知局
测试用例的生成方法、装置及电子设备、存储介质与流程

1.本技术涉及软件测试技术,尤其涉及一种测试用例的生成方法、装置及电子设备、存储介质。


背景技术:

2.移动端应用,例如线上购物、线上通信等移动端应用,如今已经与人们的生活密不可分。并且随着网络技术的发展,移动端应用的数量呈现急剧增加的趋势。
3.在移动端应用正式发布之前,需要对其性能进行测试,以避免可能出现的软件缺陷。然而,目前在进行移动端应用的测试时,测试人员倾向于主观测试和判断自身认为重要的功能或使用场景,无法充分得测试到移动端应用会覆盖到的一些使用场景。如此,导致移动端应用的测试结果并不准确,也不客观。
4.因此,如何提高移动端应用测试的充分度,进而提高测试结果的准确度和可信度,依然是需要考虑的。


技术实现要素:

5.本技术提供一种测试用例的生成方法、装置及电子设备、存储介质,用以解决如何提高移动端应用测试的充分度,进而提高测试结果的准确度和可信度的问题。
6.一方面,本技术提供一种测试用例的生成方法,包括:
7.获取马尔可夫链使用模型;
8.获取待测试应用的多个界面,以及获取多个界面中每个界面对应的每个事件的转移概率,基于多个界面和每个界面对应的每个事件的转移概率对所述马尔可夫链使用模型的模型状态和边进行更新,生成动态马尔可夫链使用模型,其中,所述动态马尔可夫链使用模型的边为转移概率,所述转移概率为随机变量,所述动态马尔可夫链使用模型不同模型状态对应不同的界面;
9.基于所述动态马尔可夫链使用模型生成测试用例。
10.其中一个实施例中,所述获取待测试应用的多个界面包括:
11.获取待测试应用的第一界面,以及获取所述第一界面包含的每个事件的事件权重;
12.以具有最大事件权重的事件为待执行事件,获取所述待执行事件执行后的界面为第二界面;
13.更新所述第二界面为所述第一界面,返回执行步骤所述获取所述第一界面包含的每个事件的事件权重,直到获取第n界面时,获取待测试应用的n个界面,其中,所述第n界面为待测试应用的执行结束界面。
14.其中一个实施例中,所述获取多个界面中每个界面对应的每个事件的转移概率包括:
15.针对每个界面,获取每个事件的历史执行频率,以及获取第一事件的历史执行频
率;
16.根据第一事件的历史执行频率和每个事件的历史执行频率,确定第一事件的转移概率,直到确定每个事件的转移概率。
17.其中一个实施例中,所述基于多个界面和每个界面对应的每个事件的转移概率对所述马尔可夫链使用模型的模型状态和边进行更新,生成动态马尔可夫链使用模型包括:
18.基于第m界面和第m界面对应的每个事件的转移概率,对所述马尔可夫链使用模型的模型状态和边进行更新,生成第m模型,m为大于零的自然数,m的初始值为1;
19.基于交替条件采样算法对第m界面对应的每个事件的转移概率进行扰乱,并基于扰乱后的转移概率更新所述第m模型,得到第m变异模型,获取第m变异模型的接受率;
20.更新第m界面为第m+1界面,返回执行步骤所述基于第m界面和第m界面对应的每个事件的转移概率,对所述马尔可夫链使用模型的模型状态和边进行更新,生成第m模型,当达到终止条件时,得到多个变异模型的接受率;
21.筛选出多个变异模型中接受率大于预设值的多个变异模型形成所述动态马尔可夫链使用模型。
22.其中一个实施例中,所述获取第m变异模型的接受率包括:
23.根据第m模型的模型覆盖率和模型覆盖率的权参数、待测试应用的需求覆盖率和需求覆盖率的权参数、基于测试用例的相似度函数确定的第一测试用例的相似度和相似度函数的权参数,确定第m模型的g函数值,其中,第一测试用例基于第m模型生成;
24.根据第m变异模型的模型覆盖率和模型覆盖率的权参数,待测试应用的需求覆盖率和需求覆盖率的权参数、基于所述相似度函数确定的第二测试用例的相似度和相似度函数的权参数,确定第m变异模型的g函数值,其中,第二测试用例基于第m变异模型生成;
25.根据所述第m模型的g函数值和第m变异模型的g函数值,确定第m变异模型的接受率。
26.其中一个实施例中,所述终止条件包括以下任意一种或多种:交替条件采样算法的执行次数达到预设次数,交替条件采样算法的执行时长达到预设时长。
27.其中一个实施例中,所述获取所述第一界面包含的每个事件的事件权重包括:
28.针对每个事件,获取每个事件的历史执行频率和每个事件类型的权参数,根据事件的事件类型、历史执行频率和事件类型的权参数,确定事件的事件权重,其中,事件的历史执行频率越高,事件对应的事件类型的权参数越低;
29.直到得到所述第一界面包含的每个事件的事件权重。
30.另一方面,本技术提供一种测试用例的生成装置,包括:
31.获取模块,用于获取马尔可夫链使用模型;
32.模型生成模块,用于获取待测试应用的多个界面,以及获取多个界面中每个界面对应的每个事件的转移概率,基于多个界面和每个界面对应的每个事件的转移概率对所述马尔可夫链使用模型的模型状态和边进行更新,生成动态马尔可夫链使用模型,其中,所述动态马尔可夫链使用模型的边为转移概率,所述转移概率为随机变量,所述动态马尔可夫链使用模型不同模型状态对应不同的界面;
33.处理模块,用于基于所述动态马尔可夫链使用模型生成测试用例。
34.另一方面,本技术提供一种电子设备,包括:处理器,以及与所述处理器通信连接
的存储器;
35.所述存储器存储计算机执行指令;
36.所述处理器执行所述存储器存储的计算机执行指令,以实现如第一方面所述的测试用例的生成方法。
37.另一方面,本技术提供一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机执行指令,当所述指令被执行时,使得计算机执行如第一方面所述的测试用例的生成方法。
38.本技术的实施例提供的测试用例的生成方法,生成了一种动态马尔可夫链使用模型,该动态马尔可夫链使用模型的模型状态跟随待测试应用的界面的变换而变换,且模型的边跟随不同界面的每个事件的转移概率的变化而变化。因此,在生成待测试应用的测试用例时,可以更全面得覆盖待测试应用的不同使用场景(使用界面)和尽量多的事件,所生成的测试用例就更全面更充分。基于测试用例进行测试,可以提高移动端应用测试的充分度,进而提高测试结果的准确度和可信度。
附图说明
39.此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理。
40.图1为本技术提供的测试用例的生成方法的一种应用场景示意图;
41.图2为本技术的一个实施例提供的测试用例的生成方法的流程示意图;
42.图3为本技术的另一个实施例提供的测试用例的生成方法的另一个流程示意图;
43.图4为本技术的一个实施例提供的测试用例的生成装置的示意图;
44.图5为本技术的一个实施例提供的电子设备的示意图。
45.通过上述附图,已示出本公开明确的实施例,后文中将有更详细的描述。这些附图和文字描述并不是为了通过任何方式限制本公开构思的范围,而是通过参考特定实施例为本领域技术人员说明本公开的概念。
具体实施方式
46.这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本公开相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本公开的一些方面相一致的装置和方法的例子。
47.在本技术的描述中,需要理解的是,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括一个或者更多个该特征。在本技术的描述中,“多个”的含义是两个或两个以上,除非另有明确具体的限定。
48.首先对本技术涉及到的名词进行解释:
49.马尔可夫链使用模型:一种基于马尔可夫链的统计测试模型。马尔可夫链使用模型是由软件的状态和有向边组成。状态表示软件在使用过程中的内部环境,有向边代表状态转换,是指软件在某一状态经输入激励,从该状态转移到另一个状态的过程。软件的每一
次使用都是从开始状态经过一系列的中间状态,最后到达结束状态,形成一个测试用例。
50.事件:又称为激励,是指移动端设备上用户与程序的交互行为,包括点击、编辑,页面滑动等操作类型。
51.移动端应用,例如线上购物、线上通信等移动端应用,如今已经与人们的生活密不可分。并且随着网络技术的发展,移动端应用的数量呈现急剧增加的趋势。
52.在移动端应用正式发布之前,需要对其性能进行测试,以避免可能出现的软件缺陷。然而,目前在进行移动端应用的测试时,测试人员倾向于主观测试和判断自身认为重要的功能或使用场景,无法充分得测试到移动端应用会覆盖到的一些使用场景。如此,导致移动端应用的测试结果并不准确,也不客观。
53.为了解决移动端应用的测试不充分的问题,目前已经提出的解决方案有白盒测试技术、随机测试等。
54.作为一种白盒测试技术,符号执行(symbolic execution)在源代码级别跟踪事件的起源并进行处理,通过遍历程序分支来生成测试用例,以达到充分测试的目的。但是,符号执行需要洞悉源代码逻辑,存在一定的技术壁垒。随机测试和进化算法则存在测试充分性无法度量、算法收敛耗时较长的问题。
55.随机测试(random testing)则通过生成随机事件流的方式来模糊化应用程序,模拟用户的随机操作。作为一种算法驱动测试的实践,进化算法(evolutionary algorithm)通过引入随机变异和交叉事件序列的方式来完成其优化目标并生成测试用例。但是,随机测试同样无法充分遍历测试用例,依然存在测试用例不充分的问题。
56.因此,如何提高移动端应用测试的充分度,进而提高测试结果的准确度和可信度,依然是需要考虑的。
57.基于此,本技术提供一种测试用例的生成方法、装置及电子设备、存储介质。该测试用例的生成方法包括:获取马尔可夫链使用模型;获取待测试应用的多个界面,以及获取多个界面中每个界面对应的每个事件的转移概率,基于多个界面和每个界面对应的每个事件的转移概率对该马尔可夫链使用模型的模型状态和边进行更新,生成动态马尔可夫链使用模型,其中,该动态马尔可夫链使用模型的边为转移概率,该转移概率为随机变量,该动态马尔可夫链使用模型不同模型状态对应不同的界面;基于该动态马尔可夫链使用模型生成测试用例。
58.该动态马尔可夫链使用模型的模型状态跟随待测试应用的界面的变换而变换,且模型的边跟随不同界面的每个事件的转移概率的变化而变化。因此,在生成待测试应用的测试用例时,可以更全面得覆盖待测试应用的不同使用场景(使用界面)和尽量多的事件,所生成的测试用例就更全面更充分。基于测试用例进行测试,可以提高移动端应用测试的充分度,进而提高测试结果的准确度和可信度。
59.本技术提供的测试用例的生成方法应用于电子设备,该电子设备例如计算机、内部测试所使用的服务器等。图1为本技术提供的测试用例的生成方法的应用示意图,图中,该电子设备基于待测试应用的多个界面,和多个界面中每个界面对应的每个事件的转移概率,对马尔可夫链使用模型的模型状态和边进行更新。由于事件是不断变化的,事件的转移概率也是随机变量,更新后的马尔可夫链使用模型成为动态马尔可夫链使用模型。最后,基于该动态马尔可夫链使用模型生成测试用例。
60.请参见图2,本技术的一个实施例提供一种测试用例的生成方法,该方法包括:
61.s210,获取马尔可夫链使用模型。
62.马尔可夫链使用模型是一种基于马尔可夫链的统计测试模型。马尔可夫链使用模型是由软件的状态和有向边组成。状态表示软件在使用过程中的内部环境,有向边代表状态转换,是指软件在某一状态经输入激励,从该状态转移到另一个状态的过程。软件的每一次使用都是从开始状态经过一系列的中间状态,最后到达结束状态,形成一个测试用例。
63.本步骤只执行一次,即只获取一次马尔可夫链使用模型。
64.马尔可夫链使用模型作为一种静态模型,需要事先进行模型构建。然而,一方面,大多数移动端应用实际上是在模型不固定的情况下开发完成的。尽管在手动构建模型或自动构建模型来展现人机交互方面付出了很多努力,但是静态马尔可夫链使用模型的有效性仍然因界面探索不完全而受到限制。另另一方面,因为存在路径爆炸问题,所以生成所有潜在的测试用例并执行它们在实际操作上来说是不可行的。因此,传统的马尔可夫链使用模型通过生成随机测试用例,并使用模型级别的覆盖准则(例如覆盖所有状态转换)作为测试目标。但是,在没有主观引导的情况下,此类测试用例通常是冗余的,无法有效地检测缺陷。因此,想要通过运用传统的静态马尔可夫链使用模型生成详尽测试用例来验证应用程序的方案是存在固有缺陷的。
65.s220,获取待测试应用的多个界面,以及获取多个界面中每个界面对应的每个事件的转移概率,基于多个界面和每个界面对应的每个事件的转移概率对该马尔可夫链使用模型的模型状态和边进行更新,生成动态马尔可夫链使用模型,其中,该动态马尔可夫链使用模型的边为转移概率,该转移概率为随机变量,该动态马尔可夫链使用模型不同模型状态对应不同的界面。
66.需要说明的是,该多个界面并不是随机的多个界面,而是根据事件权重不断去执行筛选出来的具有最大事件权重的事件,得到的多个界面。具体的,获取待测试应用的第一界面,该第一界面为该待测试应用的初始界面,即该待测试应用刚打开后展示的界面。该第一界面包含多个事件,事件的类型例如为菜单项、编辑、点击滑动等。以具有最大事件权重的事件为待执行事件,获取待执行事件执行后的界面为第二界面。更新该第二界面为该第一界面,返回执行步骤该获取该第一界面包含的每个事件的事件权重,直到获取第n界面时,获取待测试应用的n个界面,其中,该第n界面为待测试应用的执行结束界面。
67.也就是说,每到达一个界面,执行界面中具有最大事件权重的事件,以显示下一个界面,再执行该下一个界面中具有最大事件权重的事件,不断往下执行,直到到达待测试应用的最后一个界面(执行结束界面)时,结束事件的执行。此时获取的n个界面对应马尔可夫链使用模型的n个模型状态。
68.每个事件都具有事件权重,事件权重是根据事件的历史执行频率和对应的权参数确定的。在获取该第一界面后,还需要获取该第一界面包含的每个事件的事件权重。当事件的历史执行频率越高时,对应的权参数越低,如此是就可以筛选出一些不经常执行的事件。如上所描述的,筛选出的一些不经常执行的事件作为待执行事件,则得到的多个界面也是不经常使用到的多个界面,对应的模型状态也是不常涉及的模型状态,由此生成的测试用例也是平时测试时不常测试到的测试用例。
69.在获取事件的事件权重时,具体的,针对每个事件,获取每个事件的历史执行频率
和每个事件类型的权参数,根据事件的事件类型、历史执行频率和事件类型的权参数,确定事件的事件权重。其中,事件的历史执行频率越高,事件对应的事件类型的权参数越低。遍历该第一界面包含的每个事件,直到得到该第一界面包含的每个事件的事件权重。
70.根据事件的事件类型、历史执行频率和事件类型的权参数,确定事件的事件权重时,可以根据公式确定事件的事件权重。式中,fe表示表示事件e的历史执行频率。为权参数,可通过正则化算法获取,正则化算法的输入为te和fe,输出为fe越大时,越小。即菜单项事件类型的te=2,编辑事件类型的te=1,点击、滑动等事件类型的te=0.5。
71.获取多个界面中每个界面对应的每个事件的转移概率时,针对每个界面,获取每个事件的历史执行频率,以及获取第一事件的历史执行频率。根据第一事件的历史执行频率和每个事件的历史执行频率,确定第一事件的转移概率。遍历界面中的每个事件,直到确定每个事件的转移概率。转移概率为单个事件的历史执行频率与所有事件历史执行频率的比值,
72.基于多个界面和每个界面对应的每个事件的转移概率对该马尔可夫链使用模型的模型状态和边进行更新,生成动态马尔可夫链使用模型。该动态马尔可夫链使用模型的边为转移概率,该动态马尔可夫链使用模型不同模型状态对应不同的界面。该转移概率为随机变量,是随着界面的不同和界面中事件的不同随机变化的。而涉及界面,如上所描述的,当事件的历史执行频率越高时,对应的权参数越低,如此是就可以筛选出一些不经常执行的事件。筛选出的一些不经常执行的事件作为待执行事件,则得到的多个界面也是不经常使用到的多个界面,对应的模型状态也是不常涉及的模型状态,由此生成的测试用例也是平时测试时不常测试到的测试用例。
73.具体的,首先,基于第m界面和第m界面对应的每个事件的转移概率,对该马尔可夫链使用模型的模型状态和边进行更新,生成第m模型,m为大于零的自然数,m的初始值为1。即,先根据第一界面和第一界面对应的每个事件的转移概率,对该马尔可夫链使用模型的模型状态和边进行更新,得到第一模型。该第一模型的模型状态为第一状态,对应该第一界面,该第一模型的边对应该第一界面中各事件的转移概率。
74.再基于交替条件采样算法(gibbs采样算法)对第m界面对应的每个事件的转移概率进行扰乱,并基于扰乱后的转移概率更新该第m模型,得到第m变异模型。此时得到的第m变异模型的边是优化后的边,相对于第m模型的边是更优的。对应第一模型,此时得到的是第一变异模型。
75.再获取第m变异模型的接受率,根据第m变异模型的接受率判断第m变异模型是否可以用来生成测试用例。
76.具体的,获取第m模型的模型覆盖率和模型覆盖率的权参数、待测试应用的需求覆盖率和需求覆盖率的权参数、基于测试用例的相似度函数确定的第一测试用例(第一测试用例基于第m模型生成)的相似度和相似度函数的权参数、第m变异模型的模型覆盖率和模
型覆盖率的权参数、基于相似度函数确定的第二测试用例(第二测试用例基于第m变异模型生成)的相似度。
77.根据第m模型的模型覆盖率和模型覆盖率的权参数、待测试应用的需求覆盖率和需求覆盖率的权参数、基于测试用例的相似度函数确定的第一测试用例的相似度和相似度函数的权参数,确定第m模型的g函数值。
78.具体的,根据公式g(t)=αc1(t)+βc2(t)+γs(t)确定第m模型的g函数值。其中,t表示由第m模型生成的测试用例。c1(t)表示需求覆盖率,描述了移动端应用的需求覆盖程度,由测试人员输入。c2(t)表示第m模型的模型覆盖率,可以通过第m模型的有向遍历程度进行度量,由测试人员输入。s(t)为测试用例的相似度函数,衡量了测试用例的多样性,由测试人员输入。α为需求覆盖率的权参数,基于经验可以取值为0.4。β为模型覆盖率的权参数,基于经验可以取值为0.2。γ为相似度函数的权参数,基于经验可以取值为0.4。
79.根据第m变异模型的模型覆盖率和模型覆盖率的权参数,待测试应用的需求覆盖率和需求覆盖率的权参数、基于该相似度函数确定的第二测试用例的相似度和相似度函数的权参数,确定第m变异模型的g函数值。
80.具体的,根据公式g(t

)=αc1(t

)+βc2(t

)+γs(t

)确定第m变异模型的g函数值。其中,t

表示由第m变异模型生成的测试用例。c1(t

)表示需求覆盖率,描述了移动端应用的需求覆盖程度,由测试人员输入。c2(t

)表示第m变异模型的模型覆盖率,可以通过第m变异模型的有向遍历程度进行度量,由测试人员输入。s(t

)为测试用例的相似度函数,衡量了测试用例的多样性,由测试人员输入。α为需求覆盖率的权参数,基于经验可以取值为0.4。β为模型覆盖率的权参数,基于经验可以取值为0.2。γ为相似度函数的权参数,基于经验可以取值为0.4。
81.最后,根据该第m模型的g函数值和第m变异模型的g函数值,确定第m变异模型的接受率。第m变异模型的接受率a(m
→m′
)=min{1,exp(-μ[g(t)-g(t

)])},其中,μ为常数,由测试人员输入,m代表第m模型,m

代表第m变异模型。
[0082]
当第m变异模型的接受率a大于预设值时,确定第m变异模型可以用来生成测试用例。该预设值可以是测试人员根据实际需要设置,或者是由基于采样随机机制生成的0~1之间的随机数对应生成的预设值,例如预设值为rand(0,1)。当rand(0,1)》0.5时,如果第m变异模型的接受率a大于rand(0,1),则确定第m变异模型可以用于生成测试用例。
[0083]
如上所描述的,m的初始值等于1,即从第一界面开始生成第一模型和第一变异模型。在生成第一变异模型后,更新第m界面为第m+1界面,返回执行步骤该基于第m界面和第m界面对应的每个事件的转移概率,对该马尔可夫链使用模型的模型状态和边进行更新,生成第m模型。即,更新得到后一个界面(第m+1界面)后,基于更新后的界面和界面中每个事件的转移效率对前一个模型(第m模型)的状态进行叠加,以及对前一个模型(第m模型)的边进行扩展。
[0084]
当达到终止条件时,得到多个变异模型的接受率。该多个变异模型指的是具有不同模型状态的模型,并不是拆分为多个不同的模型,而是指同一个变异模型处于不同模型状态时的多个模型。该终止条件包括以下任意一种或多种:交替条件采样算法(gibbs采样算法)的执行次数达到预设次数,交替条件采样算法(gibbs采样算法)的执行时长达到预设时长。该预设次数和该预设时长可以根据实际需要设置。
[0085]
筛选出多个变异模型中接受率大于预设值的多个变异模型形成该动态马尔可夫链使用模型。即,当任意一个变异模型的接受率大于预设值时,可以用于生成测试用例。
[0086]
s230,基于该动态马尔可夫链使用模型生成测试用例。
[0087]
由于该动态马尔可夫链使用模型其实时遍历了待测试应用平时不常用到的界面和事件,因此可以更深层次挖掘到平时容易被忽略的测试项。基于该动态马尔可夫链使用模型生成的测试用例进行待测试应用的测试可以更深层次、更全面得测试到待测试应用在不常见使用场景下的功能。
[0088]
为方便理解,下面结合图3再对本实施例提供的测试用例的生成方法的流程进行梳理。图3为本实施例提供的测试用例的生成方法的简易流程示意图,如图3所示,预先指定马尔可夫链使用模型的第一状态(即第一界面对应的模型状态),再依据最大事件权重的事件迭代扩展马尔可夫链使用模型(即如上所描述的基于最大事件权重的事件更新界面)。计算马尔可夫链使用模型的初始转移概率(即第一界面包含的每个事件的转移概率),生成第一模型。基于需求覆盖率、模型覆盖率、测试用例的相似度等建立目标优化函数(g函数),用于优化转移概率。再基于gibbs采样算法生成第一变异模型。当第一变异模型可以用于生成测试用例时,基于第一变异模型生成测试用例,之后,迭代更新第一变异模型,即随着界面更新和界面中事件的更不断更新,第一变异模型的模型状态不断增加,边也不断变化。当达到以上描述的终止条件时,得到的测试用例就是基于所有满足生成测试用例条件(接受率大于预设值)的变异模型生成的测试用例。
[0089]
综上,本实施例提供的测试用例的生成方法包括:获取马尔可夫链使用模型;获取待测试应用的多个界面,以及获取多个界面中每个界面对应的每个事件的转移概率,基于多个界面和每个界面对应的每个事件的转移概率对该马尔可夫链使用模型的模型状态和边进行更新,生成动态马尔可夫链使用模型,其中,该动态马尔可夫链使用模型的边为转移概率,该转移概率为随机变量,该动态马尔可夫链使用模型不同模型状态对应不同的界面;基于该动态马尔可夫链使用模型生成测试用例。
[0090]
该动态马尔可夫链使用模型的模型状态跟随待测试应用的界面的变换而变换,且模型的边跟随不同界面的每个事件的转移概率的变化而变化。因此,在生成待测试应用的测试用例时,可以更全面得覆盖待测试应用的不同使用场景(使用界面)和尽量多的事件,所生成的测试用例就更全面更充分。基于测试用例进行测试,可以提高移动端应用测试的充分度,进而提高测试结果的准确度和可信度。
[0091]
除此之外,本实施例提供的测试用例的生成方法中,根据事件的历史执行频率确定事件权重,事件的历史执行频率越高,事件权重越低。如此,就可以更充分、更全面得挖掘出不容易想到的界面和事件,使得生成的测试用例更全面得覆盖待测试应用的不同使用场景(使用界面)和尽量多的事件,所生成的测试用例就更全面更充分。基于测试用例进行测试,可以提高移动端应用测试的充分度,进而提高测试结果的准确度和可信度。
[0092]
请参见图4,本技术的一个实施例提供一种测试用例的生成装置10,包括:
[0093]
获取模块11,用于测试用例的生成装置。
[0094]
模型生成模块12,用于获取待测试应用的多个界面,以及获取多个界面中每个界面对应的每个事件的转移概率,基于多个界面和每个界面对应的每个事件的转移概率对该马尔可夫链使用模型的模型状态和边进行更新,生成动态马尔可夫链使用模型,其中,该动
态马尔可夫链使用模型的边为转移概率,该转移概率为随机变量,该动态马尔可夫链使用模型不同模型状态对应不同的界面。
[0095]
处理模块13,用于基于该动态马尔可夫链使用模型生成测试用例。
[0096]
该模型生成模块12具体用于获取待测试应用的第一界面,以及获取该第一界面包含的每个事件的事件权重;以具有最大事件权重的事件为待执行事件,获取该待执行事件执行后的界面为第二界面;更新该第二界面为该第一界面,返回执行步骤该获取该第一界面包含的每个事件的事件权重,直到获取第n界面时,获取待测试应用的n个界面,其中,该第n界面为待测试应用的执行结束界面。
[0097]
该模型生成模块12具体用于针对每个界面,获取每个事件的历史执行频率,以及获取第一事件的历史执行频率;根据第一事件的历史执行频率和每个事件的历史执行频率,确定第一事件的转移概率,直到确定每个事件的转移概率。
[0098]
该模型生成模块12具体用于基于第m界面和第m界面对应的每个事件的转移概率,对该马尔可夫链使用模型的模型状态和边进行更新,生成第m模型,m为大于零的自然数,m的初始值为1;基于交替条件采样算法对第m界面对应的每个事件的转移概率进行扰乱,并基于扰乱后的转移概率更新该第m模型,得到第m变异模型,获取第m变异模型的接受率;更新第m界面为第m+1界面,返回执行步骤该基于第m界面和第m界面对应的每个事件的转移概率,对该马尔可夫链使用模型的模型状态和边进行更新,生成第m模型,当达到终止条件时,得到多个变异模型的接受率;筛选出多个变异模型中接受率大于预设值的多个变异模型形成该动态马尔可夫链使用模型。该终止条件包括以下任意一种或多种:交替条件采样算法的执行次数达到预设次数,交替条件采样算法的执行时长达到预设时长。
[0099]
该模型生成模块12具体用于根据第m模型的模型覆盖率和模型覆盖率的权参数、待测试应用的需求覆盖率和需求覆盖率的权参数、基于测试用例的相似度函数确定的第一测试用例的相似度和相似度函数的权参数,确定第m模型的g函数值,其中,第一测试用例基于第m模型生成;根据第m变异模型的模型覆盖率和模型覆盖率的权参数,待测试应用的需求覆盖率和需求覆盖率的权参数、基于该相似度函数确定的第二测试用例的相似度和相似度函数的权参数,确定第m变异模型的g函数值,其中,第二测试用例基于第m变异模型生成;根据该第m模型的g函数值和第m变异模型的g函数值,确定第m变异模型的接受率。
[0100]
该模型生成模块12具体用于针对每个事件,获取每个事件的历史执行频率和每个事件类型的权参数,根据事件的事件类型、历史执行频率和事件类型的权参数,确定事件的事件权重,其中,事件的历史执行频率越高,事件对应的事件类型的权参数越低;直到得到该第一界面包含的每个事件的事件权重。
[0101]
请参见图5,本技术的一个实施例还提供一种电子设备20,该电子设备20包括处理器21,以及与该处理器21通信连接的存储器22。该存储器22存储计算机执行指令,该处理器21执行该存储器存储的计算机执行指令,以实现如上任一项实施例提供的测试用例的生成方法。
[0102]
本技术还提供一种计算机可读存储介质,该计算机可读存储介质中存储有计算机执行指令,当该指令被执行时,使得计算机执行如上任一项实施例提供的测试用例的生成方法。
[0103]
本技术还提供一种计算机程序产品,包括计算机程序,该计算机程序被处理器执
行时实现如上任一项实施例提供的测试用例的生成方法。
[0104]
需要说明的是,上述计算机可读存储介质可以是只读存储器(read onlymemory,rom)、可编程只读存储器(programmable read-only memory,prom)、可擦除可编程只读存储器(erasable programmable read-onlymemory,eprom)、电可擦除可编程只读存储器(electrically erasableprogrammable read-only memory,eeprom)、磁性随机存取存储器(ferromagnetic random access memory,fram)、快闪存储器(flashmemory)、磁表面存储器、光盘、或只读光盘(compact disc read-only memory,cd-rom)等存储器。也可以是包括上述存储器之一或任意组合的各种电子设备,如移动电话、计算机、平板设备、个人数字助理等。
[0105]
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。
[0106]
上述本技术实施例序号仅仅为了描述,不代表实施例的优劣。
[0107]
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本技术的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如rom/ram、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,空调器,或者网络设备等)执行本技术各个实施例所描述的方法。
[0108]
本技术是参照根据本技术实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
[0109]
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
[0110]
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
[0111]
以上仅为本技术的优选实施例,并非因此限制本技术的专利范围,凡是利用本技术说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本技术的专利保护范围内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1