CN105279196A - 测试脚本的生成方法和装置 - Google Patents

测试脚本的生成方法和装置 Download PDF

Info

Publication number
CN105279196A
CN105279196A CN201410352489.9A CN201410352489A CN105279196A CN 105279196 A CN105279196 A CN 105279196A CN 201410352489 A CN201410352489 A CN 201410352489A CN 105279196 A CN105279196 A CN 105279196A
Authority
CN
China
Prior art keywords
tested
module
test
data message
probe
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
Application number
CN201410352489.9A
Other languages
English (en)
Other versions
CN105279196B (zh
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.)
Advanced New Technologies Co Ltd
Original Assignee
Alibaba Group Holding 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 Alibaba Group Holding Ltd filed Critical Alibaba Group Holding Ltd
Priority to CN201410352489.9A priority Critical patent/CN105279196B/zh
Publication of CN105279196A publication Critical patent/CN105279196A/zh
Application granted granted Critical
Publication of CN105279196B publication Critical patent/CN105279196B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Abstract

本发明公开了一种测试脚本的生成方法和装置。其中,测试脚本的生成方法包括:在对待测试系统执行测试用例前,添加探针至待测试系统中,其中,探针用于录制对待测试系统执行测试用例过程中的数据;通过探针获取对待测试系统执行测试用例过程中的数据信息,其中,数据信息用于标识对待测试系统执行测试用例的运行参数;以及利用数据信息生成用于对待测试系统进行测试的测试脚本。通过本发明,解决了现有技术中软件系统的测试效率比较低的问题,进而达到了提高测试效率、降低成本投入的效果。

Description

测试脚本的生成方法和装置
技术领域
本发明涉及测试领域,具体而言,涉及一种测试脚本的生成方法和装置。
背景技术
对于软件系统的测试,目前主要包括系统测试、单元测试和集成测试,以下具体说明:
图1是现有技术中对软件系统进行系统测试的示意图,如图1所示,在系统测试中,将被测试的软件系统看作一个黑盒,测试脚本和工具面对的只有用户可见的界面或者接口,测试脚本可以通过编码或录制生产。整个测试不关心软件系统的内部结构,单纯模拟用户操作软件的方式执行测试。对于此种测试方式,由于用户接口和界面是软件系统中最不稳定的模块,导致调试困难、维护成本高。并且一旦发现故障并不能通过测试本身定位到故障发生的具体模块。
图2是现有技术中对软件系统进行单元测试的示意图,如图2所示,在单元测试中,将被测试的软件系统看作一个白盒,测试脚本和工具面对的是软件系统中的单个模块,不能将各个模块联系起来测试。虽然测试粒度很细,但是每个测试都必须以编码的方式开发,并且即使完成了单元测试,也不能保证各个模块联系起来工作是正确的。
图3是现有技术中对软件系统进行集成测试的示意图,如图3所示,在集成测试中,将被测试的软件系统看作介于黑盒与白盒之间,测试脚本和工具面对的是软件系统中几个相互关联模块的集合,介于系统测试和单元测试之间。此种测试方式,同样需要以编码的方式开发测试脚本。即使完成了单元测试,也不能保证各个模块联系起来工作是正确的,并且研发成本很高。
通过以上描述可以看出,现有技术中的测试方法存在着如下缺点:
现有的自动化测试工具是建立在对应的测试方法上的,由于面向的测试对象不一致,导致三种测试方法产生的脚本,任何一种都无法直接应用于其它两种方法,需要重新开发。
现有的单元测试和集成测试脚本因为需要编码开发,生产成本较高。而系统测试虽然可以通过录制的方式来生产,但是由于用户界面往往非常复杂和不稳定,调试和维护成本依然很高。
利用上述测试所生产的自动化脚本,无论是编码还是录制,都需要根据具体情况不断调试,很难被重复利用,测试效率较低。
针对相关技术中软件系统的测试效率比较低的问题,目前尚未提出有效的解决方案。
发明内容
本发明的主要目的在于提供一种测试脚本的生成方法和装置,以解决现有技术中软件系统的测试效率比较低的问题。
根据本发明的一个方面,提供了一种测试脚本的生成方法。
根据本发明的测试脚本的生成方法包括:在对待测试系统执行测试用例前,添加探针至所述待测试系统中,其中,所述探针用于录制对所述待测试系统执行所述测试用例过程中的数据;通过所述探针获取对所述待测试系统执行所述测试用例过程中的数据信息,其中,所述数据信息用于标识对所述待测试系统执行所述测试用例的运行参数;以及利用所述数据信息生成用于对所述待测试系统进行测试的测试脚本。
进一步地,所述待测试系统包括第一待测试模块和调用所述第一待测试模块的第二待测试模块,所述探针包括添加在所述第一待测试模块和所述第二待测试模块之间的第一探针,其中,利用所述数据信息生成用于对所述待测试系统进行测试的测试脚本包括:获取所述数据信息中来自所述第一探针的第一目标数据信息;以及利用所述第一目标数据信息生成对所述第一待测试模块进行测试的驱动脚本。
进一步地,所述待测试系统包括第一待测试模块和被所述第一待测试模块调用的第三待测试模块,所述探针包括添加在所述第一待测试模块和所述第三待测试模块之间的第二探针,其中,利用所述数据信息生成用于对所述待测试系统进行测试的测试脚本包括:获取所述数据信息中来自所述第二探针的第二目标数据信息;以及利用所述第二目标数据信息生成对所述第一待测试模块进行测试的模拟脚本。
进一步地,所述数据信息包括控制流信息和数据流信息,其中,利用所述数据信息生成用于对所述待测试系统进行测试的测试脚本包括:利用所述控制流信息和所述数据流信息生成所述测试脚本。
进一步地,在利用所述数据信息生成用于对所述待测试系统进行测试的测试脚本之后,所述生成方法还包括:利用所述测试脚本对所述待测试系统进行测试。
根据本发明的另一方面,提供了一种测试脚本的生成装置。
根据本发明的测试脚本的生成装置包括:添加单元,用于在对待测试系统执行测试用例前,添加探针至所述待测试系统中,其中,所述探针用于录制对所述待测试系统执行所述测试用例过程中的数据;获取单元,用于通过所述探针获取对所述待测试系统执行所述测试用例过程中的数据信息,其中,所述数据信息用于标识对所述待测试系统执行所述测试用例的运行参数;以及生成单元,用于利用所述数据信息生成用于对所述待测试系统进行测试的测试脚本。
进一步地,所述待测试系统包括第一待测试模块和调用所述第一待测试模块的第二待测试模块,所述探针包括添加在所述第一待测试模块和所述第二待测试模块之间的第一探针,其中,所述生成单元包括:第一获取模块,用于获取所述数据信息中来自所述第一探针的第一目标数据信息;以及第一生成模块,用于利用所述第一目标数据信息生成对所述第一待测试模块进行测试的驱动脚本。
进一步地,所述待测试系统包括第一待测试模块和被所述第一待测试模块调用的第三待测试模块,所述探针包括添加在所述第一待测试模块和所述第三待测试模块之间的第二探针,其中,所述生成单元包括:第二获取模块,用于获取所述数据信息中来自所述第二探针的第二目标数据信息;以及第二生成模块,用于利用所述第二目标数据信息生成对所述第一待测试模块进行测试的模拟脚本。
进一步地,所述数据信息包括控制流信息和数据流信息,其中,所述生成单元包括:第三生成模块,用于利用所述控制流信息和所述数据流信息生成所述测试脚本。
进一步地,所述生成装置还包括:测试单元,用于利用所述测试脚本对所述待测试系统进行测试。
在本发明中,采用在对待测试系统执行测试用例前,添加探针至所述待测试系统中,其中,所述探针用于录制对所述待测试系统执行所述测试用例过程中的数据;通过所述探针获取对所述待测试系统执行所述测试用例过程中的数据信息,其中,所述数据信息用于标识对所述待测试系统执行所述测试用例的运行参数;以及利用所述数据信息生成用于对所述待测试系统进行测试的测试脚本。通过在待测试系统中添加探针,以获取到对待测试系统执行测试用例过程中的数据信息,实现了既可以获取到进行单元测试的数据,也可以获取到进行集成测试的数据,还可以获取到进行系统测试的数据,然后基于数据信息生成测试脚本,实现了既可以生成进行单元测试的测试脚本,也可以生成进行集成测试的测试脚本,还可以生成进行系统测试的测试脚本,此种通过探针的录制方式自动化生成测试脚本的方式,不仅实现了同时生成系统测试、集成测试和单元测试的测试脚本,无需进行单元测试和集成测试的编码开发,降低了生产成本的同时提高后续测试效率,而且生成的测试脚本复制了对待测试系统执行测试用例的数据,能够重复对待测试系统进行测试,进一步提高了测试效率,解决了现有技术中软件系统的测试效率比较低的问题,进而达到了提高测试效率、降低成本投入的效果。
附图说明
构成本申请的一部分的附图用来提供对本发明的进一步理解,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1是根据相关技术的对软件系统进行系统测试的示意图;
图2是根据相关技术的对软件系统进行单元测试的示意图;
图3是根据相关技术的对软件系统进行集成测试的示意图;
图4是根据本发明实施例的测试脚本的生成方法的流程图;
图5是应用本发明实施例的测试脚本的生成方法,添加探针后的待测试系统的示意图;
图6a是根据本发明实施例的测试脚本的生成方法,获取到的模块的调用关系上的数据信息的示意图;
图6b是根据本发明实施例的测试脚本的生成方法,获取到的子系统的调用关系上的数据信息的示意图;
图6c是根据本发明实施例的测试脚本的生成方法,获取到的待测试系统的调用关系上的数据信息的示意图;
图7是根据本发明实施例的测试脚本的生成方法的原理图;以及
图8是根据本发明实施例的测试脚本的生成装置的示意图。
具体实施方式
为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本发明。
实施例1
根据本发明实施例,可以提供了一种可以通过本申请装置实施例实施或执行的方法实施例,需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
根据本发明实施例,提供了一种测试脚本的生成方法,以下对本发明实施例所提供的测试脚本的生成方法做具体介绍:
图4是根据本发明实施例的测试脚本的生成方法的流程图,如图4所示,该测试脚本的生成方法主要包括如下的步骤S402至步骤S406:
S402:在对待测试系统执行测试用例前,添加探针至待测试系统中,其中,探针用于录制对待测试系统执行测试用例过程中的数据,即,在对待测试系统执行测试用例前,在待测试系统的各个调用关系上插桩,当对待测试系统执行测试用例后,通过探针的运行对执行测试用例过程中,待测试系统中的数据进行录制。其中,可以通过测试分析人员对待测试系统进行分析,确定出待测试系统中相对独立的模块,然后在这些相对独立的模块之间添加探针,图5是添加探针后的待测试系统的示意图,如图5所示,假设应用本发明实施例的测试脚本的生成方法的待测试系统中,模块A、模块B、模块C、模块D、模块E、模块F和模块G是待测试系统中相对独立的模块,则分别在这些相对独立的模块的各个调用关系上添加探针T,并在与用户界面和接口的调用关系上添加探针T。
其中,在待测试系统中插桩添加探针的具体实现方式可以通过现有技术中任一种添加方式,包括但不限于使用开源框架spring的拦截器功能,以不侵入业务逻辑的方式插桩;在原型中,也可以直接远程操作服务器文件的方式部署桩。所录制的数据可以通过methodinfo表示桩的位置信息,包括类名、方法名和参数列表,通过testdata表示录制的数据的类型,包括数据的唯一标识、数据类型对应的位置、参数信息、返回信息、异常信息和创建时间等。
S404:通过探针获取对待测试系统执行测试用例过程中的数据信息,其中,数据信息用于标识对待测试系统执行测试用例过程中的运行参数,即,在对待测试系统执行测试用例过程中,通过探针的运行对执行测试用例过程中,待测试系统中的数据进行录制,然后读取探针多录制的数据,获取到对待测试系统执行测试用例的数据信息,既可以得到独立模块的调用关系上的数据信息,如图6a所示,为获取到的模块C的调用关系上的数据信息,还可以得到几个模块所组成的子系统的调用关系上的数据信息,如图6b所示,为获取到的模块A、模块D和模块G所组成的子系统的调用关系上的数据信息,还可以得到待测试系统的用户界面或借口上的数据信息,如图6c所示,为获取到的待测试系统的用户界面或借口上的数据信息。
S406:利用数据信息生成用于对待测试系统进行测试的测试脚本,其中,如果获取到的数据信息为独立模块的调用关系上的数据信息,则可以利用该数据信息生成对待测试系统中的独立模块进行单元测试的测试脚本;如果获取到的数据信息为几个模块所组成的子系统的调用关系上的数据信息,则可以利用该数据信息生成对待测试系统中的子系统进行集成测试的测试脚本;如果获取到的数据信息为待测试系统的用户界面或借口上的数据信息,则可以利用该数据信息生成对待测试系统进行系统测试的测试脚本。
本发明实施例所提供的测试脚本的生成方法,通过在待测试系统中添加探针,以获取到对待测试系统执行测试用例过程中的数据信息,实现了既可以获取到进行单元测试的数据,也可以获取到进行集成测试的数据,还可以获取到进行系统测试的数据,然后基于数据信息生成测试脚本,实现了既可以生成进行单元测试的测试脚本,也可以生成进行集成测试的测试脚本,还可以生成进行系统测试的测试脚本,此种通过探针的录制方式自动化生成测试脚本的方式,不仅实现了同时生成系统测试、集成测试和单元测试的测试脚本,无需进行单元测试和集成测试的编码开发,降低了生产成本的同时提高后续测试效率,而且生成的测试脚本复制了对待测试系统执行测试用例的数据,能够重复对待测试系统进行测试,进一步提高了测试效率,解决了现有技术中软件系统的测试效率比较低的问题,进而达到了提高测试效率、降低成本投入的效果。
具体地,待测试系统中具有上层被调用的模块,也具有下层调用其它模块的模块,对于不同的模块,生成的测试脚本的种类不同,以下结合图7中示出的测试脚本的生成方法的原理图具体说明:
如图7所示,假设待测试系统中某个被测试的模块为第一待测试模块,这个第一待测试模块被上层模块(第二待测试模块)调用,相应地,探针包括添加在第一待测试模块和第二待测试模块之间的第一探针TA,其中,利用数据信息生成用于对待测试系统进行测试的测试脚本包括:获取数据信息中来自第一探针TA的第一目标数据信息,即,从第一探针TA上获取数据信息,并将获取到的数据信息作为第一目标数据信息存入脚本数据库,然后,利用第一目标数据信息生成对第一待测试模块进行测试的驱动脚本,即,对于对其它模块调用的模块,利用获取到的数据信息生成对这个模块进行驱动的测试脚本。后续还可以通过测试用例回放工具执行驱动脚本对第一待测试模块进行测试,并收集第一待测试模块返回的测试结果,将测试结果反馈给测试员。
假设测试系统中被第一待测试模块调用的下层模块为第三待测试模块,相应地,探针包括添加在第一待测试模块和第三待测试模块之间的第二探针TB,其中,利用数据信息生成用于对待测试系统进行测试的测试脚本包括:获取数据信息中来自第二探针TB的第二目标数据信息,即,从第二探针TB上获取数据信息,并将获取到的数据信息作为第二目标数据信息存入脚本数据库,然后,利用第二目标数据信息生成对第一待测试模块进行测试的模拟脚本,即,对于对调用其它模块的模块,利用获取到的数据信息生成对这个模块进行模拟的测试脚本。后续还可以通过mock工具执行模拟脚本对第一待测试模块进行测试,并收集第一待测试模块返回的测试结果,将测试结果反馈给测试员。
其中,关于测试用例回放工具的实现,可以使用开源框架junit管理用例的执行及报告的输出,使用集成测试的方式驱动被测对象,驱动数据直接从TestData获取。驱动方式要根据软件技术类型的不同进行选择。关于Mock工具的实现,可以使用开源框架spring的拦截器和对象注入功能,数据直接从TestData获取。关于脚本数据库的实现,可以使用开源面向对象数据库DB40,使用远程访问方式,将数据文件与客户端分离。
进一步地,通过探针获取到的数据信息包括控制流信息和数据流信息,其中,控制流信息表示待测试系统中各个模块之间的调用和被调用关系,数据里信息表示各个模块之间所传输的内容,相应地,利用数据信息生成用于对待测试系统进行测试的测试脚本包括:利用控制流信息和数据流信息生成测试脚本。
更进一步地,在利用数据信息生成用于对待测试系统进行测试的测试脚本之后,本发明实施例的测试脚本的生成方法还包括:利用测试脚本对待测试系统进行测试。具体地,可以根据实际需要,利用测试脚本对待测试系统进行单元测试、集成测试和系统测试中的至少一种测试,还可以进一步根据测试结果生成测试报告,以供测试人员根据测试报告分析待测试系统中故障发生的模块及影响的范围。
需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为依据本发明,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本发明所必须的。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到根据上述实施例的方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
实施例2
根据本发明实施例,还提供了一种用于实施上述测试脚本的生成方法的测试脚本的生成装置,该测试脚本的生成装置主要用于执行本发明实施例上述内容所提供的测试脚本的生成方法,以下对本发明实施例所提供的测试脚本的生成装置做具体介绍:
图8是根据本发明实施例的测试脚本的生成装置的示意图,如图8所示,该测试脚本的生成装置主要包括添加单元10、获取单元20和生成单元30,其中:
添加单元10用于在待测试系统运行前添加探针至待测试系统中,其中,探针用于录制待测试系统运行过程中的数据,即,在对待测试系统执行测试用例前,在待测试系统的各个调用关系上插桩,当对待测试系统执行测试用例后,通过探针的运行对执行测试用例过程中,待测试系统中的数据进行录制。其中,可以通过测试分析人员对待测试系统进行分析,确定出待测试系统中相对独立的模块,然后在这些相对独立的模块之间添加探针。
获取单元20用于通过探针获取待测试系统运行过程中的数据信息,其中,数据信息用于标识待测试系统的运行参数,即,在对待测试系统执行测试用例过程中,通过探针的运行对执行测试用例过程中,待测试系统中的数据进行录制,然后读取探针多录制的数据,获取到对待测试系统执行测试用例的数据信息,既可以得到独立模块的调用关系上的数据信息,还可以得到几个模块所组成的子系统的调用关系上的数据信息,还可以得到待测试系统的用户界面或借口上的数据信息。
生成单元30用于利用数据信息生成用于对待测试系统进行测试的测试脚本,其中,如果获取到的数据信息为独立模块的调用关系上的数据信息,则可以利用该数据信息生成对待测试系统中的独立模块进行单元测试的测试脚本;如果获取到的数据信息为几个模块所组成的子系统的调用关系上的数据信息,则可以利用该数据信息生成对待测试系统中的子系统进行集成测试的测试脚本;如果获取到的数据信息为待测试系统的用户界面或借口上的数据信息,则可以利用该数据信息生成对待测试系统进行系统测试的测试脚本。
本发明实施例所提供的测试脚本的生成装置,通过在待测试系统中添加探针,以获取到对待测试系统执行测试用例过程中的数据信息,实现了既可以获取到进行单元测试的数据,也可以获取到进行集成测试的数据,还可以获取到进行系统测试的数据,然后基于数据信息生成测试脚本,实现了既可以生成进行单元测试的测试脚本,也可以生成进行集成测试的测试脚本,还可以生成进行系统测试的测试脚本,此种通过探针的录制方式自动化生成测试脚本的方式,不仅实现了同时生成系统测试、集成测试和单元测试的测试脚本,无需进行单元测试和集成测试的编码开发,降低了生产成本的同时提高后续测试效率,而且生成的测试脚本复制了对待测试系统执行测试用例的数据,能够重复对待测试系统进行测试,进一步提高了测试效率,解决了现有技术中软件系统的测试效率比较低的问题,进而达到了提高测试效率、降低成本投入的效果。
具体地,待测试系统中具有上层被调用的模块,也具有下层调用其它模块的模块,对于不同的模块,生成的测试脚本的种类不同,以下具体说明:
假设待测试系统中某个被测试的模块为第一待测试模块,这个第一待测试模块被上层模块(第二待测试模块)调用,相应地,探针包括添加在第一待测试模块和第二待测试模块之间的第一探针,其中,生成单元30包括第一获取模块和第一生成模块,第一获取模块用于获取数据信息中来自第一探针的第一目标数据信息,即,从第一探针上获取数据信息,并将获取到的数据信息作为第一目标数据信息存入脚本数据库。第一生成模块用于利用第一目标数据信息生成对第一待测试模块进行测试的驱动脚本,即,对于对其它模块调用的模块,利用获取到的数据信息生成对这个模块进行驱动的测试脚本。后续还可以通过测试用例回放工具执行驱动脚本对第一待测试模块进行测试,并收集第一待测试模块返回的测试结果,将测试结果反馈给测试员。
假设测试系统中被第一待测试模块调用的下层模块为第三待测试模块,相应地,探针包括添加在第一待测试模块和第三待测试模块之间的第二探针,其中,生成单元30包括第二获取模块和第二生成模块,其中,第二获取模块用于获取数据信息中来自第二探针的第二目标数据信息,即,从第二探针上获取数据信息,并将获取到的数据信息作为第二目标数据信息存入脚本数据库。第二生成模块用于利用第二目标数据信息生成对第一待测试模块进行测试的模拟脚本,即,对于对调用其它模块的模块,利用获取到的数据信息生成对这个模块进行模拟的测试脚本。
进一步地,通过探针获取到的数据信息包括控制流信息和数据流信息,其中,控制流信息表示待测试系统中各个模块之间的调用和被调用关系,数据里信息表示各个模块之间所传输的内容,相应地,生成单元30包括第三生成模块,该第三生成模块用于利用控制流信息和数据流信息生成测试脚本。
更进一步地,本发明实施例所提供的测试脚本的生成装置还包括测试单元,在生成单元30利用数据信息生成用于对待测试系统进行测试的测试脚本之后,测试单元用于利用测试脚本对待测试系统进行测试。具体地,可以根据实际需要,利用测试脚本对待测试系统进行单元测试、集成测试和系统测试中的至少一种测试,还可以进一步根据测试结果生成测试报告,以供测试人员根据测试报告分析待测试系统中故障发生的模块及影响的范围。
从以上的描述中,可以看出,本发明不仅实现了同时生成系统测试、集成测试和单元测试的测试脚本,无需进行单元测试和集成测试的编码开发,降低了生产成本的同时提高后续测试效率,而且生成的测试脚本复制了对待测试系统执行测试用例的数据,能够重复对待测试系统进行测试,进一步提高了测试效率,解决了现有技术中软件系统的测试效率比较低的问题,进而达到了提高测试效率、降低成本投入的效果。
显然,本领域的技术人员应该明白,上述的本发明的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本发明不限制于任何特定的硬件和软件结合。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (10)

1.一种测试脚本的生成方法,其特征在于,包括:
在对待测试系统执行测试用例前,添加探针至所述待测试系统中,其中,所述探针用于录制对所述待测试系统执行所述测试用例过程中的数据;
通过所述探针获取对所述待测试系统执行所述测试用例过程中的数据信息,其中,所述数据信息用于标识对所述待测试系统执行所述测试用例的运行参数;以及
利用所述数据信息生成用于对所述待测试系统进行测试的测试脚本。
2.根据权利要求1所述的生成方法,其特征在于,所述待测试系统包括第一待测试模块和调用所述第一待测试模块的第二待测试模块,所述探针包括添加在所述第一待测试模块和所述第二待测试模块之间的第一探针,其中,利用所述数据信息生成用于对所述待测试系统进行测试的测试脚本包括:
获取所述数据信息中来自所述第一探针的第一目标数据信息;以及
利用所述第一目标数据信息生成对所述第一待测试模块进行测试的驱动脚本。
3.根据权利要求1所述的生成方法,其特征在于,所述待测试系统包括第一待测试模块和被所述第一待测试模块调用的第三待测试模块,所述探针包括添加在所述第一待测试模块和所述第三待测试模块之间的第二探针,其中,利用所述数据信息生成用于对所述待测试系统进行测试的测试脚本包括:
获取所述数据信息中来自所述第二探针的第二目标数据信息;以及
利用所述第二目标数据信息生成对所述第一待测试模块进行测试的模拟脚本。
4.根据权利要求1至3中任一项所述的生成方法,其特征在于,所述数据信息包括控制流信息和数据流信息,其中,利用所述数据信息生成用于对所述待测试系统进行测试的测试脚本包括:
利用所述控制流信息和所述数据流信息生成所述测试脚本。
5.根据权利要求1至3中任一项所述的生成方法,其特征在于,在利用所述数据信息生成用于对所述待测试系统进行测试的测试脚本之后,所述生成方法还包括:
利用所述测试脚本对所述待测试系统进行测试。
6.一种测试脚本的生成装置,其特征在于,包括:
添加单元,用于在对待测试系统执行测试用例前,添加探针至所述待测试系统中,其中,所述探针用于录制对所述待测试系统执行所述测试用例过程中的数据;
获取单元,用于通过所述探针获取对所述待测试系统执行所述测试用例过程中的数据信息,其中,所述数据信息用于标识对所述待测试系统执行所述测试用例的运行参数;以及
生成单元,用于利用所述数据信息生成用于对所述待测试系统进行测试的测试脚本。
7.根据权利要求6所述的生成装置,其特征在于,所述待测试系统包括第一待测试模块和调用所述第一待测试模块的第二待测试模块,所述探针包括添加在所述第一待测试模块和所述第二待测试模块之间的第一探针,其中,所述生成单元包括:
第一获取模块,用于获取所述数据信息中来自所述第一探针的第一目标数据信息;以及
第一生成模块,用于利用所述第一目标数据信息生成对所述第一待测试模块进行测试的驱动脚本。
8.根据权利要求6所述的生成装置,其特征在于,所述待测试系统包括第一待测试模块和被所述第一待测试模块调用的第三待测试模块,所述探针包括添加在所述第一待测试模块和所述第三待测试模块之间的第二探针,其中,所述生成单元包括:
第二获取模块,用于获取所述数据信息中来自所述第二探针的第二目标数据信息;以及
第二生成模块,用于利用所述第二目标数据信息生成对所述第一待测试模块进行测试的模拟脚本。
9.根据权利要求6至8中任一项所述的生成装置,其特征在于,所述数据信息包括控制流信息和数据流信息,其中,所述生成单元包括:
第三生成模块,用于利用所述控制流信息和所述数据流信息生成所述测试脚本。
10.根据权利要求6至8中任一项所述的生成装置,其特征在于,所述生成装置还包括:
测试单元,用于利用所述测试脚本对所述待测试系统进行测试。
CN201410352489.9A 2014-07-23 2014-07-23 测试脚本的生成方法和装置 Active CN105279196B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201410352489.9A CN105279196B (zh) 2014-07-23 2014-07-23 测试脚本的生成方法和装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201410352489.9A CN105279196B (zh) 2014-07-23 2014-07-23 测试脚本的生成方法和装置

