CN112256553A - 一种应用软件测试方法、装置及电子设备 - Google Patents

一种应用软件测试方法、装置及电子设备 Download PDF

Info

Publication number
CN112256553A
CN112256553A CN201910660422.4A CN201910660422A CN112256553A CN 112256553 A CN112256553 A CN 112256553A CN 201910660422 A CN201910660422 A CN 201910660422A CN 112256553 A CN112256553 A CN 112256553A
Authority
CN
China
Prior art keywords
module
functional
weight
functional module
application software
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.)
Pending
Application number
CN201910660422.4A
Other languages
English (en)
Inventor
刘秋石
陈美娜
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Baidu China Co Ltd
Original Assignee
Baidu China Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Baidu China Co Ltd filed Critical Baidu China Co Ltd
Priority to CN201910660422.4A priority Critical patent/CN112256553A/zh
Publication of CN112256553A publication Critical patent/CN112256553A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3672Test management
    • G06F11/3676Test management for coverage analysis

Abstract

本发明涉及计算机技术领域,提供一种应用软件测试方法、装置及电子设备,以解决测试准确性不高问题。该方法包括:基于N个第一测试用例对待测应用软件进行测试,确定待测应用软件中M个功能模块分别对应的覆盖率,其中,N、M均为大于1的整数;根据M个功能模块分别对应的第一权重和覆盖率,获得待测应用软件的目标覆盖率;基于目标覆盖率确定待测应用软件的测试结果。采用待测应用软件中M个功能模块分别对应的覆盖率以及第一权重确定目标覆盖率,即考虑了对单独的功能模块测试的有效性以及每个功能模块的权重,使得到的目标覆盖率能准确体现对待测应用软件中单个功能模块测试的有效性,使目标覆盖率更加准确,从而使测试结果更加准确。

Description

