系统测试方法、装置、设备及存储介质与流程

文档序号:28444780发布日期:2022-01-12 03:06阅读:150来源:国知局
系统测试方法、装置、设备及存储介质与流程

1.本发明涉及测试技术领域,尤其涉及一种系统测试方法、装置、设备及存储介质。


背景技术:

2.为了确保系统的稳定性及兼容性,在系统上线之前,通常需要对系统进行随机测试。然而,对于风险审批系统等操作流程较为繁杂的系统来说,采用随机测试方案无法确保事件的测试覆盖情况,导致风险审批系统的测试准确度低下。除此之外,由于风险审批系统中包含较多的强相关事件,对风险审批系统中的所有事件进行测试将会导致风险审批系统的测试效率低下。
3.因此,在确保风险审批系统的测试准确度的前提下,如何提高测试效率成了亟需解决的问题。


技术实现要素:

4.鉴于以上内容,有必要提供一种系统测试方法、装置、设备及存储介质,能够在确保风险审批系统的测试准确度的前提下,提高测试系统的测试效率。
5.一方面,本发明提出一种系统测试方法,所述系统测试方法包括:
6.获取测试系统中的操作事件;
7.根据所述操作事件及第二初始值迭代调整第一初始值,得到第一参数值,并根据所述第一参数值及所述操作事件迭代调整所述第二初始值,得到第二参数值,所述第一初始值及所述第二初始值是基于归并所述操作事件而预先设定好的数值;
8.根据所述第一参数值归并处理所述操作事件,得到多个路径事件,并根据所述第二参数值归并处理所述多个路径事件,得到学习周期;
9.基于所述学习周期中所有路径事件选取出所述学习周期的第一趋势代码;
10.根据所述第一趋势代码及所述学习周期所对应的周期代码生成所述学习周期的趋势权重;
11.根据所述趋势权重及所述操作事件的操作代码从所述操作事件中筛选出入选事件,直至满足预设条件,得到目标事件;
12.根据所述目标事件对所述测试系统进行测试,得到测试结果。
13.根据本发明优选实施例,所述根据所述操作事件及第二初始值迭代调整第一初始值,得到第一参数值包括:
14.根据预设幅度调整所述第一初始值,得到第一待选值;
15.根据所述第一初始值及所述第一待选值分别对所述操作事件进行归并处理,得到与所述第一初始值对应的多个第一学习事件及与所述第一待选值对应的多个第二学习事件;
16.根据所述第二初始值合并所述多个第一学习事件,得到第一周期事件,并根据所述第二初始值合并所述多个第二学习事件,得到第二周期事件;
17.计算每个第一学习事件的第一代码覆盖率,并计算每个第二学习事件的第二代码覆盖率;
18.从所述第一周期事件中选取最大的第一代码覆盖率所对应的事件作为第一特征事件,并从所述第二周期事件中选取最大的第二代码覆盖率所对应的事件作为第二特征事件;
19.根据所述第一特征事件及所述第二特征事件计算所述第一待选值的覆盖增长速率;
20.若所述覆盖增长速率大于上一轮迭代处理的覆盖增长速率,则将所述第一待选值确定为下一轮迭代调整的第一初始值;
21.重复根据预设幅度调整所述第一初始值,直至所述覆盖增长速率小于或者等于所述上一轮迭代处理的覆盖增长速率,则将所述第一初始值确定为所述第一参数值。
22.根据本发明优选实施例,所述根据所述第一特征事件及所述第二特征事件计算所述第一待选值的覆盖增长速率包括:
23.获取所述第一特征事件的事件标识作为第一标识,并获取所述第二特征事件的事件标识作为第二标识;
24.根据所述第一标识从所述第一代码覆盖率中选取第一数值,并根据所述第二标识从所述第二代码覆盖率中选取第二数值;
25.计算所述第二数值与所述第一数值的差值,得到代码覆盖增长量;
26.根据所述代码覆盖增长量在所述第一数值上的比值生成所述覆盖增长速率。
27.根据本发明优选实施例,所述根据所述趋势权重及所述操作事件的操作代码从所述操作事件中筛选出入选事件,直至满足预设条件,得到目标事件包括:
28.根据所述趋势权重从所述操作事件中迭代筛选出所述入选事件,包括:对于任意操作事件,根据所述操作代码计算所述任意操作事件在多个所述操作事件上的代码比值;检测所述任意操作事件所在的学习周期作为目标周期;根据所述目标周期从多个所述趋势权重中提取目标权重;计算所述代码比值与所述目标权重的乘积,得到所述任意操作事件的事件分值;从多个所述操作事件中选取事件分值最大的操作事件作为所述入选事件;根据所述第一趋势代码及所述入选事件调整所述趋势权重,并将调整后的趋势权重确定为下一轮迭代筛选的趋势权重;
29.重复根据所述趋势权重从所述操作事件中迭代筛选出所述入选事件,直至所述趋势权重小于或者等于第一配置值,或者,所述入选事件在多个所述操作事件上的代码覆盖率大于或者等于第二配置值,停止从所述操作事件中筛选所述入选事件,并将所述入选事件、所述第一特征事件及所述第二特征事件确定为所述目标事件。
30.根据本发明优选实施例,所述根据所述第一参数值归并处理所述操作事件,得到多个路径事件包括:
31.获取所述操作事件在所述测试系统上的操作顺序;
32.根据所述操作顺序依次对所述操作事件进行拼接,直至拼接的操作事件的数量为所述第一参数值,得到所述多个路径事件。
33.根据本发明优选实施例,所述基于所述学习周期中所有路径事件选取出所述学习周期的第一趋势代码包括:
34.从所述测试系统中获取每个路径事件的执行代码;
35.统计每个执行代码的代码量,得到每个路径事件的路径代码量;
36.将所述学习周期中所述路径代码量最大的路径事件确定为初筛事件;
37.将所述初筛事件所对应的执行代码确定为所述第一趋势代码。
38.根据本发明优选实施例,所述根据所述第一趋势代码及所述学习周期所对应的周期代码生成所述学习周期的趋势权重包括:
39.将所述学习周期中所有路径事件的执行代码确定为所述周期代码;
40.根据所述周期代码及所述第一趋势代码计算所述学习周期的代码重合度;
41.根据预设值及所述代码重合度计算所述趋势权重,包括:
42.qn=(m-t1)
×
(m-t2)
…×
(m-tn);
43.其中,qn是指第n个学习周期的趋势权重,m是指所述预设值,tn是指所述第n个学习周期的代码重合度。
44.另一方面,本发明还提出一种系统测试装置,所述系统测试装置包括:
45.获取单元,用于获取测试系统中的操作事件;
46.调整单元,用于根据所述操作事件及第二初始值迭代调整第一初始值,得到第一参数值,并根据所述第一参数值及所述操作事件迭代调整所述第二初始值,得到第二参数值,所述第一初始值及所述第二初始值是基于归并所述操作事件而预先设定好的数值;
47.归并单元,用于根据所述第一参数值归并处理所述操作事件,得到多个路径事件,并根据所述第二参数值归并处理所述多个路径事件,得到学习周期;
48.选取单元,用于基于所述学习周期中所有路径事件选取出所述学习周期的第一趋势代码;
49.生成单元,用于根据所述第一趋势代码及所述学习周期所对应的周期代码生成所述学习周期的趋势权重;
50.筛选单元,用于根据所述趋势权重及所述操作事件的操作代码从所述操作事件中筛选出入选事件,直至满足预设条件,得到目标事件;
51.测试单元,用于根据所述目标事件对所述测试系统进行测试,得到测试结果。
52.另一方面,本发明还提出一种电子设备,所述电子设备包括:
53.存储器,存储计算机可读指令;及
54.处理器,执行所述存储器中存储的计算机可读指令以实现所述系统测试方法。
55.另一方面,本发明还提出一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机可读指令,所述计算机可读指令被电子设备中的处理器执行以实现所述系统测试方法。
56.由以上技术方案可以看出,本发明通过对所述第一初始值及所述第二初始值进行调整,能够避免因所述第一初始值及所述第二初始值的设定不合理而造成所述测试系统的测试覆盖率不能达到最大化,从而能够提高所述测试系统的测试准确性,进而通过所述趋势权重及所述操作事件的操作代码对所述操作事件进行筛选,能够使参与测试的目标事件在所述测试系统中的覆盖率达到需求,从而确保所述测试系统的测试准确性,本发明进一步利用筛选出的目标事件对所述测试系统进行测试,由于无需对所述测试系统中的所有操作事件进行测试,因此能够提高所述测试系统的测试效率。
附图说明
57.图1是本发明系统测试方法的较佳实施例的流程图。
58.图2是本发明系统测试装置的较佳实施例的功能模块图。
59.图3是本发明实现系统测试方法的较佳实施例的电子设备的结构示意图。
具体实施方式
60.为了使本发明的目的、技术方案和优点更加清楚,下面结合附图和具体实施例对本发明进行详细描述。
61.如图1所示,是本发明系统测试方法的较佳实施例的流程图。根据不同的需求,该流程图中步骤的顺序可以改变,某些步骤可以省略。
62.所述系统测试方法可以基于人工智能技术对相关的数据进行获取和处理。其中,人工智能(artificial intelligence,ai)是利用数字计算机或者数字计算机控制的机器模拟、延伸和扩展人的智能,感知环境、获取知识并使用知识获得最佳结果的理论、方法、技术及应用系统。
63.人工智能基础技术一般包括如传感器、专用人工智能芯片、云计算、分布式存储、大数据处理技术、操作/交互系统、机电一体化等技术。人工智能软件技术主要包括计算机视觉技术、机器人技术、生物识别技术、语音处理技术、自然语言处理技术以及机器学习/深度学习等几大方向。
64.所述系统测试方法应用于一个或者多个电子设备中,所述电子设备是一种能够按照事先设定或存储的计算机可读指令,自动进行数值计算和/或信息处理的设备,其硬件包括但不限于微处理器、专用集成电路(application specific integrated circuit,asic)、可编程门阵列(field-programmable gate array,fpga)、数字信号处理器(digital signal processor,dsp)、嵌入式设备等。
65.所述电子设备可以是任何一种可与用户进行人机交互的电子产品,例如,个人计算机、平板电脑、智能手机、个人数字助理(personal digital assistant,pda)、游戏机、交互式网络电视(internet protocol television,iptv)、智能穿戴式设备等。
66.所述电子设备可以包括网络设备和/或用户设备。其中,所述网络设备包括,但不限于单个网络电子设备、多个网络电子设备组成的电子设备组或基于云计算(cloud computing)的由大量主机或网络电子设备构成的云。
67.所述电子设备所处的网络包括,但不限于:互联网、广域网、城域网、局域网、虚拟专用网络(virtual private network,vpn)等。
68.s10,获取测试系统中的操作事件。
69.在本发明的至少一个实施例中,所述测试系统是指操作流程较为繁杂的系统,其中,所述操作流程较为繁杂可以是指系统中操作事件的数量大于某个设定值。例如,所述测试系统可以是风险审批系统。
70.所述操作事件是指所述测试系统中所有页面的页面切换、菜单下拉、按钮点击等操作。
71.s11,根据所述操作事件及第二初始值迭代调整第一初始值,得到第一参数值,并根据所述第一参数值及所述操作事件迭代调整所述第二初始值,得到第二参数值,所述第
一初始值及所述第二初始值是基于归并所述操作事件而预先设定好的数值。
72.在本发明的至少一个实施例中,所述第一参数值及所述第二参数值是指迭代调整后的数值。
73.在本发明的至少一个实施例中,所述电子设备根据所述操作事件及第二初始值迭代调整第一初始值,得到第一参数值包括:
74.根据预设幅度调整所述第一初始值,得到第一待选值;
75.根据所述第一初始值及所述第一待选值分别对所述操作事件进行归并处理,得到与所述第一初始值对应的多个第一学习事件及与所述第一待选值对应的多个第二学习事件;
76.根据所述第二初始值合并所述多个第一学习事件,得到第一周期事件,并根据所述第二初始值合并所述多个第二学习事件,得到第二周期事件;
77.计算每个第一学习事件的第一代码覆盖率,并计算每个第二学习事件的第二代码覆盖率;
78.从所述第一周期事件中选取最大的第一代码覆盖率所对应的事件作为第一特征事件,并从所述第二周期事件中选取最大的第二代码覆盖率所对应的事件作为第二特征事件;
79.根据所述第一特征事件及所述第二特征事件计算所述第一待选值的覆盖增长速率;
80.若所述覆盖增长速率大于上一轮迭代处理的覆盖增长速率,则将所述第一待选值确定为下一轮迭代调整的第一初始值;
81.重复根据预设幅度调整所述第一初始值,直至所述覆盖增长速率小于或者等于所述上一轮迭代处理的覆盖增长速率,则将所述第一初始值确定为所述第一参数值。
82.例如,所述第二初始值为2,所述第一初始值为4,所述预设幅度为+1,经调整,第一待选值为5,经归并,所述第一学习事件中包含4个操作事件,所述第一周期事件中包含2个所述第一学习事件,分别为学习事件a和学习事件b,所述第二学习事件中包含5个操作事件,所述第二周期事件中包含2个所述第二学习事件,分别为学习事件c和学习事件d,经选取,所述第一特征事件为所述学习事件a,所述第二特征事件为所述学习事件d,根据所述学习事件a的代码覆盖率及所述学习事件d的代码覆盖率计算所述第一待选值5的覆盖增长速率为25%,上一轮迭代处理的覆盖增长速率为20%,则所述第一参数值确定为所述第一初始值4。
83.其中,所述预设幅度可以根据需求设定,例如,所述预设幅度可以设置为+1,所述预设幅度也可以设置为-1,本发明对所述预设幅度的设定不作限制。
84.所述覆盖增长速率是指所述第一待选值所对应的第二特征事件与所述第一初始值所对应的第一特征事件在代码覆盖率上变化的快慢。
85.通过所述覆盖增长速率对所述第一初始值的调控,能够选取出合适的第一参数值,从而有利于提高后续筛选出的目标事件的代码覆盖率。
86.具体地,所述电子设备计算每个第一学习事件的第一代码覆盖率包括:
87.统计所述操作事件的代码总量作为系统代码量;
88.统计每个第一学习事件的代码总量作为事件代码量;
89.根据所述事件代码量与所述系统代码量的比值生成所述第一代码覆盖率。
90.通过所述系统代码量及所述事件代码量能够快速的确定出所述第一代码覆盖率。
91.具体地,所述电子设备根据所述第一特征事件及所述第二特征事件计算所述第一待选值的覆盖增长速率包括:
92.获取所述第一特征事件的事件标识作为第一标识,并获取所述第二特征事件的事件标识作为第二标识;
93.根据所述第一标识从所述第一代码覆盖率中选取第一数值,并根据所述第二标识从所述第二代码覆盖率中选取第二数值;
94.计算所述第二数值与所述第一数值的差值,得到代码覆盖增长量;
95.根据所述代码覆盖增长量在所述第一数值上的比值生成所述覆盖增长速率。
96.其中,所述第一标识是指能够唯一识别出所述第一特征事件的标签,所述第二标识是指能够唯一识别出所述第二特征事件的标签。
97.通过所述第一标识及所述第二标识能够准确的选取出所述第一数值及所述第二数值,从而提高所述覆盖增长速率的生成准确性。
98.在本发明的至少一个实施例中,所述电子设备根据所述第一参数值及所述操作事件迭代调整所述第二初始值的方式与所述电子设备根据所述操作事件及第二初始值迭代调整第一初始值的方式相似,本发明对此不再赘述。
99.s12,根据所述第一参数值归并处理所述操作事件,得到多个路径事件,并根据所述第二参数值归并处理所述多个路径事件,得到学习周期。
100.在本发明的至少一个实施例中,每个路径事件中包含数量为所述第一参数值的操作事件,每个学习周期中包含数量为所述第二参数值的路径事件。
101.在本发明的至少一个实施例中,所述电子设备根据所述第一参数值归并处理所述操作事件,得到多个路径事件包括:
102.获取所述操作事件在所述测试系统上的操作顺序;
103.根据所述操作顺序依次对所述操作事件进行拼接,直至拼接的操作事件的数量为所述第一参数值,得到所述多个路径事件。
104.例如,所述操作事件包括:菜单下拉、方框勾选及提交按钮点击,获取所述操作事件在所述测试系统上的操作顺序为:菜单下拉