Publications (2)

Publication Number Publication Date
CN105279196A true CN105279196A (zh) 2016-01-27
CN105279196B CN105279196B (zh) 2019-03-19

Family

ID=55148218

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201410352489.9A Active CN105279196B (zh) 2014-07-23 2014-07-23 测试脚本的生成方法和装置

Country Status (1)

Country Link
CN (1) CN105279196B (zh)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107491386A (zh) * 2016-06-13 2017-12-19 富士通株式会社 录制测试脚本的方法和装置
CN110858172A (zh) * 2018-08-23 2020-03-03 北京京东尚科信息技术有限公司 一种自动化测试代码生成方法和装置
CN111221721A (zh) * 2018-11-27 2020-06-02 中国移动通信集团上海有限公司 一种单元测试案例自动化录制和执行方法及装置
CN111506505A (zh) * 2020-04-13 2020-08-07 北京奇艺世纪科技有限公司 一种测试用例获取方法及装置
CN111782526A (zh) * 2020-06-30 2020-10-16 北京同邦卓益科技有限公司 一种接口测试方法、装置、电子设备及存储介质
CN112269735A (zh) * 2020-10-20 2021-01-26 深圳市前海手绘科技文化有限公司 一种测试脚本自动生成方法
CN114860583A (zh) * 2022-04-18 2022-08-05 珠海视熙科技有限公司 基于数据驱动的数码变焦测试方法、装置及设备

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1592232A (zh) * 2003-09-07 2005-03-09 中兴通讯股份有限公司 一种电信增值业务综合测试系统和测试方法
US20050229165A1 (en) * 2004-04-07 2005-10-13 Microsoft Corporation Method and system for probe optimization while instrumenting a program

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1592232A (zh) * 2003-09-07 2005-03-09 中兴通讯股份有限公司 一种电信增值业务综合测试系统和测试方法
US20050229165A1 (en) * 2004-04-07 2005-10-13 Microsoft Corporation Method and system for probe optimization while instrumenting a program

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
付博强: ""软件自动化测试中注入技术的研究与实现"", 《中国优秀硕士学位论文全文数据库 信息科技辑》 *
奚红宇等: ""Ada软件测试用例生成工具"", 《软件学报》 *
李志伟: ""程序插装在软件测试中的应用研究"", 《测控技术》 *

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107491386A (zh) * 2016-06-13 2017-12-19 富士通株式会社 录制测试脚本的方法和装置
CN110858172A (zh) * 2018-08-23 2020-03-03 北京京东尚科信息技术有限公司 一种自动化测试代码生成方法和装置
CN111221721A (zh) * 2018-11-27 2020-06-02 中国移动通信集团上海有限公司 一种单元测试案例自动化录制和执行方法及装置
CN111221721B (zh) * 2018-11-27 2023-09-05 中国移动通信集团上海有限公司 一种单元测试案例自动化录制和执行方法及装置
CN111506505A (zh) * 2020-04-13 2020-08-07 北京奇艺世纪科技有限公司 一种测试用例获取方法及装置
CN111782526A (zh) * 2020-06-30 2020-10-16 北京同邦卓益科技有限公司 一种接口测试方法、装置、电子设备及存储介质
CN112269735A (zh) * 2020-10-20 2021-01-26 深圳市前海手绘科技文化有限公司 一种测试脚本自动生成方法
CN114860583A (zh) * 2022-04-18 2022-08-05 珠海视熙科技有限公司 基于数据驱动的数码变焦测试方法、装置及设备