一种应用软件测试方法、装置及电子设备
技术领域
本发明涉及计算机技术领域,尤其涉及一种应用软件测试方法、装置、电子设备及计算机可读存储介质。
背景技术
随着计算机技术的不断发展,各种各样的应用软件层出不穷,应用软件版本迭代的速度也越来越快,为用户的工作和生活等带来了极大的便利。为确保新版本的质量以及避免新版本相对原版本新增的功能模块对原功能模块的影响,需在新版本(迭代版本)上线前,对新版本进行测试,例如,进行回归测试等。其中,测试的覆盖率是衡量测试有效性的一种重要指标,若覆盖率达到要求,则认为测试通过,后续即可上线新版本。以网盘(是一种在线存储服务,即为用户划分的磁盘空间,为用户免费或收费提供文件的存储、访问、备份、共享等文件管理等功能)为例,在对其迭代版本进行回归测试过程中,可以以60%的覆盖率作为基准,若大于60%,则确认本次测试通过,后续上线网盘的迭代版本。
然而,目前测试的覆盖率一般是以通过测试用例对整个新版本进行测试后得到的已执行的代码对新版本的整体代码的覆盖表示,即以整体代码以及测试后得到的已执行的代码来进行覆盖率的计算,无法准确体现对应用软件中单个功能模块测试的有效性,即无法得到准确的覆盖率,从而容易导致测试准确性不高。
发明内容
本发明实施例提供一种应用软件测试方法、装置、电子设备及计算机可读存储介质,以解决现有技术中测试准确性不高的问题。
第一方面,本发明实施例提供了一种应用软件测试方法,所述方法包括:
基于N个第一测试用例对待测应用软件进行测试,确定所述待测应用软件中M个功能模块分别对应的覆盖率,其中,所述N、M均为大于1的整数;
根据所述M个功能模块分别对应的第一权重和覆盖率,获得所述待测应用软件的目标覆盖率;
基于所述目标覆盖率确定所述待测应用软件的测试结果。
可选的,所述M个功能模块包括第一功能模块和第二功能模块;
所述基于N个第一测试用例对待测应用软件进行测试之前,包括:
根据所述第一功能模块的第一参数,确定所述第一功能模块的第一权重,所述第一参数为预设的参数;
根据所述第二功能模块的第二参数,确定所述第二功能模块的第一权重,所述第二参数包括基础参数和影响参数。
可选的,所述根据所述第二功能模块的第二参数,确定所述第二功能模块的第一权重,包括:
根据所述第二功能模块的基础参数,确定所述第二功能模块的基础权重;
基于所述第二功能模块的影响参数,对所述第二功能模块的基础权重进行调整,得到所述第二功能模块的第一权重。
可选的,所述第一参数包括第一预设功能重要度,所述基础参数包括第二预设功能重要度、历史使用频次和历史漏洞量中的至少一项,所述影响参数包括与所述第一功能模块关联的代码行数、与所述第一功能模块关联的函数数量和所述第一功能模块的代码缺陷率中的至少一项。
可选的,所述根据所述第二功能模块的第二参数,确定所述第二功能模块的第一权重之后,所述基于N个第一测试用例对待测应用软件进行测试之前,还包括:
获取M个功能模块分别对应的测试用例集,所述测试用例集中包括至少一个测试用例;
根据所述M个功能模块分别对应的第一权重,对所述M个功能模块分别对应的测试用例集进行测试用例筛选,获得所述N个第一测试用例。
可选的,所述根据所述M个功能模块分别对应的第一权重和覆盖率,获得目标覆盖率,包括:
对所述M个功能模块分别对应的第一权重和覆盖率进行加权求和处理,得到第一目标值;
对所述M个功能模块分别对应的第一权重进行求和,得到第二目标值;
根据所述第一目标值和所述第二目标值,获得所述目标覆盖率,所述目标覆盖率与所述第一目标值成正比,与所述第二目标值成反比。
第二方面,本发明实施例还提供一种应用软件测试装置,包括:
模块覆盖率确定模块,用于基于N个第一测试用例对待测应用软件进行测试,确定所述待测应用软件中M个功能模块分别对应的覆盖率,其中,所述N、M均为大于1的整数;
目标覆盖率确定模块,用于根据所述M个功能模块分别对应的第一权重和覆盖率,获得所述待测应用软件的目标覆盖率;
测试结果确定模块,用于基于所述目标覆盖率确定所述待测应用软件的测试结果。
可选的,所述M个功能模块包括第一功能模块和第二功能模块;
所述装置,还包括:
第一功能权重确定模块,用于根据所述第一功能模块的第一参数,确定所述第一功能模块的第一权重,所述第一参数为预设的参数;
第二功能权重确定模块,用于根据所述第二功能模块的第二参数,确定所述第二功能模块的第一权重,所述第二参数包括基础参数和影响参数。
可选的,所述第二功能权重确定模块,包括:
基础权重确定模块,用于根据所述第二功能模块的基础参数,确定所述第二功能模块的基础权重;
权重调整模块,用于基于所述第二功能模块的影响参数,对所述第二功能模块的基础权重进行调整,得到所述第二功能模块的第一权重。
可选的,所述第一参数包括第一预设功能重要度,所述基础参数包括第二预设功能重要度、历史使用频次和历史漏洞量中的至少一项,所述影响参数包括与所述第一功能模块关联的代码行数、与所述第一功能模块关联的函数数量和所述第一功能模块的代码缺陷率中的至少一项。
可选的,所述装置,还包括:
测试用例集获取模块,用于获取M个功能模块分别对应的测试用例集,所述测试用例集中包括至少一个测试用例;
测试用例筛选模块,用于根据所述M个功能模块分别对应的第一权重,对所述M个功能模块分别对应的测试用例集进行测试用例筛选,获得所述N个第一测试用例。
可选的,所述目标覆盖率确定模块,包括:
第一目标值获取模块,用于对所述M个功能模块分别对应的第一权重和覆盖率进行加权求和处理,得到第一目标值;
第二目标值获取模块,用于对所述M个功能模块分别对应的第一权重进行求和,得到第二目标值;
目标覆盖率获取模块,用于根据所述第一目标值和所述第二目标值,获得所述目标覆盖率,所述目标覆盖率与所述第一目标值成正比,与所述第二目标值成反比。
第三方面,本发明实施例还提供一种电子设备,包括:存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现如上所述的应用软件测试方法中的步骤。
第四方面,本发明实施例还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如上所述的应用软件测试方法中的步骤。
本申请实施例的应用软件测试方法中,首先,基于N个第一测试用例对待测应用软件进行测试,确定所述待测应用软件中M个功能模块分别对应的覆盖率。然后根据所述M个功能模块分别对应的第一权重和覆盖率,获得目标覆盖率。再基于所述目标覆盖率确定所述待测应用软件的测试结果。由于在确定目标覆盖率的过程中,不再是采用应用软件的整体代码以及测试后得到的已执行的代码进行覆盖率计算(即应用软件全部功能模块的整体覆盖率),而是采用待测应用软件中M个功能模块分别对应的覆盖率以及M个功能模块分别对应的第一权重确定目标覆盖率,即考虑了对单独的功能模块测试的有效性以及每个功能模块的权重,使得到的目标覆盖率能准确体现对待测应用软件中单个功能模块测试的有效性,使目标覆盖率更加准确,基于目标覆盖率确定测试结果,使测试结果更加准确。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对本发明实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例提供的应用软件测试方法的流程图之一;
图2是本发明实施例提供的应用软件测试方法的原理图之一;
图3是本发明实施例提供的电子设备的示意图之一;
图4是本发明实施例提供的电子设备的硬件结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
参照图1,在一个实施例中,提供了一种应用软件测试方法,可应用于电子设备,包括:
步骤101:基于N个第一测试用例对待测应用软件进行测试,确定待测应用软件中M个功能模块分别对应的覆盖率。
其中,N、M均为大于1的整数。执行测试用例进行测试,收集程序执行轨迹信息,可确定在测试过程中待测应用软件的代码中已执行的代码,由于待测应用软件的代码包括组成待测应用软件的各功能模块的代码的总和,例如,待测应用软件可以包括M个功能模块,则待测应用软件的代码包括M个功能模块的代码的总和。N个第一测试用例为M个功能模块对应的测试用例,如此,执行测试后,可确定每个功能模块分别对应的覆盖率,对于一个功能模块,其覆盖率可以为该功能模块的已执行的代码行数与该功能模块的代码行数的比值,或者可以为该功能模块的已执行的函数数量与该功能模块的函数数量的比值。在一个示例中,可通过插桩方式确定功能模块的覆盖率,方便覆盖率的统计,而且可以是不改变原有代码的插桩方式进行覆盖率的计算。在一个示例中,上述测试可以是回归测试,回归测试是指修改了旧代码后,重新进行测试以确认修改没有引入新的错误或导致其他代码产生错误,以确保应用软件的质量。
步骤102:根据M个功能模块分别对应的第一权重和覆盖率,获得待测应用软件的目标覆盖率。
在得到M个功能模块分别对应的覆盖率后,即可根据M个功能模块分别对应的覆盖率和第一权重,得到待测应用软件的目标覆盖率,第一权重越大表示对应的功能模块的影响力越大,其覆盖率对待测应用软件的目标覆盖率的影响也越大。待测应用软件的目标覆盖率不但考虑了M个功能模块分别对应的覆盖率,而且还考虑了M个功能模块分别对应的第一权重,可确保目标覆盖率的准确性。
步骤103:基于目标覆盖率确定待测应用软件的测试结果。
得到待测应用软件的目标覆盖率之后,即可以此确定待测应用软件的测试结果,即确定待测应用软件是否通过测试,测试结果包括测试通过或测试不通过,若测试结果为测试通过,则后续可对待测应用软件进行上线,若测试结果为测试不通过,则可提示测试不通过提示,以提示测试人员测试不通过,便于测试人员根据该提示尽快进行后续的操作。
本申请实施例的应用软件测试方法中,首先,基于N个第一测试用例对待测应用软件进行测试,确定待测应用软件中M个功能模块分别对应的覆盖率。然后根据M个功能模块分别对应的第一权重和覆盖率,获得目标覆盖率。再基于目标覆盖率确定待测应用软件的测试结果。由于在确定目标覆盖率的过程中,不再是采用应用软件的整体代码以及测试后得到的已执行的代码进行覆盖率计算(即应用软件全部功能模块的整体覆盖率),而是采用待测应用软件中M个功能模块分别对应的覆盖率以及M个功能模块分别对应的第一权重确定目标覆盖率,即考虑了对单独的功能模块测试的有效性以及每个功能模块的权重,使得到的目标覆盖率能准确体现对待测应用软件中单个功能模块测试的有效性,使目标覆盖率更加准确,基于目标覆盖率确定测试结果,使测试结果更加准确。
在一个实施例中,M个功能模块包括第一功能模块和第二功能模块。
基于N个第一测试用例对待测应用软件进行测试之前,包括:根据第一功能模块的第一参数,确定第一功能模块的第一权重,第一参数为预设的参数;根据第二功能模块的第二参数,确定第二功能模块的第一权重,第二参数包括基础参数和影响参数。
其中,第一功能模块的数量可以至少一个,即可以有多个,第二功能模块的数量也可以至少一个,即可以有多个。由于待测应用软件可以是理解为相对原版本的应用软件的新版本,其中,第一功能模块可以理解为待测应用软件相对原版本的应用软件新增的功能模块,第二功能模块可以理解为待测应用软件中与原版本的应用软件相同的至少部分的功能模块,例如,可以是待测应用软件中与原版本的应用软件相同的全部的功能模块。
在本实施例中,由于第一功能模块为新增的功能模块,可基于第一功能模块的预设的参数确定其第一权重,即可根据第一功能模块的重要性预先设置第一功能模块的预设的参数,在确定第一权重过程中,利用预设的参数即可。另外,根据第二功能模块的基础参数和影响参数确定第二功能模块的第一权重,即在确定第二功能模块的第一权重过程中,考虑了其基础参数,也考虑了影响参数,以确保第二功能模块的准确性。
在一个实施例中,根据第二功能模块的第二参数,确定第二功能模块的第一权重,包括:根据第二功能模块的基础参数,确定第二功能模块的基础权重;基于第二功能模块的影响参数,对第二功能模块的基础权重进行调整,得到第二功能模块的第一权重。
即在确定第二功能模块的第一权重过程中,首先利用基础参数确定第二功能模块的基础权重,然后再以影响参数对基础权重进行调整,以确保第二功能模块的第一权重的准确性,进而可确保得到的目标覆盖率的准确性,提高测试准确性。
在一个实施例中,第一参数包括第一预设功能重要度,基础参数包括第二预设功能重要度、历史使用频次和历史漏洞量中的至少一项,影响参数包括与第一功能模块关联的代码行数、与第一功能模块关联的函数数量和第一功能模块的代码缺陷率中的至少一项。
第一预设功能重要度即为预先为第一功能模块设置的功能重要度,例如,在第一功能模块完成后,可根据第一功能模块的重要性对该第一功能模块的划分重要级别,不同的重要级别,对应的功能重要度不同,第一功能模块的重要级别若确定,则功能重要程度即可确定。重要级别越高,功能重要度越大,表示该第一功能模块越重要。第二预设功能重要度即为预先为第二功能模块设置的功能重要度,例如,在第二功能模块完成后,可根据第二功能模块的重要性对该第二功能模块的划分重要级别,不同的重要级别,对应的功能重要度不同,第二功能模块的重要级别若确定,则功能重要程度即可确定。重要级别越高,功能重要度越大,表示该第二功能模块越重要。
由于第二功能模块是原版本的应用程序已有的功能模块,已进行线上使用,可统计历史使用频次,作为衡量第二功能模块的第一权重的一个参数。另外,第二功能模块在历史使用过程中,难免会出现漏洞(bug),也可通过统计历史漏洞量,作为衡量第二功能模块的第一权重的一个参数。
在确定第二功能模块的第一权重过程中,除了利用上述基础参数,还需利用影响参数。其中,与第一功能模块关联的代码行数,即表示第二功能模块中的代码中与第一功能模块的代码关联的代码的行数。比如,不同功能之间,一个功能的代码中有调用另一个功能模块中的代码,则表示该一个功能模块会影响另一个功能模块。与第一功能模块关联的函数数量,即表示第二功能模块中的代码与第一功能模块的函数(也可以称为方法)关联的函数的数量。比如,不同功能之间,一个功能的代码中有调用另一个功能模块中的函数,则表示该一个功能模块会影响另一个功能模块。第一功能模块的代码缺陷率,是指在第一功能模块的代码撰写完毕后,统计的代码缺陷率(即bug率),由于第一功能模块与第二功能模块同属一个待测应用软件,第一功能模块的代码的稳定性对第二功能模块有影响,通过代码缺陷率可衡量第一功能模块的代码的稳定性,代码缺陷率越大,表示其越不稳定。从而,可以通过第一功能模块的代码缺陷率作为调整第二功能模块的第一权重的影响参数,可确保第二功能模块的第一权重计算过程中考虑第一功能模块的稳定性,从而提高第二功能模块的第一权重的准确性。在一个示例中,第一功能模块的代码缺陷率可以是第一功能模块的千行bug率。
在一个实施例中,根据第二功能模块的第二参数,确定第二功能模块的第一权重之后,基于N个第一测试用例对待测应用软件进行测试之前,还包括:获取M个功能模块分别对应的测试用例集,测试用例集中包括至少一个测试用例;根据M个功能模块分别对应的第一权重,对M个功能模块分别对应的测试用例集进行测试用例筛选,获得N个第一测试用例。
第一权重越大,表示功能模块在待测应用软件中的影响力越大,由于测试是检测待测软件的质量的一种重要手段,从而可根据第一权重对各功能模块的测试用例进行筛选,如此,可使测试过程中使用的测试用例更加具有针对性,从而确保测试过程中针对各功能模块有对应更具针对性的测试用例,不但可提高测试效率,而且可提高测试准确性。例如,第一权重越大,为功能模块筛选的测试用例的数量越大,则对该功能模块的测试更注重。
在一个实施例中,根据M个功能模块分别对应的第一权重和覆盖率,获得目标覆盖率,包括:对M个功能模块分别对应的第一权重和覆盖率进行加权求和处理,得到第一目标值;对M个功能模块分别对应的第一权重进行求和,得到第二目标值;根据第一目标值和第二目标值,获得目标覆盖率,目标覆盖率与第一目标值成正比,与第二目标值成反比。
即在确定目标覆盖率的过程中,不但与M个功能模块分别对应的第一权重和覆盖率进行加权求和处理后得到的第一目标值相关,而且还与对M个功能模块分别对应的第一权重进行求和得到的第二目标值相关,从而可确保目标覆盖率的准确性。
下面以一个具体实施例对上述应用软件测试方法的过程加以具体说明。
如图2所示,首先,以待测应用软件的功能重要性对待测应用软件进行模块等级划分,例如,功能模块等级可以包括等级逐一递减的P0、P1、P2和P3,P3、P2、P1和P0的等级逐一递增,其对应的功能重要度也逐一递增的,从而可预先根据待测应用软件的功能重要性确定待测应用软件的第二功能模块的功能重要度,即第二预设功能重要度。在本实施例中,通过第二预设功能重要度、历史使用频次和历史漏洞量确定第二功能模块的基础权重。
然后,利用与第一功能模块关联的代码行数、与第一功能模块关联的函数数量和第一功能模块的代码缺陷率对基础权重进行调整,得到第二功能的第一权重,与第一功能模块关联的代码行数越大,对基础权重调整的幅度越大,上调的幅度越大。与第一功能模块关联的函数数量越大,对基础权重调整的幅度越大,上调的幅度越大,第一功能模块的代码缺陷率越大,对基础权重调整的幅度越大,上调的幅度越大。
其次,预先根据待测应用软件的功能重要性确定待测应用软件的第一功能模块的功能重要度,即第一预设功能重要度。通过第一预设功能重要度确定第一功能模块的基础权重。
再者,基于N个第一测试用例对待测应用软件进行测试,确定待测应用软件中M个功能模块分别对应的覆盖率,即以模块进行覆盖率统计得出代码覆盖率。
利用M个功能模块分别对应的第一权重和覆盖率得到目标覆盖率。具体公式如下:
Figure BDA0002138339590000101
其中,
Figure BDA0002138339590000102
为目标覆盖率,wi为第i个功能模块的第一权重,xi为第i个功能模块的覆盖率。
在一个示例中,在根据第二预设功能重要度、历史使用频次和历史漏洞量,确定第二功能模块的基础权重,根据与第一功能模块关联的代码行数、与第一功能模块关联的函数数量和第一功能模块的代码缺陷率对基础权重进行调整,确定第二功能模块的第一权重的过程中,每个参数对第二功能模块的第一权重的影响程度不同,从而每个参数分别对应有各自的参数权重,参数权重越大,表示该参数对第二功能模块的第一权重的影响程度越大,各参数权重可预先设置。上述第二预设功能重要度、历史使用频次、历史漏洞量、与第一功能模块关联的代码行数、与第一功能模块关联的函数数量和第一功能模块的代码缺陷率分别对应的参数权重之和为1,例如,第二预设功能重要度的参数权重可以为20%,历史使用频次的参数权重可以为15%,历史漏洞量的参数权重可以为25%,与第一功能模块关联的代码行数的参数权重可以为10%、与第一功能模块关联的函数数量的参数权重可以为10%,第一功能模块的代码缺陷率的参数权重可以为30%。可根据第二预设功能重要度、历史使用频次、历史漏洞量、第二预设功能重要度的参数权重、历史使用频次的参数权重和历史漏洞量的参数权重,确定第二功能模块的基础权重。具体可基于第二预设功能重要度的参数权重对第二预设功能重要度进行更新(例如,可以是将第二预设功能重要度的参数权重乘以第二预设功能重要度,实现更新)、基于历史使用频次的参数权重对历史使用频次进行更新(例如,可以是将历史使用频次的参数权重乘以历史使用频次,实现更新),以及基于历史漏洞量的参数权重对历史漏洞量进行更新(例如,可以是将历史漏洞量的参数权重乘以历史漏洞量,实现更新),利用更新后的第二预设功能重要度、更新后的历史使用频次以及更新后的历史漏洞量确定第二功能模块的基础权重。
然后,可根据与第一功能模块关联的代码行数、与第一功能模块关联的函数数量、第一功能模块的代码缺陷率、与第一功能模块关联的代码行数的参数权重、与第一功能模块关联的函数数量的参数权重和第一功能模块的代码缺陷率的参数权重对基础权重进行调整,确定第二功能模块的第一权重。具体地,可基于与第一功能模块关联的代码行数的参数权重对与第一功能模块关联的代码行数进行更新(例如,可以是将与第一功能模块关联的代码行数的参数权重乘以与第一功能模块关联的代码行数,实现更新)、基于与第一功能模块关联的函数数量的参数权重对与第一功能模块关联的函数数量进行更新(例如,可以是将与第一功能模块关联的函数数量的参数权重乘以与第一功能模块关联的函数数量,实现更新),以及基于第一功能模块的代码缺陷率的参数权重对第一功能模块的代码缺陷率进行更新(例如,可以是将第一功能模块的代码缺陷率的参数权重乘以第一功能模块的代码缺陷率,实现更新),利用更新后的与第一功能模块关联的代码行数、更新后的与第一功能模块关联的函数数量、更新后的第一功能模块的代码缺陷率对基础权重进行调整,确定第二功能模块的第一权重。
在一个示例中,对于第二预设重要程度的参数,在其对应的参数权重的基础上,可对参数权重进行更新,例如,功能级别P0、P1、P2和P3分别对应的级别权重为40%、30%、20%和10%,在确定第二功能模块的第二预设重要程度的参数权重后,可根据第二功能模块的功能等级的级别权重对第二功能模块的第二预设重要程度的参数权重进行更新,例如,可将第二功能模块的功能等级的级别权重乘以第二预设重要程度的参数权重,实现更新,后续在进行基础权重确定过程中,按照更新后的第二预设重要程度的参数权重进行计算。
通过上述过程得到的目标覆盖率更具针对性更准确。回归过程也可根据权重来划分各模块回归人力投入占比,例如重要功能,依据历史稳定性(根据历史漏洞量确定,历史漏洞量越低越稳定)低,新增代码影响大即可增加回归人力投入占比。原功能未被新增代码影响即可减少回归人力投入。优化回归流程以节省回归时间或增加回归效益。
随着互联网产品的迭代频次高迭代时间越短,对产品进行测试的回归效果显得尤其重要,通过以本发明提供的加权计算目标覆盖率,比原有全量覆盖率更加保证了结果的准确性以及功能的针对性。提高目标覆盖率准确性,以此目标覆盖率结果优化回归流程,即能在很大程度上保证了产品上线时的测试完备性,对线上产品的稳定性和体验都做到了良好的保证。
如图3所示,本发明还提供一个实施例的应用软件测试装置300,可应用于电子设备,该装置包括:
模块覆盖率确定模块301,用于基于N个第一测试用例对待测应用软件进行测试,确定待测应用软件中M个功能模块分别对应的覆盖率,其中,N、M均为大于1的整数;
目标覆盖率确定模块302,用于根据M个功能模块分别对应的第一权重和覆盖率,获得待测应用软件的目标覆盖率;
测试结果确定模块303,用于基于目标覆盖率确定待测应用软件的测试结果。
在一个实施例中,M个功能模块包括第一功能模块和第二功能模块;
装置,还包括:
第一功能权重确定模块,用于根据第一功能模块的第一参数,确定第一功能模块的第一权重,第一参数为预设的参数;
第二功能权重确定模块,用于根据第二功能模块的第二参数,确定第二功能模块的第一权重,第二参数包括基础参数和影响参数。
在一个实施例中,第二功能权重确定模块,包括:
基础权重确定模块,用于根据第二功能模块的基础参数,确定第二功能模块的基础权重;
权重调整模块,用于基于第二功能模块的影响参数,对第二功能模块的基础权重进行调整,得到第二功能模块的第一权重。
在一个实施例中,第一参数包括第一预设功能重要度,基础参数包括第二预设功能重要度、历史使用频次和历史漏洞量中的至少一项,影响参数包括与第一功能模块关联的代码行数、与第一功能模块关联的函数数量和第一功能模块的代码缺陷率中的至少一项。
在一个实施例中,装置,还包括:
测试用例集获取模块,用于获取M个功能模块分别对应的测试用例集,测试用例集中包括至少一个测试用例;
测试用例筛选模块,用于根据M个功能模块分别对应的第一权重,对M个功能模块分别对应的测试用例集进行测试用例筛选,获得N个第一测试用例。
在一个实施例中,目标覆盖率确定模块,包括:
第一目标值获取模块,用于对M个功能模块分别对应的第一权重和覆盖率进行加权求和处理,得到第一目标值;
第二目标值获取模块,用于对M个功能模块分别对应的第一权重进行求和,得到第二目标值;
目标覆盖率获取模块,用于根据第一目标值和第二目标值,获得目标覆盖率,目标覆盖率与第一目标值成正比,与第二目标值成反比。
本发明实施例提供的电子设备中的技术特征与上述应用软件测试方法中的技术特征对应,通过电子设备实现上述应用软件测试方法的各个过程,并能得到相同的效果,为避免重复,在此不再赘述。
如图4所示,本发明实施例还提供一种电子设备400,包括处理器401和存储器402,存储器402存储有可在处理器401上运行的计算机程序,该计算机程序被处理器401执行时实现上述应用软件测试方法实施例中的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。
本发明实施例还提供一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,该计算机程序被处理器执行时实现上述应用软件测试方法实施例的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者电子设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者电子设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者电子设备中还存在另外的相同要素。
在本发明实施例中,“示例性的”或者“例如”等词用于表示作例子、例证或说明。本发明实施例中被描述为“示例性的”或者“例如”的任何实施例或设计方案不应被解释为比其它实施例或设计方案更优选或更具优势。确切而言,使用“示例性的”或者“例如”等词旨在以具体方式呈现相关概念。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台电子设备(可以是手机,计算机,电子设备,空调器,或者网络设备等)执行本发明各个实施例的方法。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
上面结合附图对本发明的实施例进行了描述,但是本发明并不局限于上述的具体实施方式,上述的具体实施方式仅仅是示意性的,而不是限制性的,本领域的普通技术人员在本发明的启示下,在不脱离本发明宗旨和权利要求所保护的范围情况下,还可做出很多形式,均属于本发明的保护之内。

