CN112685312A - 一种未覆盖代码的测试用例推荐方法及装置 - Google Patents
一种未覆盖代码的测试用例推荐方法及装置 Download PDFInfo
- Publication number
- CN112685312A CN112685312A CN202011645213.1A CN202011645213A CN112685312A CN 112685312 A CN112685312 A CN 112685312A CN 202011645213 A CN202011645213 A CN 202011645213A CN 112685312 A CN112685312 A CN 112685312A
- Authority
- CN
- China
- Prior art keywords
- information
- uncovered
- code
- submission
- target
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 238000012360 testing method Methods 0.000 title claims abstract description 128
- 238000000034 method Methods 0.000 title claims abstract description 102
- 238000004590 computer program Methods 0.000 claims description 24
- 238000012216 screening Methods 0.000 claims description 16
- 238000010586 diagram Methods 0.000 description 8
- 230000008569 process Effects 0.000 description 8
- 230000006870 function Effects 0.000 description 5
- 238000012986 modification Methods 0.000 description 5
- 230000004048 modification Effects 0.000 description 5
- 238000013522 software testing Methods 0.000 description 5
- 239000013589 supplement Substances 0.000 description 3
- 230000009286 beneficial effect Effects 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 238000012508 change request Methods 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000011156 evaluation Methods 0.000 description 1
- 235000013372 meat Nutrition 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 230000001502 supplementing effect Effects 0.000 description 1
Images
Classifications
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Debugging And Monitoring (AREA)
Abstract
本发明公开了一种未覆盖代码的测试用例推荐方法、装置、计算机设备及存储介质,该方法包括:对目标应用程序的覆盖率报告进行分析,获取覆盖率报告中包含的未覆盖代码信息,利用未覆盖代码信息以及第一预设查询方法查找未覆盖代码对应的文件的目标提交信息,利用第二预设查询方法查询出包含目标提交信息的所有分支信息,根据分支信息查询需求管理系统,获取未覆盖代码对应的需求信息,根据需求信息查询用例管理系统,获取与未覆盖代码对应的测试用例,并反馈给相应的测试者。本发明通过自动快捷地查询出未覆盖部分的代码对应的需求信息,为未覆盖代码推荐合适的测试用例,提高未覆盖代码的测试用例推荐的效率。
Description
技术领域
本发明涉及软件测试技术领域,特别涉及一种未覆盖代码的测试用例推荐方法、装置、计算机设备及存储介质。
背景技术
在软件开发过程中,需要对开发的应用程序进行相关软件测试。软件测试是指在规定的条件下对应用程序进行操作,以发现程序错误,衡量应用质量,对其是否能满足设计要求进行评估的过程。在进行软件测试时,通常需要对软件测试过程进行代码覆盖率测试。代码覆盖是软件测试中的一种度量,描述程序中源代码被测试的比例和程度,所得比例称为代码覆盖率,即代码覆盖率表征了代码在测试中能够被覆盖的程度。通常,未被覆盖的代码需要重新进行相关软件测试。
测试用例(Test Case)是为某个特殊目标而编制的一组测试输入、执行条件以及预期结果,以便测试某个程序路径或核实是否满足某个特定需求。针对应用程序的测试用例集往往很大,在针对应用程序的未被覆盖的代码重新执行进行相关测试,选取测试用例时,往往会出现以下问题:查看覆盖率报告中未覆盖部分的代码时,通常只能凭检查者的记忆去看是哪个业务的代码,如不知道则需询问开发人员,并且只能通过人肉一条一条去查找,费时费力。
由此,在进行未覆盖代码的重新测试时,如何为未覆盖代码的从海量的测试用例集中推荐合适的测试用例,以使得在满足测试的同时,尽量减少测试用例的查找时间,是目前面临的主要问题。
因此,亟需提出一种新的测试用例推荐方法,以解决上述问题。
发明内容
为了解决现有技术的问题,本发明实施例提供了一种未覆盖代码的测试用例推荐方法、装置、计算机设备以及存储介质,以克服现有技术中存在的为未覆盖代码推荐合适的测试用例工作量过大、耗时过长等问题。
为解决上述一个或多个技术问题,本发明采用的技术方案是:
第一方面,提供了一种未覆盖代码的测试用例推荐方法方法,该方法包括如下步骤:
对目标应用程序的覆盖率报告进行分析,获取所述覆盖率报告中包含的未覆盖代码信息;
利用所述未覆盖代码信息以及第一预设查询方法查找所述未覆盖代码对应的文件的目标提交信息;
利用第二预设查询方法查询出包含所述目标提交信息的所有分支信息;
根据所述分支信息查询需求管理系统,获取所述未覆盖代码对应的需求信息;
根据所述需求信息查询用例管理系统,获取与所述未覆盖代码对应的测试用例,并反馈给相应的测试者。
进一步的,所述利用所述未覆盖代码信息以及第一预设查询方法查找所述未覆盖代码对应的文件的目标提交信息包括:。
基于所述未覆盖代码信息生成检索关键字;
利用所述检索关键字以及第一预设查询方法查找所述未覆盖代码对应的文件的目标提交信息。
进一步的,所述利用所述未覆盖代码信息以及第一预设查询方法查找所述未覆盖代码对应的文件的目标提交信息包括:
利用所述未覆盖代码信息以及第一预设查询方法查找所述未覆盖代码对应的文件的所有提交信息;
按照预设规则从所述所有提交信息中筛选出符合要求的目标提交信息。
进一步的,所述按照预设规则从所述所有提交信息中筛选出符合要求的目标提交信息包括:
获取各个提交信息对应的提交时间,筛选出提交时间最新的提交信息作为目标提交信息。
进一步的,所述需求信息包括所述分支的覆盖数据,所述根据所述需求信息查询用例管理系统,获取与所述未覆盖代码对应的测试用例包括:
将所述分支的覆盖数据与所述覆盖率报告中对应的覆盖数据进行比对,判断所述分支的覆盖数据与所述覆盖率报告中对应的覆盖数据的未覆盖部分是否相同,若不相同,则根据所述需求信息查询用例管理系统,获取与所述未覆盖代码对应的测试用例。
进一步的,所述方法还包括:
若判断出所述分支的覆盖数据与所述覆盖率报告中对应的覆盖数据的未覆盖部分相同,则向相应的测试者反馈需要补充测试用例的信息。
第二方面,提供了一种未覆盖代码的测试用例推荐装置,所述装置包括:
代码获取模块,用于对目标应用程序的覆盖率报告进行分析,获取所述覆盖率报告中包含的未覆盖代码信息;
第一查询模块,用于利用所述未覆盖代码信息以及第一预设查询方法查找所述未覆盖代码对应的文件的目标提交信息;
第二查询模块,用于利用第二预设查询方法查询出包含所述目标提交信息的所有分支信息;
需求获取模块,用于根据所述分支信息查询需求管理系统,获取所述未覆盖代码对应的需求信息;
用例获取模块,用于根据所述需求信息查询用例管理系统,获取与所述未覆盖代码对应的测试用例,并反馈给相应的测试者。
进一步的,所述第一查询模块包括:
关键字生成单元,用于基于所述未覆盖代码信息生成检索关键字;
信息查询单元,用于利用所述检索关键字以及第一预设查询方法查找所述未覆盖代码对应的文件的目标提交信息。
第三方面,提供了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如下步骤:
对目标应用程序的覆盖率报告进行分析,获取所述覆盖率报告中包含的未覆盖代码信息;
利用所述未覆盖代码信息以及第一预设查询方法查找所述未覆盖代码对应的文件的目标提交信息;
利用第二预设查询方法查询出包含所述目标提交信息的所有分支信息;
根据所述分支信息查询需求管理系统,获取所述未覆盖代码对应的需求信息;
根据所述需求信息查询用例管理系统,获取与所述未覆盖代码对应的测试用例,并反馈给相应的测试者。
第四方面,提供了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时,实现如下步骤:
对目标应用程序的覆盖率报告进行分析,获取所述覆盖率报告中包含的未覆盖代码信息;
利用所述未覆盖代码信息以及第一预设查询方法查找所述未覆盖代码对应的文件的目标提交信息;
利用第二预设查询方法查询出包含所述目标提交信息的所有分支信息;
根据所述分支信息查询需求管理系统,获取所述未覆盖代码对应的需求信息;
根据所述需求信息查询用例管理系统,获取与所述未覆盖代码对应的测试用例,并反馈给相应的测试者。
本发明实施例提供的技术方案带来的有益效果是:
本发明实施例提供的未覆盖代码的测试用例推荐方法、装置、计算机设备及存储介质,通过对目标应用程序的覆盖率报告进行分析,获取所述覆盖率报告中包含的未覆盖代码信息,利用所述未覆盖代码信息以及第一预设查询方法查找所述未覆盖代码对应的文件的目标提交信息,利用第二预设查询方法查询出包含所述目标提交信息的所有分支信息,根据所述分支信息查询需求管理系统,获取所述未覆盖代码对应的需求信息,根据所述需求信息查询用例管理系统,获取与所述未覆盖代码对应的测试用例,并反馈给相应的测试者,自动快捷地查询出未覆盖部分的代码对应的需求信息,为未覆盖代码推荐合适的测试用例,提高未覆盖代码的测试用例推荐的效率。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是根据一示例性实施例示出的未覆盖代码的测试用例推荐方法的流程图;
图2是根据一示例性实施例示出的未覆盖代码的测试用例推荐方法的另一流程图;
图3是根据一示例性实施例示出的未覆盖代码的测试用例推荐装置的结构示意图;
图4是根据一示例性实施例示出的计算机设备的内部结构示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
覆盖率是度量测试完整性的一个手段,是测试有效性的一个度量。通过已执行代码表示,用于可靠性、稳定性以及性能的评测。测试覆盖是对测试完全程度的评测。测试覆盖是由测试需求和测试用例的覆盖或已执行代码的覆盖表示的。建立在对测试结果的评估和对测试过程中确定的变更请求(缺陷)的分析的基础上。分支(branches)是指在开发主线中分离出来,做进一步开发而不影响到原来主线。测试用例(Test Case)是为某个特殊目标而编制的一组测试输入、执行条件以及预期结果,以便测试某个程序路径或核实是否满足某个特定需求。
如背景技术所述,由于在代码覆盖率测试中未被覆盖到的代码需要进行重新测试,因而需要为未被覆盖到的代码推荐测试用例。而在实际应用中,一方面,在查看覆盖率报告中未覆盖部分的代码时,只能通过检查者凭记忆手动去查看是哪个业务的代码,若不知道则还需要问开发人员,也就是说,只能通过人肉一条一条去查找,另一方面,针对应用程序的测试用例集往往数据量,因此,采用传统的方法为未覆盖代码推荐测试用例的工作量很大,费时费力。
为解决上述问题,本发明实施例中创造性的提出了一种未覆盖代码的测试用例推荐方法,该方法使用覆盖率报告中的覆盖率信息、未覆盖代码对应的文件的提交信息、需求信息等一系列关联起来自动为未覆盖代码推荐测试用例,如已有测试用例可以覆盖,则直接执行,如没有测试用例可以覆盖则提示用户补充新的测试用例,大大节省测试用例推荐的所消耗的时间和人力,提高测试用例推荐的效率。
图1是根据一示例性实施例示出的未覆盖代码的测试用例推荐方法的流程图,参照图1所示,该方法可以与需求管理系统、用例管理系统等对接,通过预设接口查询未覆盖代码对应的需求信息以及测试用例,将覆盖率信息、未覆盖代码对应的文件的提交信息、需求信息等一系列关联起来自动为未覆盖代码推荐测试用例。
具体的,本发明中的未覆盖代码的测试用例推荐过程如下:
步骤一、通过接口获取未覆盖的代码信息。
具体的,本发明实施例中,可以预先设置一接口,通过该接口获取目标应用程序的覆盖率报告,通过对该覆盖率报告进行分析,获取该覆盖率报告中包含的未覆盖代码信息或未覆盖文件列表,包括但不限于文件、类、方法、未覆盖的行等信息。其中目标应用程序指当前进行覆盖率测试的应用程序,这里需要注意的是,由于目标应用程序可能进行了多次覆盖率测试,因而会对应多个覆盖率报告,本发明实施例中,获取的是当前覆盖率测试对应的覆盖率报告。
具体的,可以以方法为最小单位,利用关键字进行循环查找,获取全部的未覆盖代码信息。具体实施时,关键字可以是未覆盖的代码信息中的文件名、方法名等信息,这里不做限制,用户可以根据实际需求进行动态设置。
步骤二、在应用程序的版本管理系统中拉取最新的发布分支代码,使用第一预设查询方法查找到未覆盖代码对应的文件的提交记录信息。
具体的,作为一种较优的示例,本发明实施例中的应用程序的版本管理系统包括但不限于git,对应的第一预设查询方法可以是git blame指令。其中,git是一个开源的分布式版本控制系统,可以有效、高速地处理从很小到非常大的项目版本管理。git是LinusTorvalds为了帮助管理Linux内核开发而开发的一个开放源码的版本控制软件。git blame是git中的一个命令,git blame可以追溯一个指定文件的历史修改记录。具体实施时,从应用程序的版本管理系统中拉取最新的发布分支代码,切到对应的git环境,使用git blame指令查找未覆盖代码对应文件的提交记录信息。
步骤三、检查每项提交记录的内容,获取真实修改的提交记录,记录提交ID(即commitid)备用。
具体的,由于在软件开发过程中,每个代码文件都可能对应多个提交记录,因而,本发明实施例中,会检查每项提交记录的内容,即文件的每一行的详细修改信息,包括SHA串、提交日期和作者等信息,获取真实修改的那条提交记录信息,这里真实修改的提交记录信息包括但不限于提交时间为最新的那条提交记录。
步骤四、使用第二预设查询方法查询出包含真是修改的提交记录信息的分支信息。
具体的,同样的,作为一种较优的示例,本发明实施例中的第二预设查询方法包括但不限于git branch-r-contains指令,git branch-r是git中查看远程分支或全部分支的命令。具体查询时,可以是使用commitid作为查询关键字进行查询。
步骤五、通过分支信息查询需求管理系统,获取对应的需求信息。
具体的,本发明实施例中,会与需求管理系统对接,通过预设的接口查询需求管理系统,获取未覆盖代码对应的需求信息。具体实施时,可以设置分支信息中的分支名为关键字进行查询。对应的需求信息包括但不限于对应的开发人员信息、测试人员信息、该分支的覆盖数据等信息。
步骤六、检查分支的覆盖数据与覆盖率报告中对应的覆盖数据未覆盖部分是否相同,若不相同,则查询用例管理系统,获取与所述未覆盖代码对应的测试用例,否则,通知相应的测试者补充测试用例。
具体的,本发明实施例中,会与用例管理系统对接,通过预设的接口查询用例管理系统,获取未覆盖代码对应的测试用例。具体实施时,将分支的覆盖数据与覆盖率报告中对应的覆盖数据进行比对,判断分支的覆盖数据与覆盖率报告中对应的覆盖数据的未覆盖部分是否相同,若不相同,则说明需求已被覆盖,此时可以调用预设的接口,根据需求信息查询用例管理系统,获取与未覆盖代码对应的测试用例,若相同,则说明需求为未被覆盖,此时,可以通过发送邮件等方式通知测试者补充用例,以便后续对未覆盖代码进行相关测试。
图2是根据一示例性实施例示出的未覆盖代码的测试用例推荐方法的另一流程图,参照图2所示,该方法包括如下步骤:
S1:对目标应用程序的覆盖率报告进行分析,获取所述覆盖率报告中包含的未覆盖代码信息。
具体的,本发明实施例中,可以通过预设接口获取目标应用程序的覆盖率报告,对覆盖率报告进行分析,获取该覆盖率报告中包含的未覆盖代码信息或未覆盖文件列表,包括但不限于文件、类、方法、未覆盖的行等信息。
S2:利用所述未覆盖代码信息以及第一预设查询方法查找所述未覆盖代码对应的文件的目标提交信息。
具体的,第一预设查询方法包括但不限于git blame指令,从应用程序的版本管理系统中拉取最新的发布分支代码,切到对应的git环境,使用git blame指令查找未覆盖代码对应文件的提交记录信息,从中筛选出符合要求的目标提交信息。
S3:利用第二预设查询方法查询出包含所述目标提交信息的所有分支信息。
具体的,第二预设查询方法包括但不限于git branch-r-contains指令,这里不做具体限制。
S4:根据所述分支信息查询需求管理系统,获取所述未覆盖代码对应的需求信息。
S5:根据所述需求信息查询用例管理系统,获取与所述未覆盖代码对应的测试用例,并反馈给相应的测试者。
作为一种较优的实施方式,本发明实施例中,所述利用所述未覆盖代码信息以及第一预设查询方法查找所述未覆盖代码对应的文件的目标提交信息包括:。
基于所述未覆盖代码信息生成检索关键字;
利用所述检索关键字以及第一预设查询方法查找所述未覆盖代码对应的文件的目标提交信息。
具体的,基于未覆盖代码信息生成检索关键字包括但不限于未覆盖代码信息中包含的文件名、方法名等信息,这里不做具体限制,用户可以根据实施需求进行设置。
作为一种较优的实施方式,本发明实施例中,所述利用所述未覆盖代码信息以及第一预设查询方法查找所述未覆盖代码对应的文件的目标提交信息包括:
利用所述未覆盖代码信息以及第一预设查询方法查找所述未覆盖代码对应的文件的所有提交信息;
按照预设规则从所述所有提交信息中筛选出符合要求的目标提交信息。
具体的,由于在软件开发过程中,每个代码文件都可能对应多个提交记录,本发明实施例中,会对检查每项提交记录的内容,获取真实修改的那条提交记录信息作为目标提交信息。
作为一种较优的实施方式,本发明实施例中,所述按照预设规则从所述所有提交信息中筛选出符合要求的目标提交信息包括:
获取各个提交信息对应的提交时间,筛选出提交时间最新的提交信息作为目标提交信息。
具体的,作为一种较优的示例,这里可以将提交时间最新的提交信息作为目标提交信息。
作为一种较优的实施方式,本发明实施例中,所述需求信息包括所述分支的覆盖数据,所述根据所述需求信息查询用例管理系统,获取与所述未覆盖代码对应的测试用例包括:
将所述分支的覆盖数据与所述覆盖率报告中对应的覆盖数据进行比对,判断所述分支的覆盖数据与所述覆盖率报告中对应的覆盖数据的未覆盖部分是否相同,若不相同,则根据所述需求信息查询用例管理系统,获取与所述未覆盖代码对应的测试用例。
作为一种较优的实施方式,本发明实施例中,所述方法还包括:
若判断出所述分支的覆盖数据与所述覆盖率报告中对应的覆盖数据的未覆盖部分相同,则向相应的测试者反馈需要补充测试用例的信息。
具体的,当分支的覆盖数据与所述覆盖率报告中对应的覆盖数据的未覆盖部分相同时,说明该需求未被覆盖,此时测试用例集中不存在与该需求(或未覆盖代码)对应的测试用例,因而,需要通知相关测试者进行测试用例的补充;当分支的覆盖数据与所述覆盖率报告中对应的覆盖数据的未覆盖部分相同时,说明该需求已被覆盖,只是因为各项因素导致本次测试失败,此时,可以根据需求信息查询用例管理系统,获取与未覆盖代码对应的测试用例。
图3是根据一示例性实施例示出的未覆盖代码的测试用例推荐装置的结构示意图,参照图3所示,该装置包括:
代码获取模块,用于对目标应用程序的覆盖率报告进行分析,获取所述覆盖率报告中包含的未覆盖代码信息;
第一查询模块,用于利用所述未覆盖代码信息以及第一预设查询方法查找所述未覆盖代码对应的文件的目标提交信息;
第二查询模块,用于利用第二预设查询方法查询出包含所述目标提交信息的所有分支信息;
需求获取模块,用于根据所述分支信息查询需求管理系统,获取所述未覆盖代码对应的需求信息;
用例获取模块,用于根据所述需求信息查询用例管理系统,获取与所述未覆盖代码对应的测试用例,并反馈给相应的测试者。
作为一种较优的实施方式,本发明实施例中,所述第一查询模块包括:
关键字生成单元,用于基于所述未覆盖代码信息生成检索关键字;
信息查询单元,用于利用所述检索关键字以及第一预设查询方法查找所述未覆盖代码对应的文件的目标提交信息。
作为一种较优的实施方式,本发明实施例中,所述第一查询模块具体用于:
利用所述未覆盖代码信息以及第一预设查询方法查找所述未覆盖代码对应的文件的所有提交信息;
按照预设规则从所述所有提交信息中筛选出符合要求的目标提交信息。
作为一种较优的实施方式,本发明实施例中,所述第一查询模块还用于:
获取各个提交信息对应的提交时间,筛选出提交时间最新的提交信息作为目标提交信息。
作为一种较优的实施方式,本发明实施例中,所述用例获取模块具体用于:
将所述分支的覆盖数据与所述覆盖率报告中对应的覆盖数据进行比对,判断所述分支的覆盖数据与所述覆盖率报告中对应的覆盖数据的未覆盖部分是否相同,若不相同,则根据所述需求信息查询用例管理系统,获取与所述未覆盖代码对应的测试用例。
作为一种较优的实施方式,本发明实施例中,所述装置还包括:
信息反馈模块,用于若判断出所述分支的覆盖数据与所述覆盖率报告中对应的覆盖数据的未覆盖部分相同,则向相应的测试者反馈需要补充测试用例的信息。
图4是根据一示例性实施例示出的计算机设备的内部结构示意图,参照图4所示,该计算机设备包括通过系统总线连接的处理器、存储器和网络接口。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种执行计划的优化方法。
本领域技术人员可以理解,图4中示出的结构,仅仅是与本发明方案相关的部分结构的框图,并不构成对本发明方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
作为一种较优的实施方式,本发明实施例中,计算机设备包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行计算机程序时实现以下步骤:
对目标应用程序的覆盖率报告进行分析,获取所述覆盖率报告中包含的未覆盖代码信息;
利用所述未覆盖代码信息以及第一预设查询方法查找所述未覆盖代码对应的文件的目标提交信息;
利用第二预设查询方法查询出包含所述目标提交信息的所有分支信息;
根据所述分支信息查询需求管理系统,获取所述未覆盖代码对应的需求信息;
根据所述需求信息查询用例管理系统,获取与所述未覆盖代码对应的测试用例,并反馈给相应的测试者。
作为一种较优的实施方式,本发明实施例中,处理器执行计算机程序时还实现以下步骤:
基于所述未覆盖代码信息生成检索关键字;
利用所述检索关键字以及第一预设查询方法查找所述未覆盖代码对应的文件的目标提交信息。
作为一种较优的实施方式,本发明实施例中,处理器执行计算机程序时还实现以下步骤:
利用所述未覆盖代码信息以及第一预设查询方法查找所述未覆盖代码对应的文件的所有提交信息;
按照预设规则从所述所有提交信息中筛选出符合要求的目标提交信息。
作为一种较优的实施方式,本发明实施例中,处理器执行计算机程序时还实现以下步骤:
获取各个提交信息对应的提交时间,筛选出提交时间最新的提交信息作为目标提交信息。
作为一种较优的实施方式,本发明实施例中,处理器执行计算机程序时还实现以下步骤:
将所述分支的覆盖数据与所述覆盖率报告中对应的覆盖数据进行比对,判断所述分支的覆盖数据与所述覆盖率报告中对应的覆盖数据的未覆盖部分是否相同,若不相同,则根据所述需求信息查询用例管理系统,获取与所述未覆盖代码对应的测试用例。
作为一种较优的实施方式,本发明实施例中,处理器执行计算机程序时还实现以下步骤:
若判断出所述分支的覆盖数据与所述覆盖率报告中对应的覆盖数据的未覆盖部分相同,则向相应的测试者反馈需要补充测试用例的信息。
本发明实施例中,还提供了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时,实现如下步骤:
对目标应用程序的覆盖率报告进行分析,获取所述覆盖率报告中包含的未覆盖代码信息;
利用所述未覆盖代码信息以及第一预设查询方法查找所述未覆盖代码对应的文件的目标提交信息;
利用第二预设查询方法查询出包含所述目标提交信息的所有分支信息;
根据所述分支信息查询需求管理系统,获取所述未覆盖代码对应的需求信息;
根据所述需求信息查询用例管理系统,获取与所述未覆盖代码对应的测试用例,并反馈给相应的测试者。
作为一种较优的实施方式,本发明实施例中,所述计算机程序被处理器执行时,还实现如下步骤:
基于所述未覆盖代码信息生成检索关键字;
利用所述检索关键字以及第一预设查询方法查找所述未覆盖代码对应的文件的提交信息。
作为一种较优的实施方式,本发明实施例中,所述计算机程序被处理器执行时,还实现如下步骤:
利用所述未覆盖代码信息以及第一预设查询方法查找所述未覆盖代码对应的文件的所有提交信息;
按照预设规则从所述所有提交信息中筛选出符合要求的目标提交信息。
作为一种较优的实施方式,本发明实施例中,所述计算机程序被处理器执行时,还实现如下步骤:
获取各个提交信息对应的提交时间,筛选出提交时间最新的提交信息作为目标提交信息。
作为一种较优的实施方式,本发明实施例中,所述计算机程序被处理器执行时,还实现如下步骤:
将所述分支的覆盖数据与所述覆盖率报告中对应的覆盖数据进行比对,判断所述分支的覆盖数据与所述覆盖率报告中对应的覆盖数据的未覆盖部分是否相同,若不相同,则根据所述需求信息查询用例管理系统,获取与所述未覆盖代码对应的测试用例。
作为一种较优的实施方式,本发明实施例中,所述计算机程序被处理器执行时,还实现如下步骤:
若判断出所述分支的覆盖数据与所述覆盖率报告中对应的覆盖数据的未覆盖部分相同,则向相应的测试者反馈需要补充测试用例的信息。
综上所述,本发明实施例提供的技术方案带来的有益效果是:
本发明实施例提供的未覆盖代码的测试用例推荐方法、装置、计算机设备及存储介质,通过对目标应用程序的覆盖率报告进行分析,获取所述覆盖率报告中包含的未覆盖代码信息,利用所述未覆盖代码信息以及第一预设查询方法查找所述未覆盖代码对应的文件的目标提交信息,利用第二预设查询方法查询出包含所述目标提交信息的所有分支信息,根据所述分支信息查询需求管理系统,获取所述未覆盖代码对应的需求信息,根据所述需求信息查询用例管理系统,获取与所述未覆盖代码对应的测试用例,并反馈给相应的测试者,自动快捷地查询出未覆盖部分的代码对应的需求信息,为未覆盖代码推荐合适的测试用例,提高未覆盖代码的测试用例推荐的效率。
需要说明的是:上述实施例提供的未覆盖代码的测试用例推荐装置在触发推荐业务时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的未覆盖代码的测试用例推荐装置与未覆盖代码的测试用例推荐方法实施例属于同一构思,即该装置是基于该未覆盖代码的测试用例推荐方法的,其具体实现过程详见方法实施例,这里不再赘述。
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (10)
1.一种未覆盖代码的测试用例推荐方法,其特征在于,所述方法包括如下步骤:
对目标应用程序的覆盖率报告进行分析,获取所述覆盖率报告中包含的未覆盖代码信息;
利用所述未覆盖代码信息以及第一预设查询方法查找所述未覆盖代码对应的文件的目标提交信息;
利用第二预设查询方法查询出包含所述目标提交信息的所有分支信息;
根据所述分支信息查询需求管理系统,获取所述未覆盖代码对应的需求信息;
根据所述需求信息查询用例管理系统,获取与所述未覆盖代码对应的测试用例,并反馈给相应的测试者。
2.根据权利要求1所述的未覆盖代码的测试用例推荐方法,其特征在于,所述利用所述未覆盖代码信息以及第一预设查询方法查找所述未覆盖代码对应的文件的目标提交信息包括:
基于所述未覆盖代码信息生成检索关键字;
利用所述检索关键字以及第一预设查询方法查找所述未覆盖代码对应的文件的目标提交信息。
3.根据权利要求1或2所述的未覆盖代码的测试用例推荐方法,其特征在于,所述利用所述未覆盖代码信息以及第一预设查询方法查找所述未覆盖代码对应的文件的目标提交信息包括:
利用所述未覆盖代码信息以及第一预设查询方法查找所述未覆盖代码对应的文件的所有提交信息;
按照预设规则从所述所有提交信息中筛选出符合要求的目标提交信息。
4.根据权利要求3所述的未覆盖代码的测试用例推荐方法,其特征在于,所述按照预设规则从所述所有提交信息中筛选出符合要求的目标提交信息包括:
获取各个提交信息对应的提交时间,筛选出提交时间最新的提交信息作为目标提交信息。
5.根据权利要求1或2所述的未覆盖代码的测试用例推荐方法,其特征在于,所述需求信息包括所述分支的覆盖数据,所述根据所述需求信息查询用例管理系统,获取与所述未覆盖代码对应的测试用例包括:
将所述分支的覆盖数据与所述覆盖率报告中对应的覆盖数据进行比对,判断所述分支的覆盖数据与所述覆盖率报告中对应的覆盖数据的未覆盖部分是否相同,若不相同,则根据所述需求信息查询用例管理系统,获取与所述未覆盖代码对应的测试用例。
6.根据权利要求5所述的未覆盖代码的测试用例推荐方法,其特征在于,所述方法还包括:
若判断出所述分支的覆盖数据与所述覆盖率报告中对应的覆盖数据的未覆盖部分相同,则向相应的测试者反馈需要补充测试用例的信息。
7.一种未覆盖代码的测试用例推荐装置,其特征在于,所述装置包括:
代码获取模块,用于对目标应用程序的覆盖率报告进行分析,获取所述覆盖率报告中包含的未覆盖代码信息;
第一查询模块,用于利用所述未覆盖代码信息以及第一预设查询方法查找所述未覆盖代码对应的文件的目标提交信息;
第二查询模块,用于利用第二预设查询方法查询出包含所述目标提交信息的所有分支信息;
需求获取模块,用于根据所述分支信息查询需求管理系统,获取所述未覆盖代码对应的需求信息;
用例获取模块,用于根据所述需求信息查询用例管理系统,获取与所述未覆盖代码对应的测试用例,并反馈给相应的测试者。
8.根据权利要求7所述的未覆盖代码的测试用例推荐装置,其特征在于,所述第一查询模块包括:
关键字生成单元,用于基于所述未覆盖代码信息生成检索关键字;
信息查询单元,用于利用所述检索关键字以及第一预设查询方法查找所述未覆盖代码对应的文件的目标提交信息。
9.一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至6中任一项所述方法的步骤。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至6中任一项所述的方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011645213.1A CN112685312B (zh) | 2020-12-31 | 2020-12-31 | 一种未覆盖代码的测试用例推荐方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011645213.1A CN112685312B (zh) | 2020-12-31 | 2020-12-31 | 一种未覆盖代码的测试用例推荐方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112685312A true CN112685312A (zh) | 2021-04-20 |
CN112685312B CN112685312B (zh) | 2024-07-02 |
Family
ID=75457026
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011645213.1A Active CN112685312B (zh) | 2020-12-31 | 2020-12-31 | 一种未覆盖代码的测试用例推荐方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112685312B (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113220307A (zh) * | 2021-06-08 | 2021-08-06 | 中航机载系统共性技术有限公司 | 一种代码覆盖分析的优化方法、装置及电子设备 |
CN113448850A (zh) * | 2021-06-29 | 2021-09-28 | 平安健康保险股份有限公司 | 方法调用链的可视化方法、系统、设备及介质 |
CN114003513A (zh) * | 2021-12-30 | 2022-02-01 | 云账户技术(天津)有限公司 | 代码覆盖率处理方法、装置、电子设备及可读存储介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102364449A (zh) * | 2011-10-24 | 2012-02-29 | 中兴通讯股份有限公司 | 一种最小测试用例集的生成方法及系统 |
US20140310231A1 (en) * | 2013-04-16 | 2014-10-16 | Cognizant Technology Solutions India Pvt. Ltd. | System and method for automating data warehousing processes |
CN107153608A (zh) * | 2016-03-02 | 2017-09-12 | 腾讯科技(深圳)有限公司 | 代码检测方法以及代码检测装置 |
US20180039569A1 (en) * | 2016-08-03 | 2018-02-08 | International Business Machines Corporation | Test case generation for uncovered code paths |
CN111563041A (zh) * | 2020-05-08 | 2020-08-21 | 吴迪 | 一种测试用例按需精准执行方法 |
-
2020
- 2020-12-31 CN CN202011645213.1A patent/CN112685312B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102364449A (zh) * | 2011-10-24 | 2012-02-29 | 中兴通讯股份有限公司 | 一种最小测试用例集的生成方法及系统 |
US20140310231A1 (en) * | 2013-04-16 | 2014-10-16 | Cognizant Technology Solutions India Pvt. Ltd. | System and method for automating data warehousing processes |
CN107153608A (zh) * | 2016-03-02 | 2017-09-12 | 腾讯科技(深圳)有限公司 | 代码检测方法以及代码检测装置 |
US20180039569A1 (en) * | 2016-08-03 | 2018-02-08 | International Business Machines Corporation | Test case generation for uncovered code paths |
CN111563041A (zh) * | 2020-05-08 | 2020-08-21 | 吴迪 | 一种测试用例按需精准执行方法 |
Non-Patent Citations (1)
Title |
---|
王飞等: "基于日志的Web系统互操作测试用例扩充方法", 《计算机科学与探索》, vol. 07, no. 09, 30 September 2015 (2015-09-30), pages 803 - 811 * |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113220307A (zh) * | 2021-06-08 | 2021-08-06 | 中航机载系统共性技术有限公司 | 一种代码覆盖分析的优化方法、装置及电子设备 |
CN113448850A (zh) * | 2021-06-29 | 2021-09-28 | 平安健康保险股份有限公司 | 方法调用链的可视化方法、系统、设备及介质 |
CN114003513A (zh) * | 2021-12-30 | 2022-02-01 | 云账户技术(天津)有限公司 | 代码覆盖率处理方法、装置、电子设备及可读存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN112685312B (zh) | 2024-07-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10552301B2 (en) | Completing functional testing | |
CN111832236B (zh) | 一种芯片回归测试方法、系统、电子设备及存储介质 | |
US9026998B2 (en) | Selecting relevant tests to quickly assess code stability | |
CN112685312A (zh) | 一种未覆盖代码的测试用例推荐方法及装置 | |
US8386851B2 (en) | Functional coverage using combinatorial test design | |
US8978009B2 (en) | Discovering whether new code is covered by tests | |
US8719789B2 (en) | Measuring coupling between coverage tasks and use thereof | |
US8555234B2 (en) | Verification of soft error resilience | |
US20130111267A1 (en) | Optimizing regression testing based on code coverage analysis | |
CN108763091B (zh) | 用于回归测试的方法、装置及系统 | |
US10565089B2 (en) | Identification of code features potentially associated with code behavior | |
US7315973B1 (en) | Method and apparatus for choosing tests for simulation and associated algorithms and hierarchical bipartite graph data structure | |
US20140380280A1 (en) | Debugging tool with predictive fault location | |
US8589734B2 (en) | Verifying correctness of processor transactions | |
US20140006875A1 (en) | Systems and methods for analyzing transactions in a computer system | |
CN112685316A (zh) | 代码执行路径的获取方法、装置、计算机设备及存储介质 | |
CN112988578A (zh) | 一种自动化测试方法和装置 | |
CN110674024A (zh) | 电子设备集成测试系统及其方法 | |
US10970195B2 (en) | Reduction of test infrastructure | |
CN115587048A (zh) | 回归测试方法、终端设备及计算机可读存储介质 | |
CN112346994B (zh) | 一种测试信息关联方法、装置、计算机设备及存储介质 | |
CN114780420A (zh) | 一种基于测试例自动测试的方法、装置、设备及存储介质 | |
CN110908918A (zh) | 针对多个相互依赖的node.js模块的单元测试方法及装置 | |
Mori et al. | An implementation of just-in-time fault-prone prediction technique using text classifier | |
CN115658551B (zh) | 代码测试方法、存储介质、电子设备和装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant |