软件测试方法、装置及系统的制作方法

文档序号:6362603阅读:250来源:国知局
专利名称:软件测试方法、装置及系统的制作方法
技术领域
本发明涉及软件测试领域,尤其涉及一种软件测试方法、装置及系统。
背景技术
敏捷研发,我们需要快速迭代,而快速迭代就需要测试快速反馈质量,精准测试-准确地根据软件的变化点来进行测试,以达成在快速迭代中确保质量并快速反馈软件质量状况。敏捷开发是一种应对快速变化的需求的软件开发能力。在敏捷开发过程中,需要进行快速迭代,而快速迭代则需要软件测试快速反馈软件质量,也就要求在软件开发通过精准测试快速定位软件发生的变化,并根据软件的变化点来进行测试,以达成在快速迭代中确保软件质量并快速反馈软件的质量情况的目标。在现有技术中,需要通过人工维护代码文件和功能模块的对应关系。当通过代码差异化确定代码文件发生变化时,根据代码文件和功能模块的对应关系得到受影响的功能模块,从而对受影响的功能模块进行精准测试,缩短测试的时间。发明人在实现本发明的过程中,发现现有技术至少存在以下缺陷:
现有技术中确定的差异是文件级别的,而一个代码文件可能会对应多个功能模块,当代码文件发生变化时,需要对该代码文件对应的所有功能模块均进行测试。但由于并非所有的功能模块都会受到对应的代码文件变化的影响,因此,现有技术中测试的准确度不高。此外,由于现有技术中与代码文件变化相对应的是功能模块,而一个功能可能对应很多个测试用例,当代码文件发生变化时,无法直接得到需要执行的测性用例,可执行性较低。

发明内容
本发明提供一种软件测试方法、装置及系统,以提高软件测试的准确度和可执行性。为了达到上述目的,本发明实施例提供一种软件测试方法,包括:
接收待测软件的测试请求;
获取所述待测软件的两个不同版本信息,并进行差异化比对,获取差异化数据,建立差异化数据的功能变化函数,并存储于数据库;
调取存储在标注数据库中的测试用例的功能应用函数;
根据所述建立的差异化数据的功能变化函数与所述调取存储在标注数据库中的测试用例的功能应用函数的,建立所述差异化数据与所述测试用例的对应关系;
确定所述待测软件的测试用例;
根据确定的所述测试用例对所述待测软件进行测试。本发明实施例还提供一种测试装置,包括:
获取模块,用于获取所述待测软件的源代码文件和版本号信息;
处理模块,用于根据对所述待测软件的源代码文件进行差异化比对,获取差异化数据,建立差异化数据的功能变化函数,并存储于数据库;
调取模块,用于调取存储在标注数据库中的测试用例的功能应用函数;
匹配模块,用于根据所述差异化数据的功能变化函数和所述测试用例的功能应用函数的匹配,建立差异化数据和测试用例的对应关系,确定所述待测软件的测试用例;
测试模块,用于根据匹配模块确定的测试用例对所述待测软件进行测试。本发明实施例还提供一种测试系统,版本管理服务器、标注服务器、后台服务器、标注收集客户端、Web客户端;其中:
所述版本管理服务器,用于存储软件版本信息;
所述标注收集客户端,用于收集测试用例的功能应用函数,并存储于所述标注服务器
中;
所述Web客户端,用于接收待测软件的测试请求,并将所述待测软件的测试请求发送给所述后台服务器;
所述后台服务器,用于获取所述待测软件的两个不同版本信息,并进行差异化比对,获取差异化数据,建立差异化数据的功能变化函数,并存储于标注服务器中;调取存储在标注服务器中的测试用例的功能应用函数;根据功能变化函数与功能应用函数的对应关系匹配差异化数据和测试用例的对应关系,确定所述待测软件的测试用例,并返回给所述Web客户端,由所述Web客户端根据所述测试用例对所述待测软件进行软件测试;
所述标注服务器,用于存储测试用例的功能应用函数以及差异化数据的功能变化函数。与现有技术相比,本发明实施例具有以下优点:
当接收到待测软件的测试请求时,一方面,获取该待测软件的两个不同版本信息,并进行差异化比对,获取差异化数据,建立差异化数据的功能变化函数,并存储于数据库;另一方面,调度存储在标注数据库中的测试用例的功能应用函数,根据功能变化函数与功能应用函数的对应关系匹配差异化数据和测试用例的对应关系,以确定待测软件的测试用例,进而根据所确定的测试用例对该待测软件进行测试,提高了软件测试的准确度和可执行性。