Claims (14)

1.一种应用软件测试方法,其特征在于,所述方法包括:
基于N个第一测试用例对待测应用软件进行测试,确定所述待测应用软件中M个功能模块分别对应的覆盖率,其中,所述N、M均为大于1的整数;
根据所述M个功能模块分别对应的第一权重和覆盖率,获得所述待测应用软件的目标覆盖率;
基于所述目标覆盖率确定所述待测应用软件的测试结果。
2.根据权利要求1所述的方法,其特征在于,所述M个功能模块包括第一功能模块和第二功能模块;
所述基于N个第一测试用例对待测应用软件进行测试之前,包括:
根据所述第一功能模块的第一参数,确定所述第一功能模块的第一权重,所述第一参数为预设的参数;
根据所述第二功能模块的第二参数,确定所述第二功能模块的第一权重,所述第二参数包括基础参数和影响参数。
3.根据权利要求2所述的方法,其特征在于,所述根据所述第二功能模块的第二参数,确定所述第二功能模块的第一权重,包括:
根据所述第二功能模块的基础参数,确定所述第二功能模块的基础权重;
基于所述第二功能模块的影响参数,对所述第二功能模块的基础权重进行调整,得到所述第二功能模块的第一权重。
4.根据权利要求2或3所述的方法,其特征在于,所述第一参数包括第一预设功能重要度,所述基础参数包括第二预设功能重要度、历史使用频次和历史漏洞量中的至少一项,所述影响参数包括与所述第一功能模块关联的代码行数、与所述第一功能模块关联的函数数量和所述第一功能模块的代码缺陷率中的至少一项。
5.根据权利要求2所述的方法,其特征在于,所述根据所述第二功能模块的第二参数,确定所述第二功能模块的第一权重之后,所述基于N个第一测试用例对待测应用软件进行测试之前,还包括:
获取M个功能模块分别对应的测试用例集,所述测试用例集中包括至少一个测试用例;
根据所述M个功能模块分别对应的第一权重,对所述M个功能模块分别对应的测试用例集进行测试用例筛选,获得所述N个第一测试用例。
6.根据权利要求1所述的方法,其特征在于,所述根据所述M个功能模块分别对应的第一权重和覆盖率,获得目标覆盖率,包括:
对所述M个功能模块分别对应的第一权重和覆盖率进行加权求和处理,得到第一目标值;
对所述M个功能模块分别对应的第一权重进行求和,得到第二目标值;
根据所述第一目标值和所述第二目标值,获得所述目标覆盖率,所述目标覆盖率与所述第一目标值成正比,与所述第二目标值成反比。
7.一种应用软件测试装置,其特征在于,所述装置包括:
模块覆盖率确定模块,用于基于N个第一测试用例对待测应用软件进行测试,确定所述待测应用软件中M个功能模块分别对应的覆盖率,其中,所述N、M均为大于1的整数;
目标覆盖率确定模块,用于根据所述M个功能模块分别对应的第一权重和覆盖率,获得所述待测应用软件的目标覆盖率;
测试结果确定模块,用于基于所述目标覆盖率确定所述待测应用软件的测试结果。
8.根据权利要求7所述的装置,其特征在于,所述M个功能模块包括第一功能模块和第二功能模块;
所述装置,还包括:
第一功能权重确定模块,用于根据所述第一功能模块的第一参数,确定所述第一功能模块的第一权重,所述第一参数为预设的参数;
第二功能权重确定模块,用于根据所述第二功能模块的第二参数,确定所述第二功能模块的第一权重,所述第二参数包括基础参数和影响参数。
9.根据权利要求8所述的装置,其特征在于,所述第二功能权重确定模块,包括:
基础权重确定模块,用于根据所述第二功能模块的基础参数,确定所述第二功能模块的基础权重;
权重调整模块,用于基于所述第二功能模块的影响参数,对所述第二功能模块的基础权重进行调整,得到所述第二功能模块的第一权重。
10.根据权利要求8或9所述的装置,其特征在于,所述第一参数包括第一预设功能重要度,所述基础参数包括第二预设功能重要度、历史使用频次和历史漏洞量中的至少一项,所述影响参数包括与所述第一功能模块关联的代码行数、与所述第一功能模块关联的函数数量和所述第一功能模块的代码缺陷率中的至少一项。
11.根据权利要求8所述的装置,其特征在于,所述装置,还包括:
测试用例集获取模块,用于获取M个功能模块分别对应的测试用例集,所述测试用例集中包括至少一个测试用例;
测试用例筛选模块,用于根据所述M个功能模块分别对应的第一权重,对所述M个功能模块分别对应的测试用例集进行测试用例筛选,获得所述N个第一测试用例。
12.根据权利要求7所述的装置,其特征在于,所述目标覆盖率确定模块,包括:
第一目标值获取模块,用于对所述M个功能模块分别对应的第一权重和覆盖率进行加权求和处理,得到第一目标值;
第二目标值获取模块,用于对所述M个功能模块分别对应的第一权重进行求和,得到第二目标值;
目标覆盖率获取模块,用于根据所述第一目标值和所述第二目标值,获得所述目标覆盖率,所述目标覆盖率与所述第一目标值成正比,与所述第二目标值成反比。
13.一种电子设备,其特征在于,包括:存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现如上所述权利要求1-6中任意一项的应用软件测试方法中的步骤。
14.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如上所述权利要求1-6中任意一项的应用软件测试方法中的步骤。
CN201910660422.4A 2019-07-22 2019-07-22 一种应用软件测试方法、装置及电子设备 Pending CN112256553A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910660422.4A CN112256553A (zh) 2019-07-22 2019-07-22 一种应用软件测试方法、装置及电子设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910660422.4A CN112256553A (zh) 2019-07-22 2019-07-22 一种应用软件测试方法、装置及电子设备