方框勾选

按钮点击。若所述第一参数值为2,则所述路径事件为:菜单下拉

方框勾选。
105.通过所述操作顺序拼接所述操作事件,能够生成的所述路径事件中遗漏了操作事件,提高了所述操作事件的归并全面性。
106.s13,基于所述学习周期中所有路径事件选取出所述学习周期的第一趋势代码。
107.在本发明的至少一个实施例中,所述第一趋势代码是指所述学习周期中路径代码量最大的路径事件所对应的执行代码。每个学习周期中包含一个第一趋势代码。
108.在本发明的至少一个实施例中,所述电子设备基于所述学习周期中所有路径事件选取出所述学习周期的第一趋势代码包括:
109.从所述测试系统中获取每个路径事件的执行代码;
110.统计每个执行代码的代码量,得到每个路径事件的路径代码量;
111.将所述学习周期中所述路径代码量最大的路径事件确定为初筛事件;
112.将所述初筛事件所对应的执行代码确定为所述第一趋势代码。
113.其中,所述执行代码是指运行所述路径事件所对应的代码信息。
114.所述路径代码量是指所述执行代码的行数。
115.通过对每个学习周期中的路径事件的分析,能够准确的确定出所述第一趋势代码。
116.s14,根据所述第一趋势代码及所述学习周期所对应的周期代码生成所述学习周期的趋势权重。
117.在本发明的至少一个实施例中,所述周期代码是指运行所述学习周期所对应的代码信息,所述周期代码包括该学习周期所包含的路径事件所对应的代码信息。
118.每个学习周期中对应有相应的趋势权重,通过所述趋势权重能够调整用于测试所述测试系统所需的操作事件。
119.在本发明的至少一个实施例中,所述电子设备根据所述第一趋势代码及所述学习周期所对应的周期代码生成所述学习周期的趋势权重包括:
120.将所述学习周期中所有路径事件的执行代码确定为所述周期代码;
121.根据所述周期代码及所述第一趋势代码计算所述学习周期的代码重合度;
122.根据预设值及所述代码重合度计算所述趋势权重,包括:
123.qn=(m-t1)
×
(m-t2)
…×
(m-tn);
124.其中,qn是指第n个学习周期的趋势权重,m是指所述预设值,tn是指所述第n个学习周期的代码重合度。
125.其中,所述代码重合度是指所述第一趋势代码与所述周期代码中相同的代码信息在所述周期代码中所占的比值。
126.所述预设值通常设定为1。
127.通过所述代码重合度对所述趋势权重的调整,确保了生成的趋势权重能够调控目标事件的筛选,从而有利于筛选出有意义的操作事件,便于所述测试系统的测试。
128.s15,根据所述趋势权重及所述操作事件的操作代码从所述操作事件中筛选出入选事件,直至满足预设条件,得到目标事件。
129.在本发明的至少一个实施例中,所述预设条件包括:所述趋势权重小于或者等于第一配置值,以及,所述入选事件在多个所述操作事件上的代码覆盖率大于或者等于第二配置值。其中,所述第一配置值及所述第二配置值可以根据需求设定,例如,所述第一配置值可以设定为0.2,所述第二配置值可以设定为80%,本发明对所述第一配置值及所述第二配置值的设定不作限制。
130.所述目标事件是指从所述操作事件中筛选出的事件。
131.在本发明的至少一个实施例中,所述电子设备根据所述趋势权重及所述操作事件的操作代码从所述操作事件中筛选出入选事件,直至满足预设条件,得到目标事件包括:
132.根据所述趋势权重从所述操作事件中迭代筛选出所述入选事件,包括:对于任意操作事件,根据所述操作代码计算所述任意操作事件在多个所述操作事件上的代码比值;检测所述任意操作事件所在的学习周期作为目标周期;根据所述目标周期从多个所述趋势权重中提取目标权重;计算所述代码比值与所述目标权重的乘积,得到所述任意操作事件的事件分值;从多个所述操作事件中选取事件分值最大的操作事件作为所述入选事件;根
据所述第一趋势代码及所述入选事件调整所述趋势权重,并将调整后的趋势权重确定为下一轮迭代筛选的趋势权重;
133.重复根据所述趋势权重从所述操作事件中迭代筛选出所述入选事件,直至所述趋势权重小于或者等于第一配置值,或者,所述入选事件在多个所述操作事件上的代码覆盖率大于或者等于第二配置值,停止从所述操作事件中筛选所述入选事件,并将所述入选事件、所述第一特征事件及所述第二特征事件确定为所述目标事件。
134.通过所述趋势权重能够从所述操作事件中准确的筛选出对所述测试系统的测试有利的目标事件,从而能够提高所述测试系统的测试准确性,通过所述预设条件对所述操作事件的筛选的调控,能够确保筛选出的目标事件满足测试需求,从而确保所述测试系统的测试全面性。
135.s16,根据所述目标事件对所述测试系统进行测试,得到测试结果。
136.在本发明的至少一个实施例中,所述测试结果是指所述目标事件对所述测试系统进行测试后所生成的结果。所述测试结果可以包括,所述测试系统测试成功,所述测试系统中的某个测试事件测试失败。
137.需要强调的是,为进一步保证上述测试结果的私密和安全性,上述测试结果还可以存储于一区块链的节点中。
138.在本发明的至少一个实施例中,所述电子设备根据所述目标事件对所述测试系统进行测试,得到测试结果包括:
139.根据所述目标事件的事件类型读取预设的测试文件,得到测试所述目标事件所需的测试因素;
140.根据所述测试因素驱动所述目标事件对所述测试系统进行测试,得到所述测试结果。
141.其中,所述事件类型是指所述目标事件所属的操作类型,例如,目标事件a为点击“提交”按钮,目标事件b为点击“取消”按钮,目标事件c为勾选方框,则所述目标事件a及所述目标事件b的操作类型均为点击类型,所述目标事件c为勾选类型。
142.通过所述事件类型读取所述测试文件,能够准确的提取出测试所述目标事件所需的测试因素,从而能够准确的生成所述测试结果。
143.由以上技术方案可以看出,本发明通过对所述第一初始值及所述第二初始值进行调整,能够避免因所述第一初始值及所述第二初始值的设定不合理而造成所述测试系统的测试覆盖率不能达到最大化,从而能够提高所述测试系统的测试准确性,进而通过所述趋势权重及所述操作事件的操作代码对所述操作事件进行筛选,能够使参与测试的目标事件在所述测试系统中的覆盖率达到需求,从而确保所述测试系统的测试准确性,本发明进一步利用筛选出的目标事件对所述测试系统进行测试,由于无需对所述测试系统中的所有操作事件进行测试,能够提高所述测试系统的测试效率。
144.如图2所示,是本发明系统测试装置的较佳实施例的功能模块图。所述系统测试装置11包括获取单元110、调整单元111、归并单元112、选取单元113、生成单元114、筛选单元115及测试单元116。本发明所称的模块/单元是指一种能够被处理器13所获取,并且能够完成固定功能的一系列计算机可读指令段,其存储在存储器12中。在本实施例中,关于各模块/单元的功能将在后续的实施例中详述。
145.获取单元110获取测试系统中的操作事件。
146.在本发明的至少一个实施例中,所述测试系统是指操作流程较为繁杂的系统,其中,所述操作流程较为繁杂可以是指系统中操作事件的数量大于某个设定值。例如,所述测试系统可以是风险审批系统。
147.所述操作事件是指所述测试系统中所有页面的页面切换、菜单下拉、按钮点击等操作。
148.调整单元111根据所述操作事件及第二初始值迭代调整第一初始值,得到第一参数值,并根据所述第一参数值及所述操作事件迭代调整所述第二初始值,得到第二参数值,所述第一初始值及所述第二初始值是基于归并所述操作事件而预先设定好的数值。
149.在本发明的至少一个实施例中,所述第一参数值及所述第二参数值是指迭代调整后的数值。
150.在本发明的至少一个实施例中,所述调整单元111根据所述操作事件及第二初始值迭代调整第一初始值,得到第一参数值包括:
151.根据预设幅度调整所述第一初始值,得到第一待选值;
152.根据所述第一初始值及所述第一待选值分别对所述操作事件进行归并处理,得到与所述第一初始值对应的多个第一学习事件及与所述第一待选值对应的多个第二学习事件;
153.根据所述第二初始值合并所述多个第一学习事件,得到第一周期事件,并根据所述第二初始值合并所述多个第二学习事件,得到第二周期事件;
154.计算每个第一学习事件的第一代码覆盖率,并计算每个第二学习事件的第二代码覆盖率;
155.从所述第一周期事件中选取最大的第一代码覆盖率所对应的事件作为第一特征事件,并从所述第二周期事件中选取最大的第二代码覆盖率所对应的事件作为第二特征事件;
156.根据所述第一特征事件及所述第二特征事件计算所述第一待选值的覆盖增长速率;
157.若所述覆盖增长速率大于上一轮迭代处理的覆盖增长速率,则将所述第一待选值确定为下一轮迭代调整的第一初始值;
158.重复根据预设幅度调整所述第一初始值,直至所述覆盖增长速率小于或者等于所述上一轮迭代处理的覆盖增长速率,则将所述第一初始值确定为所述第一参数值。
159.例如,所述第二初始值为2,所述第一初始值为4,所述预设幅度为+1,经调整,第一待选值为5,经归并,所述第一学习事件中包含4个操作事件,所述第一周期事件中包含2个所述第一学习事件,分别为学习事件a和学习事件b,所述第二学习事件中包含5个操作事件,所述第二周期事件中包含2个所述第二学习事件,分别为学习事件c和学习事件d,经选取,所述第一特征事件为所述学习事件a,所述第二特征事件为所述学习事件d,根据所述学习事件a的代码覆盖率及所述学习事件d的代码覆盖率计算所述第一待选值5的覆盖增长速率为25%,上一轮迭代处理的覆盖增长速率为20%,则所述第一参数值确定为所述第一初始值4。
160.其中,所述预设幅度可以根据需求设定,例如,所述预设幅度可以设置为+1,所述
预设幅度也可以设置为-1,本发明对所述预设幅度的设定不作限制。
161.所述覆盖增长速率是指所述第一待选值所对应的第二特征事件与所述第一初始值所对应的第一特征事件在代码覆盖率上变化的快慢。
162.通过所述覆盖增长速率对所述第一初始值的调控,能够选取出合适的第一参数值,从而有利于提高后续筛选出的目标事件的代码覆盖率。
163.具体地,所述调整单元111计算每个第一学习事件的第一代码覆盖率包括:
164.统计所述操作事件的代码总量作为系统代码量;
165.统计每个第一学习事件的代码总量作为事件代码量;
166.根据所述事件代码量与所述系统代码量的比值生成所述第一代码覆盖率。
167.通过所述系统代码量及所述事件代码量能够快速的确定出所述第一代码覆盖率。
168.具体地,所述调整单元111根据所述第一特征事件及所述第二特征事件计算所述第一待选值的覆盖增长速率包括:
169.获取所述第一特征事件的事件标识作为第一标识,并获取所述第二特征事件的事件标识作为第二标识;
170.根据所述第一标识从所述第一代码覆盖率中选取第一数值,并根据所述第二标识从所述第二代码覆盖率中选取第二数值;
171.计算所述第二数值与所述第一数值的差值,得到代码覆盖增长量;
172.根据所述代码覆盖增长量在所述第一数值上的比值生成所述覆盖增长速率。
173.其中,所述第一标识是指能够唯一识别出所述第一特征事件的标签,所述第二标识是指能够唯一识别出所述第二特征事件的标签。
174.通过所述第一标识及所述第二标识能够准确的选取出所述第一数值及所述第二数值,从而提高所述覆盖增长速率的生成准确性。
175.在本发明的至少一个实施例中,所述调整单元111根据所述第一参数值及所述操作事件迭代调整所述第二初始值的方式与所述调整单元111根据所述操作事件及第二初始值迭代调整第一初始值的方式相似,本发明对此不再赘述。
176.归并单元112根据所述第一参数值归并处理所述操作事件,得到多个路径事件,并根据所述第二参数值归并处理所述多个路径事件,得到学习周期。
177.在本发明的至少一个实施例中,每个路径事件中包含数量为所述第一参数值的操作事件,每个学习周期中包含数量为所述第二参数值的路径事件。
178.在本发明的至少一个实施例中,所述归并单元112根据所述第一参数值归并处理所述操作事件,得到多个路径事件包括:
179.获取所述操作事件在所述测试系统上的操作顺序;
180.根据所述操作顺序依次对所述操作事件进行拼接,直至拼接的操作事件的数量为所述第一参数值,得到所述多个路径事件。
181.例如,所述操作事件包括:菜单下拉、方框勾选及提交按钮点击,获取所述操作事件在所述测试系统上的操作顺序为:菜单下拉