Also Published As

Publication number Publication date
CN105279196B (zh) 2019-03-19

Similar Documents

Publication Publication Date Title
CN105279196A (zh) 测试脚本的生成方法和装置
CN102141962B (zh) 一种安全性分布式测试框架系统及其测试方法
Baker et al. Model-driven engineering in a large industrial context—Motorola case study
CN102495802B (zh) 测试软件系统的方法和装置以及计算机系统
CN106802862A (zh) 列车运行控制系统安全关键软件自动测试平台
CN105760296B (zh) 自动化测试控制方法、装置及终端
CN105373478B (zh) 自动化测试方法和系统
CN112000557B (zh) 轨道交通信号系统自动化测试装置
Graciano Neto et al. Stimuli-SoS: a model-based approach to derive stimuli generators for simulations of systems-of-systems software architectures
CN102707712B (zh) 电子装备故障诊断方法和系统
CN106778264A (zh) 一种移动客户端的应用程序分析方法及分析系统
CN109086197A (zh) 城市轨道交通cbtc系统的验收测试方法及系统
CN109298317A (zh) 一种中低频电路的智能化测试装置及其测试方法
Lazarova-Molnar et al. Deriving simulation models from data: steps of simulation studies revisited
CN106789406A (zh) 一种iec61850通信协议标准一致性测试系统
CN105630667A (zh) 一种测试方法和终端设备
CN114003451B (zh) 一种接口测试方法、装置、系统及介质
CN105760300B (zh) 一种stk/utk业务的自动化测试方法及测试系统
CN108446230B (zh) 一种面向WebDriver的Java测试代码质量评判方法
Yu Design and application on agile software exploratory testing model
CN108920846A (zh) 一种高铁列控系统复杂运营场景的风险耦合分析方法
CN112685291A (zh) 系统联合测试方法及相关装置
Riaz et al. A hybrid deep learning-based (HYDRA) framework for multifault diagnosis using sparse MDT reports
Minani et al. A multi-method study of internet of things systems testing in industry
KR102643598B1 (ko) 패턴 기반 SoS 내 실패 유발 상호작용 분석 방법 및 장치

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20191209

Address after: P.O. Box 31119, grand exhibition hall, hibiscus street, 802 West Bay Road, Grand Cayman, Cayman Islands

Patentee after: Innovative advanced technology Co., Ltd

Address before: A four-storey 847 mailbox in Grand Cayman Capital Building, British Cayman Islands

Patentee before: Alibaba Group Holding Co., Ltd.