一种软件的稳定性的测试方法及装置技术领域
本发明涉及软件测试技术领域,特别涉及一种软件的稳定性的测试方法及
装置。
背景技术
软件的稳定性测试,是指在软件的目标版本发布给用户之前,软件提供商
先对软件的目标版本的各个功能模块进行高频度重复性的测试,以发现软件在
反复使用及高强度使用时可能出现的问题,如某个功能模块不能准确实现或者
软件易崩溃等。
传统的对于软件的稳定性的测试,会对软件的目标版本的各个功能模块均
进行相同的高强度和相同的高频次的测试。
随着目前各类软件的版本更新速率的加快,这种测试方法逐渐显现出一定
的问题,因为有的软件可能在较短时间内,比如一个星期,就会有一个待发布
版本,这样会使得提供给测试人员的测试时长较短。在这种情况下,如果使用
传统的这种测试方法对软件的目标版本的各个功能模块进行稳定性测试,会使
得各个功能模块的测试次数都很少,可能会导致测试结果不准确,很容易在软
件的目标版本发布后,将软件的问题暴露给用户,给用户带来较差的使用体验。
发明内容
为解决上述问题,本发明实施例公开了一种软件的稳定性的测试方法及装
置。技术方案如下:
一种软件的稳定性的测试方法,包括:
接收对软件的目标版本的测试任务;
获得所述软件的目标版本的在前版本的各个功能模块的使用次数;
根据所述在前版本的各个功能模块的使用次数,确定所述软件的目标版本
的各个功能模块的测试次数占比,其中,随着使用次数的增加,所述测试次数
占比的总体变化趋势为增大;
针对所述软件的目标版本的每个功能模块,采用对应的测试用例,根据确
定的该功能模块的测试次数占比,对该功能模块进行稳定性测试。
在本发明的一种具体实施方式中,所述根据所述在前版本的各个功能模块
的使用次数,确定所述软件的目标版本的各个功能模块的测试次数占比,包括:
根据所述在前版本的各个功能模块的使用次数,将使用次数高于预设第一
阈值的功能模块确定为第一类功能模块;
针对所述软件的目标版本中的每个第一类功能模块,确定该第一类功能模
块的第一测试次数占比P1;
针对所述软件的目标版本中的每个非第一类功能模块,确定该非第一类功
能模块的第二测试次数占比P2;
其中,P1>P2,且n*P1+m*P2=100%,n为所述软件的目标版本中第一类功能
模块的数量,m为所述软件的目标版本中非第一类功能模块的数量。
在本发明的一种具体实施方式中,所述根据所述在前版本的各个功能模块
的使用次数,确定所述软件的目标版本的各个功能模块的测试次数占比,包括:
根据所述在前版本的各个功能模块的使用次数,确定所述在前版本的各个
功能模块的使用次数占比;
根据公式Qi=Fi,确定所述软件的目标版本的各个功能模块的测试次数占比;
其中,Qi为所述软件的目标版本的功能模块i的测试次数占比,Fi为所述在前
版本的功能模块i的使用次数占比。
在本发明的一种具体实施方式中,所述根据所述在前版本的各个功能模块
的使用次数,确定所述在前版本的各个功能模块的使用次数占比,包括:
针对所述在前版本的每个功能模块,将该功能模块在每个在前版本中的总
的使用次数,与所有功能模块在每个在前版本的总的使用次数的比值确定为该
功能模块的使用次数占比。
在本发明的一种具体实施方式中,所述获得所述软件的目标版本的在前版
本的各个功能模块的使用次数,包括:
获得至少一个用户针对所述软件的目标版本的在前版本的使用行为数据;
从所述使用行为数据中获得所述至少一个用户对所述在前版本的各个功能
模块的使用次数。
一种软件的稳定性的测试装置,包括:
测试任务接收单元,用于接收对软件的目标版本的测试任务;
使用次数获得单元,用于获得所述软件的目标版本的在前版本的各个功能
模块的使用次数;
测试次数占比确定单元,用于根据所述在前版本的各个功能模块的使用次
数,确定所述软件的目标版本的各个功能模块的测试次数占比,其中,随着使
用次数的增加,所述测试次数占比的总体变化趋势为增大;
测试单元,用于针对所述软件的目标版本的每个功能模块,采用对应的测
试用例,根据确定的该功能模块的测试次数占比,对该功能模块进行稳定性测
试。
在本发明的一种具体实施方式中,所述测试次数占比确定单元,具体用于:
根据所述在前版本的各个功能模块的使用次数,将使用次数高于预设第一
阈值的功能模块确定为第一类功能模块;
针对所述软件的目标版本中的每个第一类功能模块,确定该第一类功能模
块的第一测试次数占比P1;
针对所述软件的目标版本中的每个非第一类功能模块,确定该非第一类功
能模块的第二测试次数占比P2;
其中,P1>P2,且n*P1+m*P2=100%,n为所述软件的目标版本中第一类功能
模块的数量,m为所述软件的目标版本中非第一类功能模块的数量。
在本发明的一种具体实施方式中,所述测试次数占比确定单元,包括:
使用次数占比确定子单元,用于根据所述在前版本的各个功能模块的使用
次数,确定所述在前版本的各个功能模块的使用次数占比;
测试次数占比确定子单元,用于根据公式Qi=Fi,确定所述软件的目标版本
的各个功能模块的测试次数占比;
其中,Qi为所述软件的目标版本的功能模块i的测试次数占比,Fi为所述在前
版本的功能模块i的使用次数占比。
在本发明的一种具体实施方式中,所述使用次数占比确定子单元,具体用
于:
针对所述在前版本的每个功能模块,将该功能模块在每个在前版本中的总
的使用次数,与所有功能模块在每个在前版本的总的使用次数的比值确定为该
功能模块的使用次数占比。
在本发明的一种具体实施方式中,所述使用次数获得单元,具体用于:
获得至少一个用户针对所述软件的目标版本的在前版本的使用行为数据;
从所述使用行为数据中获得所述至少一个用户对所述在前版本的各个功能
模块的使用次数。
应用本发明实施例所提供的技术方案,根据软件的在前版本的各个功能模
块的使用次数,确定软件的待测试的目标版本的各个功能模块的测试次数占比,
并针对软件的目标版本的每个功能模块,根据该功能模块的测试次数占比,对
该功能模块进行稳定性测试。这样,对各个功能模块区别对待,对于目标版本
中的各个功能模块而言,随着使用次数的增加,其测试次数占比的总比趋势为
增大,以保证用户使用比较频繁的功能模块的稳定性,使版本发布后可以给用
户带来较好的使用体验。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施
例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述
中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付
出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例中一种软件的稳定性的测试方法的实施流程图;
图2为本发明实施例中一种软件的稳定性的测试装置的结构示意图。
具体实施方式
为了使本领域技术人员更好地理解本发明实施例中的技术方案,下面将结
合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描
述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。
基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所
获得的所有其他实施例,都属于本发明保护的范围。
参见图1所示,为本发明实施例所提供的一种软件的稳定性的测试方法的实
施流程图,该方法可以包括以下步骤:
S110:接收对软件的目标版本的测试任务;
在实际应用中,为响应新的需求或者修改新发现的问题,开发人员总是需
要对软件进行升级,这样就会产生新的版本。对于同一款软件,通常包含不同
的版本,有新旧之分。新版本相对于旧版本而言,其应用性能可能更好,是开
发人员对旧版本进行优化后的版本。
当开发人员完成软件的目标版本的开发工作后,一般会将该目标版本提供
给测试人员,由测试人员进行稳定性测试,以及早发现该目标版本存在的问题,
并提供给开发人员,以尽快修改,以保证将该目标版本发布给用户后,在用户
的使用过程中能够保持较好的稳定性。这里的目标版本可以理解为软件的新版
本。
针对软件的目标版本的测试任务,可以是开发人员下发的,还可以是测试
人员根据实际情况制定的。接收到测试任务后,可以继续执行步骤S120的操作。
S120:获得所述软件的目标版本的在前版本的各个功能模块的使用次数;
如前所述,目标版本可以理解为软件的新版本,那么在目标版本之前发布
的版本可以理解为软件的旧版本。在软件的目标版本产生之前,软件可能还包
含一个或多个在前版本。比如,有的软件一周即发布一个版本,那么对于当前
周的目标版本而言,当前周之前发布的版本均为该软件的在前版本。
可以理解的是,每个软件都包含各自的功能模块。比如,一个播放器软件,
其功能模块可以有:快进模块、快退模块、播放模块、暂停模块等。同一款软
件的不同版本所包含的功能模块可能不同。比如,某款软件的目标版本的在前
版本为版本1,在版本1中包含有模块A、模块B和模块C三个功能模块,为响应
用户需求,目标版本基于版本1增加了模块D这个功能模块,也就是说,该软件
的目标版本包含有模块A、模块B、模块C和模块D四个功能模块。
当步骤S110接收到对软件的目标版本的测试任务后,可以获得软件的目标
版本的所有在前版本或者部分在前版本的各个功能模块的使用次数。
在实际应用中,可以预先收集软件的目标版本的每个在前版本的各个功能
模块的使用次数的信息,并将这些信息记录到信息记录表中,当接收到对软件
的目标版本的测试任务后,直接从信息记录表中读取各个功能模块使用次数的
信息。
需要说明的是,软件的目标版本的在前版本不仅仅是发布给外部用户的版
本,还可以是发布给内部用户测试使用的版本。
在本发明的一种具体实施方式中,步骤S120可以包括以下步骤:
步骤一:获得至少一个用户针对所述软件的目标版本的在前版本的使用行
为数据;
步骤二:从所述使用行为数据中获得所述至少一个用户对所述在前版本的
各个功能模块的使用次数。
为描述方便,将上述两个步骤结合起来进行说明。
软件的目标版本可能存在多个在前版本,不同的用户使用的版本可能不同,
有的用户进行过软件升级,使用的是较新的版本,有的用户没有进行过软件升
级,使用的是较旧的版本。
在实际应用中,可以设置一个服务器,在用户在使用软件的目标版本的在
前版本的过程中,相应的客户端可以收集用户的使用行为数据,并定期或不定
期地将其上报给服务器,服务器对各个客户端上报的用户的使用行为数据进行
汇总,并将这些用户的使用行为数据存储于数据库中。
当接收到对软件的目标版本的测试任务后,可以直接从上述服务器的数据
库中获得用户的使用行为数据,并从用户的使用行为数据中获得每一个功能模
块的使用次数。
S130:根据所述在前版本的各个功能模块的使用次数,确定所述软件的目
标版本的各个功能模块的测试次数占比;
在步骤S120获得了目标版本的在前版本的各个功能模块的使用次数,针对
每个功能模块,其使用次数的多少,可以表明用户对该功能模块的使用频率。
在在前版本中哪些功能模块的使用次数多,可以在目标版本的测试中相应增加
这些功能模块的测试次数占比。根据在前版本的各个功能模块的使用次数,确
定出软件的目标版本的各个功能模块的测试次数占比,可以遵循如下标准:随
着使用次数的增加,测试次数占比的总比变化趋势为增大。
S140:针对所述软件的目标版本的每个功能模块,采用对应的测试用例,
根据确定的该功能模块的测试次数占比,对该功能模块进行稳定性测试。
在实际应用中,测试人员会预先针对待测试的目标版本的每个功能模块,
编写相应的测试用例,一个功能模块可能对应一个或多个测试用例。对于目标
版本的每个功能模块而言,当确定出该功能模块的测试次数占比后,即可采用
该功能模块对应的测试用例,根据确定的测试次数占比,对该功能模块进行稳
定性测试。
具体的,可以将测试任务分为多个测试子任务,为每个测试子任务设置测
试总次数,在每个测试子任务中按照确定的测试次数占比对各个功能模块进行
测试,各个功能模块的测试顺序可以是随机的,还可以是根据预设要求设置的。
比如,软件的目标版本的功能模块有模块A、模块B和模块C,确定出的模
块A的测试次数占比为30%、模块B的测试次数占比为30%、模块C的测试次数占
比为40%,一次测试子任务的测试总次数为20,可以按照以下顺序进行模块A、
模块B和模块C的测试:
模块A:3次;模块C:5次;模块A:1次;模块B:4次,模块C:3次,模
块A:2次;模块B:2次。
当20次测试完成后,模块A、模块B、模块C的测试次数占比分别为30%、30%、
40%。执行多个测试子任务后,无论什么时候结束测试,各个功能模块的测试次
数占比都与此相差不多。
在一个功能模块对应多个测试用例的情况下,可以在每一次对该功能模块
进行测试时随机选取或者依次选取该功能模块对应的测试用例中的一个测试用
例进行测试。比如,目标版本的模块A对应5个测试用例,在对模块A进行的一
次测试中,可以从这5个测试用例中随机选取一个测试用例进行测试,或者,对
这5个测试用例按照预设的要求进行排序,在对模块A进行的第一次测试中,选
取这5个测试用例中的第一个测试用例进行测试,在对模块A进行的第二次测试
中,选取这5个测试用例中的第二个测试用例进行测试,依次进行,五次测试完
成后,在对模块A进行的第六次测试中,再选取这5个测试用例中的第一个测试
用例进行测试,循环往复。
应用本发明实施例所提供的技术方案,根据软件的在前版本的各个功能模
块的使用次数,确定软件的待测试的目标版本的各个功能模块的测试次数占比,
并针对软件的目标版本的每个功能模块,根据该功能模块的测试次数占比,对
该功能模块进行稳定性测试。这样,对各个功能模块区别对待,对于目标版本
中的各个功能模块而言,随着使用次数的增加,其测试次数占比的总比趋势为
增大,以保证用户使用比较频繁的功能模块的稳定性,使版本发布后可以给用
户带来较好的使用体验。
在本发明的一个实施例中,步骤S130可以包括以下步骤:
第一个步骤:根据所述在前版本的各个功能模块的使用次数,将使用次数
高于预设第一阈值的功能模块确定为第一类功能模块;
第二个步骤:针对所述软件的目标版本中的每个第一类功能模块,确定该
第一类功能模块的第一测试次数占比P1;
第三个步骤:针对所述软件的目标版本中的每个非第一类功能模块,确定
该非第一类功能模块的第二测试次数占比P2;
其中,P1>P2,且n*P1+m*P2=100%,n为所述软件的目标版本中第一类功能
模块的数量,m为所述软件的目标版本中非第一类功能模块的数量。
为描述方便,将上述三个步骤结合起来进行说明。
在对软件的稳定性测试过程中,如果测试时间较为充足,可以对各个功能
模块均进行大量的测试。但是如果测试时间不足,则需要各个功能模块加以区
分。
在本发明实施例中,可以根据在前版本的各个功能模块的使用次数,对各
个功能模块进行区分,将使用次数高于预设第一阈值的功能模块确定为第一类
功能模块。将软件的目标版本的每个第一类功能模块的测试次数占比确定为第
一测试次数占比P1,将软件的目标版本的每个非第一类功能模块的测试次数占比
确定为第二测试次数占比P2。需要说明的是,第一阈值、P1、P2可以根据实际情
况进行设置和调整,但是需满足以下条件:P1>P2,且n*P1+m*P2=100%,n为所
述软件的目标版本中第一类功能模块的数量,m为所述软件的目标版本中非第一
类功能模块的数量。
为方便理解,举例说明。
软件的目标版本的功能模块包含模块A、模块B和模块C,该目标版本的在
前版本中也均包含这三个功能模块,获得的这三个功能模块的使用次数分别为:
模块A使用次数为1000次,模块B使用次数为500次,模块C使用次数为800次。
如果预设的第一阈值为780次,那么可以确定模块A和模块C为第一类功能模块,
模块B为非第一类功能模块,将模块A和模块C的测试次数占比确定为P1,如40%,
将模块C的测试次数占比确定为P2,如20%。
在本发明的另一个实施例中,步骤S130可以包括以下步骤:
步骤一:根据所述在前版本的各个功能模块的使用次数,确定所述在前版
本的各个功能模块的使用次数占比;
在步骤S120获得软件的目标版本的在前版本的各个功能模块的使用次数后,
可以根据各个功能模块的使用次数,确定各个功能模块的使用次数占比,即各
个功能模块的使用次数与全部功能模块的总的使用次数的占比。
在本发明的一种具体实施方式中,针对所述在前版本的每个功能模块,将
该功能模块在每个在前版本中的总的使用次数,与所有功能模块在每个在前版
本的总的使用次数的比值确定为该功能模块的使用次数占比。
步骤二:根据公式Qi=Fi,确定所述软件的目标版本的各个功能模块的测试
次数占比。
其中,Qi为所述软件的目标版本的功能模块i的测试次数占比,Fi为所述在前
版本的功能模块i的使用次数占比。
相应于上面的方法实施例,本发明实施例还提供了一种软件的稳定性的测
试装置,参见图2所示,该装置可以包括以下单元:
测试任务接收单元210,用于接收对软件的目标版本的测试任务;
使用次数获得单元220,用于获得所述软件的目标版本的在前版本的各个功
能模块的使用次数;
测试次数占比确定单元230,用于根据所述在前版本的各个功能模块的使用
次数,确定所述软件的目标版本的各个功能模块的测试次数占比,其中,随着
使用次数的增加,所述测试次数占比的总体变化趋势为增大;
测试单元240,用于针对所述软件的目标版本的每个功能模块,采用对应的
测试用例,根据确定的该功能模块的测试次数占比,对该功能模块进行稳定性
测试。
应用本发明实施例所提供的装置,根据软件的在前版本的各个功能模块的
使用次数,确定软件的待测试的目标版本的各个功能模块的测试次数占比,并
针对软件的目标版本的每个功能模块,根据该功能模块的测试次数占比,对该
功能模块进行稳定性测试。这样,对各个功能模块区别对待,对于目标版本中
的各个功能模块而言,随着使用次数的增加,其测试次数占比的总比趋势为增
大,以保证用户使用比较频繁的功能模块的稳定性,使版本发布后可以给用户
带来较好的使用体验。
在本发明的一种具体实施方式中,所述测试次数占比确定单元230,具体用
于:
根据所述在前版本的各个功能模块的使用次数,将使用次数高于预设第一
阈值的功能模块确定为第一类功能模块;
针对所述软件的目标版本中的每个第一类功能模块,确定该第一类功能模
块的第一测试次数占比P1;
针对所述软件的目标版本中的每个非第一类功能模块,确定该非第一类功
能模块的第二测试次数占比P2;
其中,P1>P2,且n*P1+m*P2=100%,n为所述软件的目标版本中第一类功能
模块的数量,m为所述软件的目标版本中非第一类功能模块的数量。
在本发明的一种具体实施方式中,所述测试次数占比确定单元230,可以包
括以下子单元:
使用次数占比确定子单元,用于根据所述在前版本的各个功能模块的使用
次数,确定所述在前版本的各个功能模块的使用次数占比;
测试次数占比确定子单元,用于根据公式Qi=Fi,确定所述软件的目标版本
的各个功能模块的测试次数占比;
其中,Qi为所述软件的目标版本的功能模块i的测试次数占比,Fi为所述在前
版本的功能模块i的使用次数占比。
在本发明的一种具体实施方式中,所述使用次数占比确定子单元,具体用
于:
针对所述在前版本的每个功能模块,将该功能模块在每个在前版本中的总
的使用次数,与所有功能模块在每个在前版本的总的使用次数的比值确定为该
功能模块的使用次数占比。
在本发明的一种具体实施方式中,所述使用次数获得单元220,可以具体用
于:
获得至少一个用户针对所述软件的目标版本的在前版本的使用行为数据;
从所述使用行为数据中获得所述至少一个用户对所述在前版本的各个功能
模块的使用次数。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将
一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些
实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包
含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素
的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的
其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在
没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包
括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相
似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。
尤其,对于装置实施例而言,由于其基本相似于方法实施例,所以描述的比较
简单,相关之处参见方法实施例的部分说明即可。
本领域普通技术人员可以理解实现上述方法实施方式中的全部或部分步骤
是可以通过程序来指令相关的硬件来完成,所述的程序可以存储于计算机可读
取存储介质中,这里所称得的存储介质,如:ROM/RAM、磁碟、光盘等。
以上所述仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。
凡在本发明的精神和原则之内所作的任何修改、等同替换、改进等,均包含在
本发明的保护范围内。