软件功能变更的自动化测试方法、装置、设备及系统与流程

文档序号:28918159发布日期:2022-02-16 12:02阅读:150来源:国知局
软件功能变更的自动化测试方法、装置、设备及系统与流程

1.本发明涉及计算机技术领域,尤其涉及一种软件功能变更的自动化测试方法、装置、设备及系统。


背景技术:

2.随着技术的发展,各种应用程序和应用软件应运而生。在早期,这些应用程序通常是通过开发人员和部分用户使用之后,给出相应的修改意见,感觉没有问题后就进行上线。由于没有经过规范的软件测试,这些软件或多或少会存在一些bug(漏洞),这些bug有可能是功能上、兼容性、性能等各方面的问题,为了改善软件质量不高的问题,软件测试这门行业开始兴起。
3.目前,现有的技术是通过人工整理代码改动和合入的新功能,人工分析这些改动和新功能的测试要点,通过测试得到其中可能存在的问题,并进行改进,对后续上线的产品提供保证。
4.但是这种方法在敏捷模型产品研发过程中,往往不能快速给出测试报告,不能满足软件产品快速投产的要求。


技术实现要素:

5.本发明实施例提供一种软件功能变更的自动化测试方法、装置、设备及系统,可以快速得出测试报告,满足软件产品快速投产的要求。
6.第一方面,本发明实施例提供一种软件功能变更的自动化测试方法,所述方法包括:
7.获取待测试软件的旧版本代码、新版本代码以及新版本代码对应的注释信息;
8.对所述待测试软件的旧版本代码和新版本代码进行比对,得到所述新版本代码中的变更代码;
9.对所述注释信息进行自然语义分析,得到所述注释信息中的关键词;
10.通过所述关键词与功能标签进行匹配,得到匹配中的功能标签,将匹配中的功能标签对应的测试案例放入待回归测试集中;
11.根据所述变更代码和所述待回归测试集对所述待测试软件进行测试。
12.可选的,根据所述变更代码和所述待回归测试集对所述待测试软件进行测试,包括:
13.针对所述变更代码进行单元测试;
14.针对所述变更代码对应的接口进行自动化接口测试;
15.基于自动化测试框架,针对所述待回归测试集中的所有测试案例进行自动化测试;
16.输出得到的测试结果。
17.可选的,所述方法还包括:
18.获取所述待测试软件的多个测试案例以及每一测试案例对应的功能标签;
19.根据用户输入的关键词,和/或,根据用户输入的业务规则描述文本并根据所述业务规则描述文本确定关键词;
20.根据关键词构建业务功能语料库。
21.可选的,对所述注释信息进行自然语义分析,得到所述注释信息中的关键词,包括:
22.将所述注释信息中的第一个字符与所述业务功能语料库中的每一关键词的第一个字符进行匹配,确定匹配成功的至少一个关键词;
23.针对所述至少一个关键词中的每一关键词,将所述关键词与所述注释信息中前n个字符进行匹配,其中,n为关键词的字符数;
24.若关键词匹配成功,则从所述注释信息中拆分出前n个字符;
25.针对所述注释信息中的剩余字符,重复执行上述步骤,直至将所述注释信息拆分完毕。
26.可选的,根据所述业务规则描述文本确定关键词,包括:
27.根据所述业务规则描述文本生成多个字符组合;其中,每一字符组合为所述业务规则描述文本中相邻的多个字符组成的组合,且字符组合中字符的数量小于第一预设阈值;
28.对于每一字符组合,计算所述字符组合对应的第一次数和第二次数,其中,第一次数为所述字符组合在所述业务规则描述文本中出现的次数,所述第二次数为所述字符组合中各个字符在所述业务规则描述文本中出现的次数之和;
29.若所述第一次数和第二次数的比值大于第二预设阈值,则确定所述字符组合为关键词。
30.可选的,通过所述关键词与功能标签进行匹配,得到匹配中的功能标签,包括:
31.对于每一功能标签,若所述关键词与所述功能标签中的至少一个字符相匹配,则功能标签为匹配中的功能标签。
32.第二方面,本发明实施例提供一种软件功能变更的自动化测试装置,所述装置包括:
33.获取模块,用于获取待测试软件的旧版本代码、新版本代码以及新版本代码对应的注释信息;
34.第一得到模块,用于对所述待测试软件的旧版本代码和新版本代码进行比对,得到所述新版本代码中的变更代码;
35.第二得到模块,用于对所述注释信息进行自然语义分析,得到所述注释信息中的关键词;
36.第三得到模块,用于通过所述关键词与功能标签进行匹配,得到匹配中的功能标签,将匹配中的功能标签对应的测试案例放入待回归测试集中;
37.测试模块,用于根据所述变更代码和所述待回归测试集对所述待测试软件进行测试。
38.第三方面,本发明实施例提供一种电子设备,包括:处理器,以及与所述处理器通信连接的存储器;
39.所述存储器存储计算机执行指令;
40.所述处理器执行所述存储器存储的计算机执行指令,以实现如上第一方面任一项所述的方法。
41.第四方面,本发明实施例提供一种软件功能变更的自动化测试系统,包括:
42.版本服务器,用于提供旧版本代码、新版本代码和注释信息给主服务器;
43.代理服务器,用于获取所述主服务器发送的变更代码和待回归测试集,并下发给测试设备;
44.所述测试设备,用于接收所述代理服务器发送的变更代码和待回归测试集,对待测试软件测试。
45.所述主服务器,用于执行第一方面任一项所述的方法。
46.第五方面,本发明实施例提供一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机执行指令,所述计算机执行指令被处理器执行时,用于实现如上第一方面任一项所述的方法。
47.第六方面,本发明实施例提供一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现如上第一方面任一项所述的方法。
48.本发明实施例提供的软件功能变更的自动化测试方法、装置、设备及系统,获取待测试软件的旧版本代码、新版本代码以及新版本代码对应的注释信息,对所述待测试软件的旧版本代码和新版本代码进行比对,得到所述新版本代码中的变更代码,对所述注释信息进行自然语义分析,得到所述注释信息中的关键词,通过所述关键词与功能标签进行匹配,得到匹配中的功能标签,将匹配中的功能标签对应的测试案例放入待回归测试集中,根据所述变更代码和所述待回归测试集对所述待测试软件进行测试,通过获取变更代码和注释信息,对注释信息进行自然语义分析,得到对应的测试案例,然后执行自动化测试,节省了工作人员根据人工分析变更代码并编译测试用例的时间,提高测试效率,满足产品快速迭代的需求。
附图说明
49.此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本发明的实施例,并与说明书一起用于解释本发明的原理。
50.图1为本发明实施例提供的一种应用场景示意图;
51.图2为本发明实施例提供的一种移动终端软件变更的传统测试方法流程示意图;
52.图3为本发明实施例提供的一种软件功能变更的自动化测试方法的流程示意图;
53.图4为本发明实施例提供的另一种软件功能变更的自动化测试方法的流程示意图;
54.图5为本发明实施例提供的一种软件功能变更的自动化测试装置的结构示意图;
55.图6为本发明实施例提供的一种软件功能变更的自动化测试设备的结构示意图;
56.图7为本发明实施例提供一种软件功能变更的自动化测试系统的示意图。
57.通过上述附图,已示出本发明明确的实施例,后文中将有更详细的描述。这些附图和文字描述并不是为了通过任何方式限制本发明构思的范围,而是通过参考特定实施例为本领域技术人员说明本发明的概念。
具体实施方式
58.这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本发明相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本发明的一些方面相一致的装置和方法的例子。
59.下面以具体地实施例对本发明的技术方案以及本发明的技术方案如何解决上述技术问题进行详细说明。下面这几个具体的实施例可以相互结合,对于相同或相似的概念或过程可能在某些实施例中不再赘述。
60.下面对本发明实施例提供的一种应用场景进行解释:本发明实施例提供的方案,涉及到对软件功能变更的测试。随着技术的不断发展,软件功能也在不断更新迭代,对于更新后的软件需要进行软件测试,才能投入使用。
61.在实际应用中,用户需要对软件更新后才能享受软件更新后的功能。图1为本发明实施例提供的一种应用场景示意图。如图1所示,本发明实施例可以应用于移动终端,例如手机中。在手机的一项应用软件中,具有转账和收款的功能,当对该应用软件更新后,增加了红包的功能,使用户可以在该应用软件上实现收发红包的功能。
62.在一些技术中,图2为本发明实施例提供的一种移动终端软件变更的传统测试方法流程示意图,如图2所示,针对移动终端软件变更的测试方法,可以是通过人工整理代码改动和合入的新功能,人工分析代码变更和功能变更描述,形成测试方案,然后通过人工执行测试用例,若所有测试用例测试通过,则终止测试,若所有测试用例中存在部分测试用例没有通过,则继续进行测试,实现对变更功能的测试,这种方法在瀑布模型产品研发中,可以保证质量的要求,但是在敏捷模型产品中往往不能快速给出测试报告,不能满足快速迭代、快速投产的要求。
63.其中,瀑布模型为经典的软件生命周期模型,在这个模型里,项目团队专注于定义产品和项目的总体范围,然后制定产品交付计划,接着通过各个阶段来执行,包括可行性分析、需求分析、概要设计、详细设计、编码、测试和运行维护几个阶段。如果有新增范围,则需要重新计划和正式确认。
64.敏捷模型为迭代开发的软件工程方法,将任务分解为较小的迭代,在开发过程中就确定项目范围和要求。每个迭代都包含整个软件开发周期的工作,包括计划、需求分析、设计、编码和测试等。
65.因此,本发明的实施例提供了一种软件功能变更的自动化测试方法,通过获取待测试软件的新、旧版本代码,以及新版本代码对应的注释信息,得到新版本代码中对应的变更代码,对注释信息进行自然语义分析,得到其中的关键词,根据关键词与功能标签进行匹配,将匹配中的功能标签对应的测试案例放入待回归测试集中,根据变更代码和待回归测试集对待测试软件进行测试,基于对注释信息的自然语义分析,构建自动执行测试用例的方法,节省了工作人员根据人工分析变更代码并编译测试用例的时间,提高测试效率。
66.下面结合附图,对本发明的一些实施方式作详细说明。在各实施例之间不冲突的情况下,下述的实施例及实施例中的特征可以相互组合。
67.图3为本发明实施例提供的一种软件功能变更的自动化测试方法的流程示意图。如图3所示,本实施例中的方法可以包括:
68.步骤301、获取待测试软件的旧版本代码、新版本代码以及新版本代码对应的注释信息。
69.其中,注释信息可以是为开发人员在提交新版本代码时,对变更功能进行的标准化、清晰化描述。例如:贷记卡本行转账还款、借记卡跨行转账等。
70.旧版本代码可以为待测试软件当前版本的代码,新版本代码可以为待测试软件即将更新到的版本代码。
71.可选的,可以通过主服务器获取待测试软件的旧版本代码、新版本代码以及新版本代码对应的注释信息。
72.主服务器可以与代码托管服务器连接,通过git whatchanged命令获取旧版本代码和新版本代码。其中,代码托管服务器可以为git代码仓库。
73.主服务器可以与版本服务器连接,通过git log命令,获取新版本代码对应的注释信息。
74.步骤302、对所述待测试软件的旧版本代码和新版本代码进行比对,得到所述新版本代码中变更代码。
75.可选的,可以通过代码比对工具对待测试软件的旧版本代码和新版本代码进行比对,得到新版本代码中未变更代码所在的行和变更代码所在的行。
76.步骤303、对所述注释信息进行自然语义分析,得到所述注释信息中的关键词。
77.其中,自然语义分析为计算机使用自然语言处理方法,研究词语的含义、结构,实现对句子的划分,得到句子中的词语。
78.可选的,可以通过计算机对注释信息进行自然语义分析,通过对注释信息中的词语进行拆分,检测拆分出的词语与计算机中存储的词语是否匹配,若匹配则拆分出的词语为所述注释信息的关键测。
79.示例性的,对注释信息“借记卡本行转账”进行词语拆分,当拆分出“借记”时,该词语不能与计算机存储的词语进行匹配,则该词不是注释信息中的关键词,当拆分出“借记卡”时,该词语可以与计算机存储的词语进行匹配,则该词为注释信息中的关键词。
80.步骤304、通过所述关键词与功能标签进行匹配,得到匹配中的功能标签,将匹配中的功能标签对应的测试案例放入待回归测试集中。
81.其中,功能标签可以为描述功能性的文字,例如:开立新账户,信用卡还款等。功能标签与测试案例是一一对应的关系,测试用例可以用于对功能标签对应功能进行检测。测试案例可以为ui(user interface)自动化测试案例。
82.可选的,通过关键词与功能标签进行匹配,可以得到与关键词对应的多个功能标签,并将多个功能标签对应的测试案例放入待回归测试集中。
83.示例性的,关键词为转账,则对应的功能标签可以为转账还款、跨行转账和本行转账等,将转账还款、跨行转账和本行转账等功能标签对应的测试案例放入待回归测试集中。
84.步骤305、根据所述变更代码和所述待回归测试集对所述待测试软件进行测试。
85.可选的,可以根据变更代码对待测试软件进行测试,测试待测试软件中的变更代码是否存在漏洞,以及变更代码对未变更代码是否存在影响,影响之前未变更代码的运行。
86.还可以根据待回归测试集对待测试软件中的变更功能进行测试,测试已经变更的功能是否存在漏洞,以及已变更的功能对未变更的功能是否存在影响。
87.本实施例提供的软件功能变更的自动化测试方法,获取待测试软件的旧版本代码、新版本代码以及新版本代码对应的注释信息,对所述待测试软件的旧版本代码和新版本代码进行比对,得到所述新版本代码中的变更代码,对所述注释信息进行自然语义分析,得到所述注释信息中的关键词,通过所述关键词与功能标签进行匹配,得到匹配中的功能标签,将匹配中的功能标签对应的测试案例放入待回归测试集中,根据所述变更代码和所述待回归测试集对所述待测试软件进行测试,通过获取变更代码和注释信息,对注释信息进行自然语义分析,得到对应的测试案例,然后执行自动化测试,节省了工作人员根据人工分析变更代码并编译测试用例的时间,提高测试效率,满足产品快速迭代的需求。
88.在上述实施例提供的技术方案的基础上,可选的,根据所述变更代码和所述待回归测试集对所述待测试软件进行测试,包括:
89.针对所述变更代码进行单元测试;针对所述变更代码对应的接口进行自动化接口测试;基于自动化测试框架,针对所述待回归测试集中的所有测试案例进行自动化测试;输出得到的测试结果。
90.可选的,根据所述变更代码所在的行,确定需要检测的类和方法,即根据变更代码所在的行,确定新版本代码实际更改了哪些类和方法,并对其进行单元检测,检测代码是否存在漏洞,并得到对应的测试结果。在对变更的代码进行单元测试时,若得到的测试结果均通过,则变更代码执行正常,若得到的测试结果存在部分没有通过,则可执行多次测试,避免由于网络问题使得测试结果不准确,若多次测试后,仍存在部分测试没有通过,也可通过人为方式对其进行修改更正。
91.其中,在单元测试时,可以通过单元测试框架实现,例如,可以通过code,review等方法实现。
92.可选的,根据所述变更代码涉及的接口,执行自动化接口测试,测试更改后的代码对应的变更功能,不是在ui界面上进行的测试,并对输出的测试结果进行统计。若得到的测试结果均通过,则变更代码对应的功能执行正常,若得到的测试结果存在部分没有通过,则可执行多次测试,避免由于网络问题使得测试结果不准确的情况,若多次测试后,仍存在部分测试没有通过,也可通过人为方式对其进行修改更正。其中,自动化接口测试可以通过postman、jmeter、loadrunner等工具实现。
93.可选的,可以基于appium或者uiautomator等自动化测试框,执行待回归测试集中的测试案例,并对执行结果进行统计,若所有测试案例均通过,则测试完成,若存在部分测试案例没有通过,则可对未通过的测试案例进行多次测试,若仍未通过,则可通过人工方式进行修正测试。
94.可选的,工作人员还可以根据测试结果,得出待测试软件对应的测试报告,以帮助工作人员根据测试报告对待测试软件进行调整。
95.通过对变更代码进行单元测试,对所述变更代码对应的接口进行自动化接口测试,对待回归测试集中的测试案例进行自动化测试,可以实现对变更代码、变更功能的测试,提高测试的自动化操作,提高测试效率。
96.可选的,所述方法还包括:获取所述待测试软件的多个测试案例以及每一测试案例对应的功能标签;根据用户输入的关键词,和/或,根据用户输入的业务规则描述文本并根据所述业务规则描述文本确定关键词;根据关键词构建业务功能语料库。可选的,在获取
待测试软件的代码和注释信息之前,可以先获取待测试软件的多个测试案例以及每一测试案例对应的功能标签。其中,可以通过用户对待测试软件编写测试案例,并对每一测试案例的功能点进行标注,得到每一测试案例对应的功能标签。
97.可选的,在获取待测试软件的代码和注释信息之前,可以根据用户输入的关键词构建业务功能语料库。其中,关键词可以为用户通过对相关软件中可能涉及到的词语进行提取。
98.可选的,可以根据用户输入的业务规则描述文本确定对应的关键词,并根据关键词构建业务功能语料库。
99.可选的,可以根据用户输入的关键词和用户输入的业务规则描述文本确定对应的关键词,将两者得到的关键词取并集,得到最终的关键词,并根据最终得到的关键词构建业务功能语料库。
100.示例性的,关键词可以为借记卡、转账等,业务规则描述文本可以为查询借记卡还款的业务功能、借记卡转账的业务功能等。
101.通过获取每一测试案例对应的功能标签,以及构建功能语料库,可以用于提高对注释信息的自然语义分析,得到准确的关键词以及对应的功能标签。
102.可选的,根据所述业务规则描述文本确定关键词,包括:
103.根据所述业务规则描述文本生成多个字符组合;其中,每一字符组合为所述业务规则描述文本中相邻的多个字符组成的组合,且字符组合中字符的数量小于第一预设阈值;对于每一字符组合,计算所述字符组合对应的第一次数和第二次数,其中,第一次数为所述字符组合在所述业务规则描述文本中出现的次数,所述第二次数为所述字符组合中各个字符在所述业务规则描述文本中出现的次数之和;若所述第一次数和第二次数的比值大于第二预设阈值,则确定所述字符组合为关键词。
104.其中,第一预设阈值可以是人为设定的,可以设定为4,5等。第二预设阈值也可以是人为设定的,可以为0.2,0.3等。
105.其中,根据第一预设阈值,可以统计业务规则描述文本中小于第一预设阈值的多个字符组合。例如,当第一预设阈值为5时,可以分别统计业务规则描述文本中2、3或4个字符组合。
106.可选的,对于每一字符组合,字符组合在业务规则描述文本中出现的次数为第一次数,字符组合中各个字符在业务规则描述文本中出现的次数之和为第二次数,计算第一次数与第二次数的比值,当得到的比值大于第二预设阈值时,则字符组合为关键词。
107.具体的,对于字符为2的字符组合,计算业务规则描述文本中两个字符组合“转账”出现的第一次数为200,以及计算业务规则描述文本中两个字符组合中各个字符出现的第二次数为800,计算第一次数与第二次数的比值为0.25大于第二预设阈值0.2,则确定两个字符组合“转账”为关键词。
108.计算业务规则描述文本中,字符组合对应的第一次数与第二次数的比值,当比值大于第二预设阈值时,确定关键词,可以提高确定关键词的效率。
109.可选的,对所述注释信息进行自然语义分析,得到所述注释信息中的关键词,包括:
110.将所述注释信息中的第一个字符与所述业务功能语料库中的每一关键词的第一
个字符进行匹配,确定匹配成功的至少一个关键词;针对所述至少一个关键词中的每一关键词,将所述关键词与所述注释信息中前n个字符进行匹配,其中,n为关键词的字符数;若关键词匹配成功,则从所述注释信息中拆分出前n个字符;针对所述注释信息中的剩余字符,重复执行上述步骤,直至将所述注释信息拆分完毕。
111.可选的,将注释信息中的第一字符与业务功能语料库中每一关键词的第一字符进行匹配,若匹配成功,则得到匹配成功的至少一个关键词,根据匹配成功的至少一个关键词判断是否与注释信息中的前n个词匹配,若匹配成功,则可以拆分出注释信息中前n个字符的词语。若匹配不成功,则注释信息中不存在匹配成功的至少一个关键词,则可以从注释信息中的第二个字符与业务功能语料库中的每一关键词的第一个字符进行匹配。若注释信息中的每一个字符均不能与关键词中的第一个字符匹配成功,则该注释信息中的信息在业务功能语料库中不存在,并显示“未匹配成功的关键词”的对话框给用户,以提醒用户对注释信息中的语句进行更改。
112.若从注释信息中拆分出第一个关键词,可以根据注释信息中剩余的词语的第一个字符执行上述操作,直到拆分出注释信息中存在的所有关键词。
113.示例性的,注释信息为abced,业务功能语料库中的关键词为ab,dc和ced,将注释信息中的第一个字符与业务功能语料库中的每一关键词的第一个字符进行匹配,可以匹配到的关键词为ab,再判断关键词ab是否与注释信息的前2个字符匹配,若匹配,则拆分出注释信息中的关键词为ab,再将注释信息中的剩余词语ced中的第一个字符c与关键词中的第一字符进行匹配,可以匹配到关键词ced,判断关键词ced是否与注释信息的前3个字符匹配,若匹配,则拆分出注释信息中的关键词ced。
114.根据业务功能语料库中的关键词对注释信息进行拆分,根据匹配关系,可以提高获取注释信息中关键词的准确性。
115.可选的,通过所述关键词与功能标签进行匹配,得到匹配中的功能标签,包括:对于每一功能标签,若所述关键词与所述功能标签中的至少一个字符相匹配,则功能标签为匹配中的功能标签。
116.可选的,可以通过关键词与每一功能标签中的至少一个字符相匹配,若匹配成功,则功能标签为匹配中的功能标签。
117.示例性的,若关键词ab与功能标签abcde进行匹配,则将关键词依次与功能标签中的词语匹配,即将关键词ab分别与功能标签abcde中的ab,bc,cd和de进行匹配,由于关键词ab与功能标签abcde中的ab匹配中,则该功能标签abcde为匹配中的功能标签。
118.通过将关键词分别对功能标签中的词语进行匹配,得到与关键词对应的功能标签,可以提高匹配效率和准确性。
119.图4为本发明实施例提供的另一种软件功能变更的自动化测试方法的流程示意图,在前述实施例的基础上,具体通过自然语义分析模块、单元测试模块和自动化接口测试模块实现对软件功能变更的自动化测试,如图4所示,从自动化测试前置步骤模块获取待测试软件对应的旧版本代码和新版本代码,通过代码变更记录检索匹配模块对旧版本代码和新版本代码进行匹配,得到对应的变更代码,通过单元测试模块对变更代码进行单元测试,通过自动化接口测试模块对变更代码的接口进行自动化接口测试,并得到测试结果,若所有测试均通过,则终止测试,若存在测试不通过,则继续测试。
120.通过自动化测试前置步骤模块,得到注释信息,通过自然语义分析模块对注释信息进行语义分析,得到对应的关键词,通过关键词与功能标签进行匹配,将匹配中的功能标签对应的测试案例放入待回归测试集中,通过自动化测试模块,对待回归测试集中的测试案例执行自动化测试,并得到测试结果,若测试案例均通过则终止测试,若存在部分测试案例未通过,则继续测试。
121.通过自然语义分析模块、单元测试模块和自动化接口测试模块实现对软件功能变更的自动化测试,可以提高测试效率,降低成本。
122.图5为本发明实施例提供的一种软件功能变更的自动化测试装置的结构示意图。如图5所示,本实施例提供的软件功能变更的自动化测试装置,可以包括:
123.获取模块501,用于获取待测试软件的旧版本代码、新版本代码以及新版本代码对应的注释信息;
124.第一得到模块502,用于对所述待测试软件的旧版本代码和新版本代码进行比对,得到所述新版本代码中的变更代码;
125.第二得到模块503,用于对所述注释信息进行自然语义分析,得到所述注释信息中的关键词;
126.第三得到模块504,用于通过所述关键词与功能标签进行匹配,得到匹配中的功能标签,将匹配中的功能标签对应的测试案例放入待回归测试集中;
127.测试模块505,用于根据所述变更代码和所述待回归测试集对所述待测试软件进行测试。
128.可选的,所述测试模块505具体用于:
129.针对所述变更代码进行单元测试;
130.针对所述变更代码对应的接口进行自动化接口测试;
131.基于自动化测试框架,针对所述待回归测试集中的所有测试案例进行自动化测试;
132.输出得到的测试结果。
133.可选的,所述测试模块505还用于:
134.获取所述待测试软件的多个测试案例以及每一测试案例对应的功能标签;
135.根据用户输入的关键词,
136.和/或,根据用户输入的业务规则描述文本并根据所述业务规则描述文本确定关键词;
137.根据关键词构建业务功能语料库。
138.可选的,所述第二得到模块503具体用于:
139.将所述注释信息中的第一个字符与所述业务功能语料库中的每一关键词的第一个字符进行匹配,确定匹配成功的至少一个关键词;
140.针对所述至少一个关键词中的每一关键词,将所述关键词与所述注释信息中前n个字符进行匹配,其中,n为关键词的字符数;
141.若关键词匹配成功,则从所述注释信息中拆分出前n个字符;
142.针对所述注释信息中的剩余字符,重复执行上述步骤,直至将所述注释信息拆分完毕。
143.可选的,所述第二得到模块503,在根据所述业务规则描述文本确定关键词时,具体用于:
144.根据所述业务规则描述文本生成多个字符组合;其中,每一字符组合为所述业务规则描述文本中相邻的多个字符组成的组合,且字符组合中字符的数量小于第一预设阈值;
145.对于每一字符组合,计算所述字符组合对应的第一次数和第二次数,其中,第一次数为所述字符组合在所述业务规则描述文本中出现的次数,所述第二次数为所述字符组合中各个字符在所述业务规则描述文本中出现的次数之和;
146.若所述第一次数和第二次数的比值大于第二预设阈值,则确定所述字符组合为关键词。
147.可选的,所述第三得到模块504具体用于:
148.对于每一功能标签,若所述关键词与所述功能标签中的至少一个字符相匹配,则功能标签为匹配中的功能标签。
149.本实施例提供的装置可以执行如图1-图4所示的方法实施例的技术方案,其实现原理和技术效果类似,此处不再赘述。
150.图6为本发明实施例提供的一种软件功能变更的自动化测试设备的结构示意图。如图6所示,本实施例提供的电子设备,可以包括:处理器61,以及与所述处理器通信连接的存储器62;
151.所述存储器62存储计算机执行指令;
152.所述处理器61执行所述存储器62存储的计算机执行指令,使得所述处理器61执行上述任一实施例所述的方法。
153.其中,存储器62和处理器61可以通过总线63连接。
154.本实施例提供的设备的具体实现原理和效果可以参见图1-图4所示实施例对应的相关描述和效果,此处不做过多赘述。
155.图7为本发明实施例提供一种软件功能变更的自动化测试系统的示意图,如图7所示,所述系统包括:
156.版本服务器,用于提供旧版本代码、新版本代码和注释信息给主服务器;
157.代理服务器,用于获取所述主服务器发送的变更代码和待回归测试集,并下发给测试设备;
158.所述测试测试设备,用于接收所述代理服务器发送的变更代码和待回归测试集,对所述变更代码进行单元测试,对所述变更代码对应的接口进行自动化接口测试,对所述待回归测试集中的测试案例进行自动化测试。
159.可选的,版本服务器提取待测试软件的旧版本代码、新版本代码和注释信息给主服务器,主服务器对待测试软件的旧版本代码和新版本代码进行比对,得到新版本代码中的变更代码,对注释信息进行自然语义分析,得到注释信息中的关键词,并根据关键词匹配对应的功能标签,将功能标签对应的测试案例放入待回归测试集中,并将变更代码和待回归测试集发送给代理服务器。代理服务器获取主服务器发送的变更代码和待回归测试集,并下发给测试设备,测试设备根据接收到的变更代码和待回归测试集,对待测试软件进行测试。
160.本发明实施例还提供一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行以实现本发明任一实施例提供的软件功能变更的自动化测试方法。
161.本发明实施例还提供一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现本发明任一实施例所述的软件功能变更的自动化测试方法。
162.在本发明所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个模块或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或模块的间接耦合或通信连接,可以是电性,机械或其它的形式。
163.所述作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案。
164.另外,在本发明各个实施例中的各功能模块可以集成在一个处理单元中,也可以是各个模块单独物理存在,也可以两个或两个以上模块集成在一个单元中。上述模块成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。
165.上述以软件功能模块的形式实现的集成的模块,可以存储在一个计算机可读取存储介质中。上述软件功能模块存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器执行本发明各个实施例所述方法的部分步骤。
166.应理解,上述处理器可以是中央处理单元(central processing unit,简称cpu),还可以是其它通用处理器、数字信号处理器(digital signal processor,简称dsp)、专用集成电路(application specific integrated circuit,简称asic)等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合发明所公开的方法的步骤可以直接体现为硬件处理器执行完成,或者用处理器中的硬件及软件模块组合执行完成。
167.存储器可能包含高速ram存储器,也可能还包括非易失性存储nvm,例如至少一个磁盘存储器,还可以为u盘、移动硬盘、只读存储器、磁盘或光盘等。
168.总线可以是工业标准体系结构(industry standard architecture,简称isa)总线、外部设备互连(peripheral component interconnect,简称pci)总线或扩展工业标准体系结构(extended industry standard architecture,简称eisa)总线等。总线可以分为地址总线、数据总线、控制总线等。为便于表示,本发明附图中的总线并不限定仅有一根总线或一种类型的总线。
169.上述存储介质可以是由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(sram),电可擦除可编程只读存储器(eeprom),可擦除可编程只读存储器(eprom),可编程只读存储器(prom),只读存储器(rom),磁存储器,快闪存储器,磁盘或光盘。存储介质可以是通用或专用计算机能够存取的任何可用介质。
170.一种示例性的存储介质耦合至处理器,从而使处理器能够从该存储介质读取信息,且可向该存储介质写入信息。当然,存储介质也可以是处理器的组成部分。处理器和存储介质可以位于专用集成电路(application specific integrated circuits,简称asic)
中。当然,处理器和存储介质也可以作为分立组件存在于电子设备或主控设备中。
171.本领域普通技术人员可以理解:实现上述各方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成。前述的程序可以存储于一计算机可读取存储介质中。该程序在执行时,执行包括上述各方法实施例的步骤;而前述的存储介质包括:rom、ram、磁碟或者光盘等各种可以存储程序代码的介质。
172.本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本发明的其它实施方案。本发明旨在涵盖本发明的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本发明的一般性原理并包括本发明未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本发明的真正范围和精神由下面的权利要求书指出。
173.应当理解的是,本发明并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本发明的范围仅由所附的权利要求书来限制。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1