图1为本发明实施例提供的软件测试方法的流程示意 图2为本发明实施例提供的测试系统在具体应用场景下测试系统的示意 图3为本发明实施例提供的标注收集客户端建立测试用例和函数的对应关系的流程示意 图4为本发明实施例提供的测试装置的结构示意图。
具体实施例方式针对上述现有技术中的缺陷,本发明实施例提供一种软件测试的技术方案。在该技术方案中,当接收到待测软件的测试请求时,一方面,获取该待测软件的两个不同版本信息,并进行差异化比对,获取差异化数据,建立差异化数据的功能变化函数,并存储于数据库;另一方面,调度存储在标注数据库中的测试用例的功能应用函数,根据所建立的差异化数据的功能变化函数与所调取存储在标注数据库中的测试用例的功能应用函数的匹配,建立差异化数据和测试用例的对应关系,以确定待测软件的测试用例,进而根据所确定的测试用例对该待测软件进行测试,提高了软件测试的准确度和可执行性。在本发明实施例提供的技术方案中,一方面,可以通过对待测软件的两个不同版本信息进行差异化比对,获取差异化数据,建立差异化数据的功能变化函数,并存储于数据库。例如,可以对待测软件的两个不同版本的源代码文件进行差异化分析,获取源代码的差异化数据,建立软件源代码差异化数据的功能变化函数(即源代码文件的变化导致发生变化的功能函数),即建立差异化数据与功能变化函数的对应关系。另一方面,还可以通过执行测试用例,并获取相应的功能应用函数(即执行该测试用例所调用的功能函数),进而确定测试用例的功能应用函数。例如,可以启动函数跟踪程序,执行测试用例,通过函数跟踪程序的监视执行测试用例,收集所述测试用例的功能应用函数,即确定测试用例与功能应用函数的对应关系。其中,在本发明实施例中,还可以通过打日志的方式确定测试用例的功能应用函数,即在执行测试用例时,可以在代码文件中通过打日志的方式标注执行该测试用例所调用的函数,进而确定测试用例的功能应用函数。下面将结合本发明的实施例中的附图,对本发明的实施例中的技术方案进行清楚、完整地描述,显然,下面所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明的实施例保护的范围。如图1所示,为本发明实施例提供的软件测试方法的流程示意图,可以包括以下步骤:
步骤101、接收待测软件的测试请求。具体的,在软件开发中,当测试人员需要对软件进行测试时,可以向测试系统发送待测软件的测试请求,其中可以携带待测软件的版本信息,如,软件的源代码文件和版本号
信息等。步骤102、获取待测软件的两个不同版本信息,并进行差异化比对,获取差异化数据,建立差异化数据的功能变化函数,并存储于数据库。具体的,可以通过对待测软件的两个不同版本的源代码文件进行差异化分析,获取源代码的差异化数据,建立软件源代码差异化数据的功能变化函数。步骤103、调取存储在标注数据库中的测试用例的功能应用函数。具体的,在本发明实施例提供的技术方案中,标注数据库中存储有测试用例的功能应用函数,即测试用例与功能应用函数的对应关系。当根据待测软件的测试请求,建立了待测软件的两个不同版本信息的差异化数据的功能变化函数后,可以从标注数据库中调取测试用例的功能应用函数,以确定差异化数据对应的测试用例。其中,存储在标注数据库中的测试用例的功能应用函数可以通过动态函数跟踪程序实现标注,其具体实现流程可以包括:启动函数跟踪程序,执行测试用例,通过函数跟踪程序的监视执行测试用例,收集所述测试用例的功能应用函数,并存储于标注数据库。步骤104、根据所建立的差异化数据的功能变化函数与所调取存储在标注数据库中的测试用例的功能应用函数的匹配,建立差异化数据和测试用例的对应关系。
具体的,在建立了差异化数据的功能变化函数,并获取到了测试用例的功能应用函数后,可以根据所建立的差异化数据的功能变化函数与所调用的测试用例的功能应用函数的对应关系确定差异化数据与测试用例的对应关系,即确定进行软件测试时需要的测试用例。步骤105、确定待测软件的测试用例,并根据所确定的测试用例对待测软件进行测试。具体的,确定了待测软件的测试用例后,可以针对所确定的测试用例对待测软件进行测试,即相应测试人员可以直接通过执行相应测试用例进行软件测试,提高了软件测试的精确度和可执行性。需要注意的是,在本发明实施例提供的技术方案中,存储差异化数据的功能变化函数以及测试用例的功能应用函数时,对应于函数的记录还可以记录该函数所属的类,如类(如 AppController) + 函数名(如 statusOfUin)。下面结合具体应用场景对本发明实施例提供的技术方案进行更加详细地描述。参见图2,在该实施例中,测试系统由版本管理服务器、标注服务器、后台服务器、标注收集客户端以及Web客户端(Web端)组成。其中:
版本管理服务器中存储有软件版本信息(包括软件版本号、不同版本软件的源代码文件等)。标注收集客户端用于收集执行测试用例的功能应用函数。具体的,标注收集客户端启动Dtrace监控器,并执行测试用例。在执行测试用例的过程中,Dtrace监控器会收集到执行该测试用例时所调用的函数。例如:
I 160471-statusOfUin::entry AppController -statusOfUin
I 160475 -GetHeadImageWithUin:status:: entry AppController-GetHeadImageWithUin: status:1 160474 -GetHeaderImageFromPath:: entry AppControIler-GetHeaderImageFromPath:
执行完测试用例后,标注收集客户端停止Dtrace监控器,并对收集到的函数进行分析,根据执行测试用例所调用的功能函数确定测试用例的功能应用函数,并保存到标注服务器中。其中,测试用例的功能应用函数的记录中可以用测试用例ID或其他能够唯一标识测试用例的信息对测试用例进行标注。其中,标注收集客户端确定测试用例的功能应用函数的流程示意图可以如图3所示。需要注意的是,标注收集客户端收集到执行测试用例所调用的函数后,可以对收集到的函数进行分析处理,除去其中包含的底层的系统函数,并建立测试用例与处理后的函数的对应关系,从而使软件测试的准确率更高。Web客户端用于接收待测软件的测试请求,并将待测软件的测试请求发送给后台服务器。具体的,测试人员可以通过Web客户端填写同一个软件的两个不同版本的版本号,以发起待测软件的测试请求。Web客户端向后台服务器转发该携带待测软件的软件版本号的测试请求。 后台服务器接收到待测软件的测试请求后,一方面,可以获取待测软件的两个不同版本信息,并进行差异化化比对,获取差异化数据,建立差异化数据的功能变化函数,并存储于标注服务器中;另一方面,调取存储在标注服务器中的测试用例的功能应用函数;根据功能变化函数与功能应用函数的对应关系匹配差异化数据和测试用例的对应关系,确定待测软件的测试用例,并返回给Web客户端,由Web客户端根据测试用例对所述待测软件进行软件测试。需要注意的是,在本发明实施例通过的技术方案中,测试人员提交的待测软件的测试请求中,可以携带待测软件某一个版本的信息(如源代码文件和版本号),后台服务器接收到测试请求后,从该测试请求中获取待测软件该版本的信息,并从版本管理服务器中获取待测软件的另一不同版本的信息;也可以只携带待测软件两个不同版本的版本号,由后台服务器从软件版本管理服务器中获取待测软件该两个不同版本的相关信息(如源代码文件)。通过以上描述可以看出,在本发明实施例提供的技术方案中,当接收到待测软件的测试请求时,一方面,获取该待测软件的两个不同版本信息,并进行差异化比对,获取差异化数据,建立差异化数据的功能变化函数,并存储于数据库;另一方面,调度存储在标注数据库中的测试用例的功能应用函数,根据功能变化函数与功能应用函数的对应关系匹配差异化数据和测试用例的对应关系,以确定待测软件的测试用例,进而根据所确定的测试用例对该待测软件进行测试,提高了软件测试的准确度和可执行性。此外,由于在本发明实施例中,通过服务器维护差异化数据的功能变化函数以及测试用例的功能应用函数,避免了现有技术中通过人工维护代码文件和功能模块的对应关系的情况下由于人员调度等原因造成的对应错误。基于上述方法实施例相同的技术构思,本发明实施例还提供了一种测试装置。如图4所示,为本申请实施例提供的测试装置的结构示意图,可以包括:
获取模块41,用于获取所述待测软件的源代码文件和版本号信息;
处理模块42,用于根据对所述待测软件的源代码文件进行差异化比对,获取差异化数据,建立差异化数据的功能变化函数,并存储于数据库;
调取模块43,用于调取存储在标注数据库中的测试用例的功能应用函数;
匹配模块44,用于根据所述差异化数据的功能变化函数和所述测试用例的功能应用函数的匹配,建立差异化数据和测试用例的对应关系,确定所述待测软件的测试用例;
测试模块45,用于根据匹配模块44确定的测试用例对所述待测软件进行测试。其中,本发明实施例提供的测试装置还可以包括:
接收模块46,用于接收待测软件的测试请求。其中,所述处理模块42可以进一步包括:
比对单元421,用于对所述待测软件的两个不同版本的源代码文件进行差异化分析;建立存储单元422,用于获取源代码的差异化数据,建立软件源代码差异化数据的功能变化函数,并存储于数据库中
其中,所述获取模块42可以具体用于,获取存储于版本管理数据库中的所述待测软件的两个不同版本的信息;或,获取所述测试请求中携带的待测软件的版本信息,并获取存储于版本管理数据库中的所述待测软件的另一不同版本信息。通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到本发明可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。本领域技术人员可以理解附图只是一个优选实施例的示意图,附图中的模块或流程并不一定是实施本发明所必须的。本领域技术人员可以理解实施例中的装置中的模块可以按照实施例描述进行分布于实施例的装置中,也可以进行相应变化位于不同于本实施例的一个或多个装置中。上述实施例的模块可以合并为一个模块,也可以进一步拆分成多个子模块。以上公开的仅为本发明的几个具体实施例,但是,本发明并非局限于此,任何本领域的技术人员能思之的变化都应落入本发明的保护范围。
权利要求
1.一种软件测试方法,其特征在于,包括: 接收待测软件的测试请求; 获取所述待测软件的两个不同版本信息,并进行差异化比对,获取差异化数据,建立差异化数据的功能变化函数,并存储于数据库; 调取存储在标注数据库中的测试用例的功能应用函数; 根据所述建立的差异化数据的功能变化函数与所述调取存储在标注数据库中的测试用例的功能应用函数的匹配,建立所述差异化数据与所述测试用例的对应关系; 确定所述待测软件的测试用例; 根据确定的所述测试用例对所述待测软件进行测试。
2.如权利要求1所述的方法,其特征在于,所述的待测软件的版本信息包括所述软件的源代码文件和版本号信息。
3.如权利要求1所述的方法,其特征在于,所述进行差异化比对,获取差异化数据,建立差异化数据的功能变化函数,具体包括: 对所述待测软件 的两个不同版本的源代码文件进行差异化分析,获取源代码的差异化数据,建立软件源代码差异化数据的功能变化函数。
4.如权利要求1、2或3所述的方法,其特征在于,所述存储在标注数据库中的测试用例的功能应用函数通过动态函数跟踪程序实现标注的,包括: 启动函数跟踪程序,执行测试用例,通过函数跟踪程序的监视执行测试用例,收集所述测试用例的功能应用函数,并存储于标注数据库。
5.如权利要求1、2或3所述的方法,其特征在于,所述获取所述待测软件的两个不同版本信息,包括: 直接获取存储于版本管理数据库中的所述待测软件的两个不同版本信息;或,获取所述测试请求中携带的待测软件的版本信息,再获取存储于版本管理数据库中的所述待测软件的另一不同版本信息。
6.一种测试装置,其特征在于,包括: 获取模块,用于获取所述待测软件的源代码文件和版本号信息; 处理模块,用于根据对所述待测软件的源代码文件进行差异化比对,获取差异化数据,建立差异化数据的功能变化函数,并存储于数据库; 调取模块,用于调取存储在标注数据库中的测试用例的功能应用函数; 匹配模块,用于根据所述差异化数据的功能变化函数和所述测试用例的功能应用函数的匹配,建立差异化数据和测试用例的对应关系,确定所述待测软件的测试用例; 测试模块,用于根据匹配模块确定的测试用例对所述待测软件进行测试。
7.如权利要求6所述的测试装置,其特征在于,还包括接收模块,用于接收待测软件的测试请求。
8.如权利要求6所述的测试装置,其特征在于,所述的处理模块进一步包括: 比对单元,用于对所述待测软件的两个不同版本的源代码文件进行差异化分析; 建立存储单元,用于获取源代码的差异化数据,建立软件源代码差异化数据的功能变化函数,并存储于数据库中。
9.如权利要求6、7或8所述的测试装置,其特征在于,所述获取模块具体用于,获取存储于版本管理数据库中的所述待测软件的两个不同版本的信息;或,获取所述测试请求中携带的待测软件的版本信息,并获取存储于版本管理数据库中的所述待测软件的另一不同版本信息。
10.一种测试系统,其特征在于,包括:版本管理服务器、标注服务器、后台服务器、标注收集客户端、Web客户端;其中: 所述版本管理服务器,用于存储软件版本信息; 所述标注收集客户端,用于收集测试用例的功能应用函数,并存储于所述标注服务器中; 所述Web客户端,用于接收待测软件的测试请求,并将所述待测软件的测试请求发送给所述后台服务器; 所述后台服务器,用于获取所述待测软件的两个不同版本信息,并进行差异化比对,获取差异化数据,建立差异化数据的功能变化函数,并存储于标注服务器中;调取存储在标注服务器中的测试用例的功能应用函数;根据功能变化函数与功能应用函数的对应关系匹配差异化数据和测试用例的对应关系,确定所述待测软件的测试用例,并返回给所述Web客户端,由所述Web客户端根据所述测试用例对所述待测软件进行软件测试; 所述标注服务器,用于存储 测试用例的功能应用函数以及差异化数据的功能变化函数。
11.如权利要求10所述的测试系统,其特征在于,所述的标注收集客户端进一步用于启动函数跟踪程序,执行测试用例,通过函数跟踪程序的监视执行测试用例,收集所述测试用例的功能应用函数,并存储于标注数据库。
全文摘要
本发明公开了一种软件测试方法、装置及系统,该方法包括接收待测软件的测试请求;获取所述待测软件的两个不同版本信息,并进行差异化比对,获取差异化数据,建立差异化数据的功能变化函数,并存储于数据库;调取存储在标注数据库中的测试用例的功能应用函数;根据所述建立的差异化数据的功能变化函数与所述调取存储在标注数据库中的测试用例的功能应用函数的匹配,建立所述差异化数据与所述测试用例的对应关系;确定所述待测软件的测试用例;根据确定的所述测试用例对所述待测软件进行测试。在本发明中,提高了软件测试的准确度和可执行性。
文档编号G06F11/36GK103198010SQ20121000268
公开日2013年7月10日 申请日期2012年1月6日 优先权日2012年1月6日
发明者黄闻欣 申请人:腾讯科技(深圳)有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1