方框勾选

按钮点击。若所述第一参数值为2,则所述路径事件为:菜单下拉

方框勾选。
182.通过所述操作顺序拼接所述操作事件,能够生成的所述路径事件中遗漏了操作事件,提高了所述操作事件的归并全面性。
183.选取单元113基于所述学习周期中所有路径事件选取出所述学习周期的第一趋势代码。
184.在本发明的至少一个实施例中,所述第一趋势代码是指所述学习周期中路径代码量最大的路径事件所对应的执行代码。每个学习周期中包含一个第一趋势代码。
185.在本发明的至少一个实施例中,所述选取单元113基于所述学习周期中所有路径事件选取出所述学习周期的第一趋势代码包括:
186.从所述测试系统中获取每个路径事件的执行代码;
187.统计每个执行代码的代码量,得到每个路径事件的路径代码量;
188.将所述学习周期中所述路径代码量最大的路径事件确定为初筛事件;
189.将所述初筛事件所对应的执行代码确定为所述第一趋势代码。
190.其中,所述执行代码是指运行所述路径事件所对应的代码信息。
191.所述路径代码量是指所述执行代码的行数。
192.通过对每个学习周期中的路径事件的分析,能够准确的确定出所述第一趋势代码。
193.生成单元114根据所述第一趋势代码及所述学习周期所对应的周期代码生成所述学习周期的趋势权重。
194.在本发明的至少一个实施例中,所述周期代码是指运行所述学习周期所对应的代码信息,所述周期代码包括该学习周期所包含的路径事件所对应的代码信息。
195.每个学习周期中对应有相应的趋势权重,通过所述趋势权重能够调整用于测试所述测试系统所需的操作事件。
196.在本发明的至少一个实施例中,所述生成单元114根据所述第一趋势代码及所述学习周期所对应的周期代码生成所述学习周期的趋势权重包括:
197.将所述学习周期中所有路径事件的执行代码确定为所述周期代码;
198.根据所述周期代码及所述第一趋势代码计算所述学习周期的代码重合度;
199.根据预设值及所述代码重合度计算所述趋势权重,包括:
200.qn=(m-t1)
×
(m-t2)
…×
(m-tn);
201.其中,qn是指第n个学习周期的趋势权重,m是指所述预设值,tn是指所述第n个学习周期的代码重合度。
202.其中,所述代码重合度是指所述第一趋势代码与所述周期代码中相同的代码信息在所述周期代码中所占的比值。
203.所述预设值通常设定为1。
204.通过所述代码重合度对所述趋势权重的调整,确保了生成的趋势权重能够调控目标事件的筛选,从而有利于筛选出有意义的操作事件,便于所述测试系统的测试。
205.筛选单元115根据所述趋势权重及所述操作事件的操作代码从所述操作事件中筛选出入选事件,直至满足预设条件,得到目标事件。
206.在本发明的至少一个实施例中,所述预设条件包括:所述趋势权重小于或者等于第一配置值,以及,所述入选事件在多个所述操作事件上的代码覆盖率大于或者等于第二配置值。其中,所述第一配置值及所述第二配置值可以根据需求设定,例如,所述第一配置值可以设定为0.2,所述第二配置值可以设定为80%,本发明对所述第一配置值及所述第二
配置值的设定不作限制。
207.所述目标事件是指从所述操作事件中筛选出的事件。
208.在本发明的至少一个实施例中,所述筛选单元115根据所述趋势权重及所述操作事件的操作代码从所述操作事件中筛选出入选事件,直至满足预设条件,得到目标事件包括:
209.根据所述趋势权重从所述操作事件中迭代筛选出所述入选事件,包括:对于任意操作事件,根据所述操作代码计算所述任意操作事件在多个所述操作事件上的代码比值;检测所述任意操作事件所在的学习周期作为目标周期;根据所述目标周期从多个所述趋势权重中提取目标权重;计算所述代码比值与所述目标权重的乘积,得到所述任意操作事件的事件分值;从多个所述操作事件中选取事件分值最大的操作事件作为所述入选事件;根据所述第一趋势代码及所述入选事件调整所述趋势权重,并将调整后的趋势权重确定为下一轮迭代筛选的趋势权重;
210.重复根据所述趋势权重从所述操作事件中迭代筛选出所述入选事件,直至所述趋势权重小于或者等于第一配置值,或者,所述入选事件在多个所述操作事件上的代码覆盖率大于或者等于第二配置值,停止从所述操作事件中筛选所述入选事件,并将所述入选事件、所述第一特征事件及所述第二特征事件确定为所述目标事件。
211.通过所述趋势权重能够从所述操作事件中准确的筛选出对所述测试系统的测试有利的目标事件,从而能够提高所述测试系统的测试准确性,通过所述预设条件对所述操作事件的筛选的调控,能够确保筛选出的目标事件满足测试需求,从而确保所述测试系统的测试全面性。
212.测试单元116根据所述目标事件对所述测试系统进行测试,得到测试结果。
213.在本发明的至少一个实施例中,所述测试结果是指所述目标事件对所述测试系统进行测试后所生成的结果。所述测试结果可以包括,所述测试系统测试成功,所述测试系统中的某个测试事件测试失败。
214.需要强调的是,为进一步保证上述测试结果的私密和安全性,上述测试结果还可以存储于一区块链的节点中。
215.在本发明的至少一个实施例中,所述测试单元116根据所述目标事件对所述测试系统进行测试,得到测试结果包括:
216.根据所述目标事件的事件类型读取预设的测试文件,得到测试所述目标事件所需的测试因素;
217.根据所述测试因素驱动所述目标事件对所述测试系统进行测试,得到所述测试结果。
218.其中,所述事件类型是指所述目标事件所属的操作类型,例如,目标事件a为点击“提交”按钮,目标事件b为点击“取消”按钮,目标事件c为勾选方框,则所述目标事件a及所述目标事件b的操作类型均为点击类型,所述目标事件c为勾选类型。
219.通过所述事件类型读取所述测试文件,能够准确的提取出测试所述目标事件所需的测试因素,从而能够准确的生成所述测试结果。
220.由以上技术方案可以看出,本发明通过对所述第一初始值及所述第二初始值进行调整,能够避免因所述第一初始值及所述第二初始值的设定不合理而造成所述测试系统的
测试覆盖率不能达到最大化,从而能够提高所述测试系统的测试准确性,进而通过所述趋势权重及所述操作事件的操作代码对所述操作事件进行筛选,能够使参与测试的目标事件在所述测试系统中的覆盖率达到需求,从而确保所述测试系统的测试准确性,本发明进一步利用筛选出的目标事件对所述测试系统进行测试,由于无需对所述测试系统中的所有操作事件进行测试,能够提高所述测试系统的测试效率。
221.如图3所示,是本发明实现系统测试方法的较佳实施例的电子设备的结构示意图。
222.在本发明的一个实施例中,所述电子设备1包括,但不限于,存储器12、处理器13,以及存储在所述存储器12中并可在所述处理器13上运行的计算机可读指令,例如系统测试程序。
223.本领域技术人员可以理解,所述示意图仅仅是电子设备1的示例,并不构成对电子设备1的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件,例如所述电子设备1还可以包括输入输出设备、网络接入设备、总线等。
224.所述处理器13可以是中央处理单元(central processing unit,cpu),还可以是其他通用处理器、数字信号处理器(digital signal processor,dsp)、专用集成电路(application specific integrated circuit,asic)、现场可编程门阵列(field-programmable gate array,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等,所述处理器13是所述电子设备1的运算核心和控制中心,利用各种接口和线路连接整个电子设备1的各个部分,及执行所述电子设备1的操作系统以及安装的各类应用程序、程序代码等。
225.示例性的,所述计算机可读指令可以被分割成一个或多个模块/单元,所述一个或者多个模块/单元被存储在所述存储器12中,并由所述处理器13执行,以完成本发明。所述一个或多个模块/单元可以是能够完成特定功能的一系列计算机可读指令段,该计算机可读指令段用于描述所述计算机可读指令在所述电子设备1中的执行过程。例如,所述计算机可读指令可以被分割成获取单元110、调整单元111、归并单元112、选取单元113、生成单元114、筛选单元115及测试单元116。
226.所述存储器12可用于存储所述计算机可读指令和/或模块,所述处理器13通过运行或执行存储在所述存储器12内的计算机可读指令和/或模块,以及调用存储在存储器12内的数据,实现所述电子设备1的各种功能。所述存储器12可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储根据电子设备的使用所创建的数据等。存储器12可以包括非易失性和易失性存储器,例如:硬盘、内存、插接式硬盘,智能存储卡(smart media card,smc),安全数字(secure digital,sd)卡,闪存卡(flash card)、至少一个磁盘存储器件、闪存器件、或其他存储器件。
227.所述存储器12可以是电子设备1的外部存储器和/或内部存储器。进一步地,所述存储器12可以是具有实物形式的存储器,如内存条、tf卡(trans-flash card)等等。
228.所述电子设备1集成的模块/单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明实现上述实施例方法中的全部或部分流程,也可以通过计算机可读指令来指令相关的硬件来
完成,所述的计算机可读指令可存储于一计算机可读存储介质中,该计算机可读指令在被处理器执行时,可实现上述各个方法实施例的步骤。
229.其中,所述计算机可读指令包括计算机可读指令代码,所述计算机可读指令代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质可以包括:能够携带所述计算机可读指令代码的任何实体或装置、记录介质、u盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(rom,read-only memory)、随机存取存储器(ram,random access memory)。
230.本发明所指区块链是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式。区块链(blockchain),本质上是一个去中心化的数据库,是一串使用密码学方法相关联产生的数据块,每一个数据块中包含了一批次网络交易的信息,用于验证其信息的有效性(防伪)和生成下一个区块。区块链可以包括区块链底层平台、平台产品服务层以及应用服务层等。
231.结合图1,所述电子设备1中的所述存储器12存储计算机可读指令实现一种系统测试方法,所述处理器13可执行所述计算机可读指令从而实现:
232.获取测试系统中的操作事件;
233.根据所述操作事件及第二初始值迭代调整第一初始值,得到第一参数值,并根据所述第一参数值及所述操作事件迭代调整所述第二初始值,得到第二参数值,所述第一初始值及所述第二初始值是基于归并所述操作事件而预先设定好的数值;
234.根据所述第一参数值归并处理所述操作事件,得到多个路径事件,并根据所述第二参数值归并处理所述多个路径事件,得到学习周期;
235.基于所述学习周期中所有路径事件选取出所述学习周期的第一趋势代码;
236.根据所述第一趋势代码及所述学习周期所对应的周期代码生成所述学习周期的趋势权重;
237.根据所述趋势权重及所述操作事件的操作代码从所述操作事件中筛选出入选事件,直至满足预设条件,得到目标事件;
238.根据所述目标事件对所述测试系统进行测试,得到测试结果。
239.具体地,所述处理器13对上述计算机可读指令的具体实现方法可参考图1对应实施例中相关步骤的描述,在此不赘述。
240.在本发明所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。
241.所述计算机可读存储介质上存储有计算机可读指令,其中,所述计算机可读指令被处理器13执行时用以实现以下步骤:
242.获取测试系统中的操作事件;
243.根据所述操作事件及第二初始值迭代调整第一初始值,得到第一参数值,并根据所述第一参数值及所述操作事件迭代调整所述第二初始值,得到第二参数值,所述第一初始值及所述第二初始值是基于归并所述操作事件而预先设定好的数值;
244.根据所述第一参数值归并处理所述操作事件,得到多个路径事件,并根据所述第二参数值归并处理所述多个路径事件,得到学习周期;
245.基于所述学习周期中所有路径事件选取出所述学习周期的第一趋势代码;
246.根据所述第一趋势代码及所述学习周期所对应的周期代码生成所述学习周期的趋势权重;
247.根据所述趋势权重及所述操作事件的操作代码从所述操作事件中筛选出入选事件,直至满足预设条件,得到目标事件;
248.根据所述目标事件对所述测试系统进行测试,得到测试结果。
249.所述作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。
250.另外,在本发明各个实施例中的各功能模块可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能模块的形式实现。
251.因此,无论从哪一点来看,均应将实施例看作是示范性的,而且是非限制性的,本发明的范围由所附权利要求而不是上述说明限定,因此旨在将落在权利要求的等同要件的含义和范围内的所有变化涵括在本发明内。不应将权利要求中的任何附关联图标记视为限制所涉及的权利要求。
252.此外,显然“包括”一词不排除其他单元或步骤,单数不排除复数。所述的多个单元或装置也可以由一个单元或装置通过软件或者硬件来实现。第一、第二等词语用来表示名称,而并不表示任何特定的顺序。
253.最后应说明的是,以上实施例仅用以说明本发明的技术方案而非限制,尽管参照较佳实施例对本发明进行了详细说明,本领域的普通技术人员应当理解,可以对本发明的技术方案进行修改或等同替换,而不脱离本发明技术方案的精神和范围。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1