Publications (1)

Publication Number Publication Date
CN112256553A true CN112256553A (zh) 2021-01-22

Family

ID=74224528

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910660422.4A Pending CN112256553A (zh) 2019-07-22 2019-07-22 一种应用软件测试方法、装置及电子设备

Country Status (1)

Country Link
CN (1) CN112256553A (zh)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113448864A (zh) * 2021-07-14 2021-09-28 中国银行股份有限公司 一种测试覆盖率确定方法及其相关设备
CN115048315A (zh) * 2022-07-06 2022-09-13 东软睿驰汽车技术(沈阳)有限公司 自动驾驶仿真测试结果的分析方法、装置和电子设备
CN116311581A (zh) * 2023-03-21 2023-06-23 深圳市英捷软件有限公司 一种芯片的参数测试系统及方法
CN116561016A (zh) * 2023-07-11 2023-08-08 北京云枢创新软件技术有限公司 一种基于行覆盖数据的测试用例筛选系统
CN116737597A (zh) * 2023-08-10 2023-09-12 杭银消费金融股份有限公司 测试用例处理方法、系统与存储介质

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104834600A (zh) * 2015-04-28 2015-08-12 南京邮电大学 一种测试Android应用控件的方法
CN107957956A (zh) * 2017-12-26 2018-04-24 广州品唯软件有限公司 软件差异覆盖率的测试方法、装置及可读存储介质
CN108073506A (zh) * 2016-11-17 2018-05-25 百度在线网络技术(北京)有限公司 测试方法和装置
CN109542761A (zh) * 2018-10-11 2019-03-29 平安科技(深圳)有限公司 软件质量评估方法、装置及存储介质
CN109977016A (zh) * 2019-03-28 2019-07-05 恒生电子股份有限公司 一种测试触发方法、装置和设备以及一种测试系统

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104834600A (zh) * 2015-04-28 2015-08-12 南京邮电大学 一种测试Android应用控件的方法
CN108073506A (zh) * 2016-11-17 2018-05-25 百度在线网络技术(北京)有限公司 测试方法和装置
CN107957956A (zh) * 2017-12-26 2018-04-24 广州品唯软件有限公司 软件差异覆盖率的测试方法、装置及可读存储介质
CN109542761A (zh) * 2018-10-11 2019-03-29 平安科技(深圳)有限公司 软件质量评估方法、装置及存储介质
CN109977016A (zh) * 2019-03-28 2019-07-05 恒生电子股份有限公司 一种测试触发方法、装置和设备以及一种测试系统

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
安金霞等: "基于多维度覆盖率的软件测试动态评价方法", 《软件学报》, vol. 21, no. 9, pages 2135 - 2147 *
常龙辉等: "基于历史信息的自适应测试用例优先级技术", 《计算机科学》, vol. 42, no. 9, pages 154 - 158 *

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113448864A (zh) * 2021-07-14 2021-09-28 中国银行股份有限公司 一种测试覆盖率确定方法及其相关设备
CN115048315A (zh) * 2022-07-06 2022-09-13 东软睿驰汽车技术(沈阳)有限公司 自动驾驶仿真测试结果的分析方法、装置和电子设备
CN116311581A (zh) * 2023-03-21 2023-06-23 深圳市英捷软件有限公司 一种芯片的参数测试系统及方法
CN116561016A (zh) * 2023-07-11 2023-08-08 北京云枢创新软件技术有限公司 一种基于行覆盖数据的测试用例筛选系统
CN116561016B (zh) * 2023-07-11 2023-11-03 北京云枢创新软件技术有限公司 一种基于行覆盖数据的测试用例筛选系统
CN116737597A (zh) * 2023-08-10 2023-09-12 杭银消费金融股份有限公司 测试用例处理方法、系统与存储介质
CN116737597B (zh) * 2023-08-10 2023-10-20 杭银消费金融股份有限公司 测试用例处理方法、系统与存储介质

Similar Documents

Publication Publication Date Title
CN112256553A (zh) 一种应用软件测试方法、装置及电子设备
CN106294120B (zh) 测试代码的方法、设备和计算机程序产品
US9448906B2 (en) Service quality evaluator having adaptive evaluation criteria
US20170213037A1 (en) Security risk scoring of an application
CN112199293A (zh) 软件质量评价方法、装置、终端设备及存储介质
CN110262959B (zh) 底层服务压力测试方法、装置、电子设备及存储介质
CN114595130A (zh) 一种软件稳定性评估方法、装置、存储介质和设备
CN108664552A (zh) 一种用户偏好挖掘方法及装置
CN115437965B (zh) 适用于测试管理平台的数据处理方法
CN111461329A (zh) 一种模型的训练方法、装置、设备及可读存储介质
JP5348351B2 (ja) リスクプロファイル生成装置
CN111352852B (zh) 一种回归测试案例的选择方法及装置
CN108959415A (zh) 一种异常维度定位方法、装置及电子设备
CN111124918B (zh) 测试数据预测方法及装置、处理设备
CN109059989B (zh) 一种仪表剩余寿命评估的方法、系统及设备
CN114138634A (zh) 测试用例的选取方法、装置、计算机设备和存储介质
CN112597046A (zh) 测试方法、装置、计算机设备及存储介质
CN105528932A (zh) 一种测评用户识字量的方法与设备
Agarwal Markovian software reliability model for two types of failures with imperfect debugging rate and generation of errors
CN116627847B (zh) 一种浏览器兼容性测试方法及系统
CN110597703A (zh) 一种回归测试方法及装置
CN111367640B (zh) 数据统计周期确定方法、装置、电子设备及存储介质
CN112396430B (zh) 用于企业评价的处理方法及系统
CN111507639B (zh) 理财风险分析方法及装置
JP5804492B2 (ja) リスク管理装置

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