CN105260316A - 一种软件系统动态测试的方法、装置及系统 - Google Patents

一种软件系统动态测试的方法、装置及系统 Download PDF

Info

Publication number
CN105260316A
CN105260316A CN201510788631.9A CN201510788631A CN105260316A CN 105260316 A CN105260316 A CN 105260316A CN 201510788631 A CN201510788631 A CN 201510788631A CN 105260316 A CN105260316 A CN 105260316A
Authority
CN
China
Prior art keywords
software systems
source code
tested
server end
client
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
CN201510788631.9A
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.)
Inspur Software Co Ltd
Original Assignee
Inspur Software 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 Inspur Software Co Ltd filed Critical Inspur Software Co Ltd
Priority to CN201510788631.9A priority Critical patent/CN105260316A/zh
Publication of CN105260316A publication Critical patent/CN105260316A/zh
Pending legal-status Critical Current

Links

Landscapes

  • Debugging And Monitoring (AREA)

Abstract

本发明提供了一种软件系统动态测试的方法、装置及系统,该方法包括:预先在服务器端的待测试软件系统源代码的至少一个目标变量值处设置断点,在系统运行至断点所对应的目标变量值处时,服务器端暂停运行所述待测试软件系统源代码,并向客户端发送暂停运行所述待测试软件系统源代码的通知消息;客户端接收并处理由服务器端发送的所述通知消息,并将生成的与所述通知消息相对应的控制指令反馈至服务器端;服务器端在接收到由客户端反馈的所述控制指令后,根据所述控制指令执行相应操作,从而实现所述待测试软件系统源代码的动态测试。通过本发明提供的软件系统动态测试方法,能够在系统运行期进行软件系统的动态测试。

Description

一种软件系统动态测试的方法、装置及系统
技术领域
本发明涉及软件测试技术领域,特别涉及一种软件系统动态测试的方法、装置及系统。
背景技术
随着现代信息技术的不断深入和发展,软件系统日益庞大及复杂。为了不断提高软件的功能和实施效果,需要对软件系统进行反复、大量的测试。
对于偏静态类语言的程序,现在的软件系统测试手段可以在软件系统的运行过程中,根据查看系统日志来分析其是否存在问题,针对问题制定优化方案,再运行程序,以对软件系统进行反复调试。由于现在的软件系统越来越庞大,其应用系统的启动也变得愈加耗时,尤其在集群软件环境下,系统的频繁重启更给软件系统的测试带来巨大困难。
发明内容
有鉴于此,本发明提供了一种软件系统动态测试的方法、装置及系统,能够在系统运行期进行软件系统的动态测试。
为了达到上述目的,本发明是通过如下技术方案实现的:
一方面,本发明提供了一种软件系统动态测试的方法,该方法应用于服务器端,包括:
预先在待测试软件系统源代码的至少一个目标变量值处设置断点;
运行所述待测试软件系统源代码,在运行至断点所对应的目标变量值处时,暂停运行所述待测试软件系统源代码;
向客户端发送暂停运行所述待测试软件系统源代码的通知消息,以使所述客户端根据所述通知消息反馈控制指令;
根据所述客户端反馈的控制指令,执行相应操作。
进一步地,该方法还包括:
引入测试辅助工具;
所述预先在待测试软件系统源代码的至少一个目标变量值处设置断点,包括:在待测试软件系统源代码的至少一个目标变量值处,利用所述测试辅助工具对所述目标变量值进行修改。
进一步地,所述利用所述测试辅助工具对所述目标变量值进行修改,包括:
利用rjf-server.jar,对变量值处修改为
mapData=(Map)RJF.inspect(mapData)。
另一方面,本发明提供了一种软件系统动态测试的方法,该方法应用于客户端,包括:
接收由服务器端发送的暂停运行所述待测试软件系统源代码的通知消息;
根据所述由服务器端发送的暂停运行所述待测试软件系统源代码的通知消息,生成与其相对应的控制指令;
向服务器端反馈所述控制指令,以使所述服务器端根据所述控制指令执行相应操作。
进一步地,所述控制指令,包括:
中断执行操作指令、修改目标变量值操作指令、继续执行操作指令和调用服务器端的目标方法操作指令中的任意一种。
另一方面,本发明提供了一种服务器端,包括:
设置单元,用于在待测试软件系统源代码的至少一个目标变量值处设置断点;
处理单元,用于运行所述待测试软件系统源代码,在运行至断点所对应的目标变量值处时,暂停运行所述待测试软件系统源代码;
发送单元,用于向客户端发送暂停运行所述待测试软件系统源代码的通知消息,以使所述客户端根据所述通知消息反馈控制指令;
执行单元,用于根据所述客户端反馈的控制指令,执行相应操作。
进一步地,该装置还包括:
引入单元,用于引入测试辅助工具;
所述设置单元,用于在待测试软件系统源代码的至少一个目标变量值处,利用所述测试辅助工具对所述目标变量值进行修改。
进一步地,所述利用所述测试辅助工具对所述目标变量值进行修改,包括:
所述测试辅助工具包括rjf-server.jar;
所述设置单元,用于利用rjf-server.jar,对所述目标变量值处修改为
mapData=(Map)RJF.inspect(mapData)。
另一方面,本发明提供了一种客户端,包括:
接收单元,用于接收由服务器端发送的暂停运行所述待测试软件系统源代码的通知消息;
生成单元,用于根据所述由服务器端发送的暂停运行所述待测试软件系统源代码的通知消息,生成与其相对应的控制指令;
发送单元,用于向服务器端反馈所述控制指令,以使所述服务器端根据所述控制指令执行相应操作。
另一方面,本发明提供了一种软件系统动态测试的系统,该系统包括:上述任一所述的服务器端和上述客户端。
本发明提供了一种软件系统动态测试的方法、装置及系统,预先在服务器端的待测试软件系统源代码的至少一个目标变量值处设置断点,在系统运行至断点所对应的目标变量值处时,服务器端暂停运行所述待测试软件系统源代码,并向客户端发送暂停运行所述待测试软件系统源代码的通知消息;客户端接收并处理由服务器端发送的所述通知消息,并将生成的与所述通知消息相对应的控制指令反馈至服务器端;服务器端在接收到由客户端反馈的所述控制指令后,根据所述控制指令执行相应操作,从而实现所述待测试软件系统源代码的动态测试,因此,本发明能够实现在系统运行期对软件系统进行动态测试。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明一实施例提供的一种软件系统动态测试的方法的流程图;
图2是本发明一实施例提供的另一种软件系统动态测试的方法的流程图;
图3是本发明一实施例提供的另一种软件系统动态测试的方法的流程图;
图4是本发明一实施例提供的一种服务器端的示意图;
图5是本发明一实施例提供的另一种服务器端的示意图;
图6是本发明一实施例提供的一种客户端的示意图;
图7是本发明一实施例提供的一种软件系统动态测试的系统的示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例,基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。
如图1所示,本发明实施例提供了一种软件系统动态测试的方法,该方法应用于服务器端,可以包括以下步骤:
步骤101:预先在待测试软件系统源代码的至少一个目标变量值处设置断点;
步骤102:运行所述待测试软件系统源代码,在运行至断点所对应的目标变量值处时,暂停运行所述待测试软件系统源代码;
步骤103:向客户端发送暂停运行所述待测试软件系统源代码的通知消息,以使所述客户端根据所述通知消息反馈控制指令;
步骤104:根据所述客户端反馈的控制指令,执行相应操作。
本发明实施例提供了一种软件系统动态测试的方法,应用于服务器端,预先在服务器端的待测试软件系统源代码的至少一个目标变量值处设置断点,在系统运行至断点所对应的目标变量值处时,暂停运行所述待测试软件系统源代码,并向客户端发送暂停运行所述待测试软件系统源代码的通知消息;在接收到由客户端反馈的所述控制指令后,根据所述控制指令,执行相应操作,从而实现所述待测试软件系统源代码的动态测试。
在一种可能的实现方式中,为了在待测试软件系统的运行过程中,能够对系统源代码中的期望有所调整或改变的目标变量值处进行其他操作方式处理,需要预先在待测试软件系统源代码的目标变量值处设置断点,所以,包括:
引入测试辅助工具;
所述预先在待测试软件系统源代码的至少一个目标变量值处设置断点,包括:在待测试软件系统源代码的至少一个目标变量值处,利用所述测试辅助工具对所述目标变量值进行修改。
在一种可能的实现方式中,为了在待测试软件系统源代码的目标变量值处设置断点,所以,
所述利用所述测试辅助工具对所述目标变量值进行修改,包括:
利用rjf-server.jar,对变量值处修改为
mapData=(Map)RJF.inspect(mapData)。
如图2所示,本发明实施例提供了另一种软件系统动态测试的方法,该方法应用于客户端,可以包括以下步骤:
步骤201:接收由服务器端发送的暂停运行所述待测试软件系统源代码的通知消息;
步骤202:根据所述由服务器端发送的暂停运行所述待测试软件系统源代码的通知消息,生成与其相对应的控制指令;
步骤203:向服务器端反馈所述控制指令,以使所述服务器端根据所述控制指令执行相应操作。
本发明实施例提供了另一种软件系统动态测试的方法,应用于客户端,接收由服务器端发送的暂停运行服务器端待测试软件系统源代码的通知消息;处理所述通知消息,并生成与所述通知消息相对应的控制指令;将所述控制指令反馈至服务器端,以使服务器端根据客户端反馈的控制指令执行相应操作,从而实现在系统运行期对软件系统进行动态测试。
在一种可能的实现方式中,所述控制指令,包括:中断执行操作指令、修改目标变量值操作指令、继续执行操作指令和调用服务器端的目标方法操作指令中的任意一种。
为使本发明的目的、技术方案和优点更加清楚,下面结合附图及具体实施例对本发明作进一步地详细描述。
如图3所示,本发明实施例提供了另一种软件系统动态测试的方法,该方法可以包括以下步骤:
步骤301:在服务器端引入测试辅助工具。
在本实施例中,可以在服务器端的待测试软件系统源代码中,引入测试辅助工具,例如,rjf-server.jar、SilkPerformer、SourceInsight。举例来说,在服务器端的待测试软件系统源代码中引入测试辅助工具rjf-server.jar。
步骤302:在服务器端的待测试软件系统源代码X的至少一个目标变量值处设置断点。
具体地,在服务器端的待测试软件系统源代码中的任一希望被远程查看或测试的目标变量值处,利用引入的测试辅助工具对所述目标变量值进行修改,从而给待测试软件系统源代码设置断点。
例如,可以利用测试辅助工具rjf-server.jar,对Map类型的变量值mapData处修改为mapData=(Map)RJF.inspect(mapData),相当于在变量值mapData所在的代码行处给待检测软件系统源代码设置了一个断点。当然,采用相同的方法,可以给待检测软件系统源代码设置多个断点。
举例来说,现有一服务器端A和客户端B,且服务器端A和客户端B可以通过网络通信进行信息传递。服务器端A中有多个软件系统源代码,即软件系统源代码Ⅰ、软件系统源代码Ⅱ、软件系统源代码Ⅲ、……、软件系统源代码X、……。服务器端A中的这些软件系统源代码可以是偏静态类语言的程序,如Java、C#。假设软件系统源代码X是一个Java代码工程。
现需对软件系统源代码X进行测试,其中,软件系统源代码X有500个代码行、50个变量值。由于目前针对软件系统源代码X的这套软件测试方案X仅涉及其中的20个变量值,即通过处理这20个变量值中的一个或多个即可完成对软件系统源代码X的测试,而其他30个变量值暂不需处理,故可通过上述断点设置方式在这20个变量值处对软件系统源代码X设置20个断点。假设这20个变量值分别是变量值3、变量值10~变量值17、变量值22~变量值31、变量值44,那么,对软件系统源代码X的断点设置可以如下所示:
代码行0001……
代码行0002……
代码行0003……
……
代码行0011…inspect(变量值3)…
代码行0012……
……
代码行0101…inspect(变量值10)…
……
代码行0155…inspect(变量值13)…
……
代码行0410…inspect(变量值44)…
……
代码行0499……
代码行0500……
这一实现方式通过在待检测软件系统源代码中的任意期望位置处设置断点,可以对目标变量值在待检测软件系统源代码中快速定位,提高软件测试效率。
线程,是程序执行流的最小单元,每一个程序都至少有一个线程,且同一个进程中的所有线程可以共享进程所拥有的全部资源。例如,软件系统源代码X内可以有多个线程,且这多个线程同时运行以完成不同的工作。在这种情况下,当软件系统源代码X运行至某一断点位置处时,客户端B可以反馈多种不同的控制指令至服务器端A,则软件系统源代码X可以对该断点位置处的变量值做不同的处理,并采用多个线程完成相应的操作。尤其是,客户端B在获取到该断点位置处的变量值后,可以制造大量不同的新变量值以替换该原变量值,从而通过多线程形式同时对软件系统源代码X进行大量且不同的软件测试。
步骤303:运行软件系统源代码X,在运行至断点所对应的目标变量值处时,暂停运行软件系统源代码X。
具体地,软件系统源代码X正常运行,运行至其中的任一断点所对应的目标变量值处时,均在此目标变量值处暂停运行。
例如,软件系统源代码X从代码行0001开始运行,当运行至软件系统源代码X中的第一个断点位置,即代码行0011时,软件系统源代码X暂停运行。
步骤304:服务器端向客户端发送暂停运行软件系统源代码X的通知消息。
在本实施例中,当软件系统源代码X在代码行0011处暂停运行时,或暂停运行之后,服务器端A向客户端B发送暂停运行软件系统源代码X的通知消息。其中,该通知消息可以是断点处所对应的变量值,或是携带该变量值的其他通知类信息。举例来说,服务器端A可以将代码行0011处的变量值3发送至客户端B。
步骤305:客户端接收由服务器端发送的所述通知消息,并根据所述通知消息生成与其相对应的控制指令。
具体地,所述控制指令,可以包括中断执行操作指令、修改目标变量值操作指令、继续执行操作指令和调用服务器端的目标方法操作指令中的任意一种。
举例来说,与服务器端A相对应的,客户端B可以是一个运行在本地的Java代码工程,故可以在客户端B中引入测试辅助工具,例如,rjf-client.jar、SilkPerformer、SourceInsight。假设在客户端B的Java代码工程中引入测试辅助工具rjf-client.jar,则当服务器端A运行时,可用客户端B对服务器端A进行控制和测试。
在本实施例中,客户端B接收由服务器端A发送的暂停运行软件系统源代码X的通知消息,然后根据该通知消息,生成与该通知消息相对应的控制指令。该过程可以包括:客户端B接收由服务器端A发送的代码行0011处的变量值3,然后查看变量值3,经判断,生成与变量值3相对应的控制指令。此控制指令可以是基于Socket网络通信协议定义的一些控制命令,即中断执行操作指令、修改目标变量值操作指令、继续执行操作指令和调用服务器端的目标方法操作指令中的任意一种。举例来说,客户端B根据变量值3,生成继续执行操作指令。
其中,服务器端A发送给客户端B的变量值均是可序列化的,客户端B反序列化后可重新创建出Java对象。客户端B查看变量值后,可以根据该变量值修改客户端Java代码工程中的代码以修改变量值,并反馈修改目标变量值操作指令给服务器端A,并附加修改后的变量值,以使服务器端A将原变量值替换为修改后的变量值;也可以创建服务器端制定对象,调用服务器内存储的特定方法,并反馈调用服务器端的目标方法操作指令给服务器端A,并附加要调用的方法名称以及参数;或反馈中断执行操作指令;或反馈继续执行操作指令。
详细的,所述控制指令的具体实现方式可以如下所示:
中断执行操作指令,即程序中断,指令的ENUMVALUE为DIRECTIVE_TYPE.STOP;
修改目标变量值操作指令,即修改变量值并继续执行,指令的ENUMVALUE为DIRECTIVE_TYPE.SUBSTITUDE_AND_GO_NEXT,发送指令时同时附加新的变量值;
继续执行操作指令,即忽略并继续执行,指令的ENUMVALUE为DIRECTIVE_TYPE.KEEP_AND_GO_NEXT;
调用服务器端的目标方法操作指令,即调用服务器内存储的方法,指令的ENUMVALUE为DIRECTIVE_TYPE.CALL_METHOD,发送指令时同时附加要调用的方法名称以及参数,如“com.hongda.net.erp100.device_m.dict.DictType.get”,参数是{“Type”:“String”,“Value”:“5701”}。
在本实施例中,根据针对软件系统源代码X的所述软件测试方案X,客户端B对变量值3的查看和判断,可以是客户端B自身对变量值3进行查看并生成相应的控制命令,也可以是相应的专业操作人员查看变量值3,并判断可以对变量值3作何种处理,从而通过客户端B生成合适的控制指令。
举例来说,客户端B根据变量值3,经判断会生成继续执行操作指令,假设操作人员临时决定根据变量值3生成修改目标变量值操作指令更为合适,那么可通过一些系统设置,在客户端B生成相应控制指令之前,操作人员查看此变量值,并命令客户端B生成修改目标变量值操作指令。其中,新的变量值可以是由客户端制造的新的测试数据,也可以是操作人员人为输入的数据。
这一实现方式,可以是客户端根据预定的软件测试方案来查看和处理由服务器端发送的通知消息,从而在提高测试效率的同时,避免了操作人员的实时工作需求;亦可以是相应的专业操作人员查看和处理由服务器端发送的通知消息,从而在预定的软件测试方案出现临时改动时,能够快速调整测试方案,保证软件系统测试的质量和效果。
步骤306:客户端向服务器端反馈所述控制指令。
具体地,客户端B将生成的所述控制指令发送至服务器端A。例如,由于客户端B根据变量值3生成了继续执行操作指令,故客户端B将继续执行操作指令发送至服务器端A。
步骤307:服务器端接收客户端反馈的所述控制指令,并根据所述控制指令执行相应操作。
在本实施例中,服务器端A接收客户端B反馈的控制指令,并解析该控制指令,可以利用Java反射机制创建对象且执行与该控制指令相对应的操作。例如,客户端B反馈的控制指令是继续执行操作指令,故服务器端A结束暂停状态,继续执行软件系统源代码X,即服务器端A忽略代码行0011处的断点,对变量值3及软件系统源代码X不做任何改动,继续执行代码行0012。当然,当软件系统源代码X继续运行至第二个断点位置,即变量值10所在的代码行0101时,再次执行步骤303以及后续的步骤,直至最终完成对软件系统源代码X的检测。
在本实施例中,通过软件系统的动态测试,避免软件系统频繁重启,从而有效节省了测试等待时间。例如,当软件系统的启动需要6分钟时,在一天的软件开发测试过程中,如果能够减少重启应用系统10次,则能够相应的减少等待时间1个小时。尤其是针对大型企业级软件系统,且当一些测试变量条件需要系统运行很长一段时间后才具备时,更能大量节省测试的等待时间。
此外,举例来说,为了增强软件系统的性能以及扩大软件系统的适用范围,往往需要制造大量的原始数据对软件系统进行大量和反复的测试。由于数据库中的数据生产过程步骤繁琐复杂,且需要软件系统频繁重启,这都在一定程度上影响了软件测试的效率,同时加重了软件测试的成本投入。
在本实施例中,通过对软件系统源代码X设置断点,以及服务器端A和客户端B通过Socket进行相关信息的传递和反馈,在系统不重启的情况下,不仅实现了软件系统的动态测试,提高了软件测试的效率,而且,当数据库的测试数据量不足时,通过在软件运行期对断点处的变量值进行修改,利用客户端在程序里循环制造大量测试数据以保证测试数据的数量,提高了原始测试数据的测试覆盖率,从而通过对软件系统的反复、大量测试来增强软件系统的性能以及扩大其适用范围。
举例来说,客户端B获取到服务器端A发送的变量值数据后,可以通过反序列化,将变量值数据再创建成Java对象,通过循环遍历等扩展方式,可将少量的可利用的测试数据扩充到原来的几十倍或更多,可以任意设置或修改Map对象中的数值,然后由客户端B反馈控制指令给服务器端A。此外,由于客户端B可以在程序里循环制造大量测试数据,以保证测试数据的数量和范围,提高了测试用例的覆盖率,也更容易发现一些极端或边界条件下出现的错误或问题。
如图4所示,本发明实施例提供了一种服务器端40,包括:
设置单元401,用于在待测试软件系统源代码的至少一个目标变量值处设置断点;
处理单元402,用于运行所述待测试软件系统源代码,在运行至断点所对应的目标变量值处时,暂停运行所述待测试软件系统源代码;
发送单元403,用于向客户端发送暂停运行所述待测试软件系统源代码的通知消息,以使所述客户端根据所述通知消息反馈控制指令;
执行单元404,用于根据所述客户端反馈的控制指令,执行相应操作。
在一种可能的实现方式中,请参考图5,该服务器端40还可以包括:
引入单元501,用于引入测试辅助工具;
所述设置单元,用于在待测试软件系统源代码的至少一个目标变量值处,利用所述测试辅助工具对所述目标变量值进行修改。
在一种可能的实现方式中,
所述测试辅助工具包括rjf-server.jar;
所述设置单元,用于利用rjf-server.jar,对所述目标变量值处修改为
mapData=(Map)RJF.inspect(mapData)。
如图6所示,本发明实施例提供了一种客户端60,包括:
接收单元601,用于接收由服务器端发送的暂停运行所述待测试软件系统源代码的通知消息;
生成单元602,用于根据所述由服务器端发送的暂停运行所述待测试软件系统源代码的通知消息,生成与其相对应的控制指令;
发送单元603,用于向服务器端反馈所述控制指令,以使所述服务器端根据所述控制指令执行相应操作。
如图7所示,本发明实施例提供了一种软件系统动态测试的系统,包括:服务器端40和客户端60。
具体地,所述软件系统动态测试的系统包括上述任一服务器端和上述客户端,且所述服务器端和所述客户端通过网络通信进行相关信息的相互传递。
在本实施例中,服务器端可以通过网络通信,如socket、HTTP,向客户端发送暂停运行待测试软件系统源代码的通知消息,客户端同样通过该网络通信向服务器端反馈与该通知消息相对应的控制指令。例如,服务器端和客户端通过socket对所述通知信息和所述控制指令进行传递。
综上所述,本发明实施例提供了一种软件系统动态测试的方法、装置及系统,本发明实施例可具有如下有益效果:
1、本发明实施例提供了一种软件系统动态测试的方法、装置及系统,预先在服务器端的待测试软件系统源代码的至少一个目标变量值处设置断点,在系统运行至断点所对应的目标变量值处时,服务器端暂停运行所述待测试软件系统源代码,并向客户端发送暂停运行所述待测试软件系统源代码的通知消息;客户端接收并处理由服务器端发送的所述通知消息,并将生成的与所述通知消息相对应的控制指令反馈至服务器端;服务器端在接收到由客户端反馈的所述控制指令后,根据所述控制指令执行相应操作,从而实现所述待测试软件系统源代码的动态测试,因此,本发明能够实现在系统运行期对软件系统进行动态测试。
2、本发明实施例提供了一种软件系统动态测试的方法、装置及系统,通过在待检测软件系统源代码中的任意期望位置处设置断点,可以对目标变量值在待检测软件系统源代码中快速定位,提高软件测试效率。
3、本发明实施例提供了一种软件系统动态测试的方法、装置及系统,可以是客户端根据预定的软件测试方案来查看和处理由服务器端发送的通知消息,从而在提高测试效率的同时,避免了操作人员的实时工作需求;亦可以是相应的专业操作人员查看和处理由服务器端发送的通知消息,从而在预定的软件测试方案出现临时改动时,能够快速调整测试方案,保证软件系统测试的质量和效果。
4、本发明实施例提供了一种软件系统动态测试的方法、装置及系统,通过软件系统的动态测试,避免软件系统频繁重启,从而有效节省了测试等待时间,尤其是针对大型企业级软件系统,且当一些测试变量条件需要系统运行很长一段时间后才具备时,更能大量节省测试的等待时间。
5、本发明实施例提供了一种软件系统动态测试的方法、装置及系统,通过对软件系统源代码设置断点,以及服务器端和客户端通过Socket进行相关信息的传递和反馈,在系统不重启的情况下,不仅实现了软件系统的动态测试,提高了软件测试的效率,而且,当数据库的测试数据量不足时,通过在软件运行期对断点处的变量值进行修改,利用客户端在程序里循环制造大量测试数据以保证测试数据的数量,提高了原始测试数据的测试覆盖率,从而通过对软件系统的反复、大量测试来增强软件系统的性能以及扩大其适用范围。
上述装置内的各单元之间的信息交互、执行过程等内容,由于与本发明方法实施例基于同一构思,具体内容可参见本发明方法实施例中的叙述,此处不再赘述。
最后需要说明的是:以上所述仅为本发明的较佳实施例,仅用于说明本发明的技术方案,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所做的任何修改、等同替换、改进等,均包含在本发明的保护范围内。

Claims (10)

1.一种软件系统动态测试的方法,其特征在于,应用于服务器端,预先在待测试软件系统源代码的至少一个目标变量值处设置断点,该方法包括:
运行所述待测试软件系统源代码,在运行至断点所对应的目标变量值处时,暂停运行所述待测试软件系统源代码;
向客户端发送暂停运行所述待测试软件系统源代码的通知消息,以使所述客户端根据所述通知消息反馈控制指令;
根据所述客户端反馈的控制指令,执行相应操作。
2.根据权利要求1所述的方法,其特征在于,
进一步包括:引入测试辅助工具;
所述预先在待测试软件系统源代码的至少一个目标变量值处设置断点,包括:在待测试软件系统源代码的至少一个目标变量值处,利用所述测试辅助工具对所述目标变量值进行修改。
3.根据权利要求2所述的方法,其特征在于,
所述测试辅助工具包括rjf-server.jar;
所述利用所述测试辅助工具对所述目标变量值进行修改,包括:
利用rjf-server.jar,对变量值处修改为
mapData=(Map)RJF.inspect(mapData)。
4.一种软件系统动态测试的方法,其特征在于,应用于客户端,包括:
接收由服务器端发送的暂停运行所述待测试软件系统源代码的通知消息;
根据所述由服务器端发送的暂停运行所述待测试软件系统源代码的通知消息,生成与其相对应的控制指令;
向服务器端反馈所述控制指令,以使所述服务器端根据所述控制指令执行相应操作。
5.根据权利要求4所述的方法,其特征在于,所述控制指令,包括:
中断执行操作指令、修改目标变量值操作指令、继续执行操作指令和调用服务器端的目标方法操作指令中的任意一种。
6.一种服务器端,其特征在于,包括:
设置单元,用于在待测试软件系统源代码的至少一个目标变量值处设置断点;
处理单元,用于运行所述待测试软件系统源代码,在运行至断点所对应的目标变量值处时,暂停运行所述待测试软件系统源代码;
发送单元,用于向客户端发送暂停运行所述待测试软件系统源代码的通知消息,以使所述客户端根据所述通知消息反馈控制指令;
执行单元,用于根据所述客户端反馈的控制指令,执行相应操作。
7.根据权利要求6所述的服务器端,其特征在于,
进一步包括:引入单元,用于引入测试辅助工具;
所述设置单元,用于在待测试软件系统源代码的至少一个目标变量值处,利用所述测试辅助工具对所述目标变量值进行修改。
8.根据权利要求7所述的服务器端,其特征在于,
所述测试辅助工具包括rjf-server.jar;
所述设置单元,用于利用rjf-server.jar,对所述目标变量值处修改为
mapData=(Map)RJF.inspect(mapData)。
9.一种客户端,其特征在于,包括:
接收单元,用于接收由服务器端发送的暂停运行所述待测试软件系统源代码的通知消息;
生成单元,用于根据所述由服务器端发送的暂停运行所述待测试软件系统源代码的通知消息,生成与其相对应的控制指令;
发送单元,用于向服务器端反馈所述控制指令,以使所述服务器端根据所述控制指令执行相应操作。
10.一种软件系统动态测试的系统,其特征在于,包括如权利要求6-8中任一所述的服务器端,和,如权利要求9所述的客户端。
CN201510788631.9A 2015-11-16 2015-11-16 一种软件系统动态测试的方法、装置及系统 Pending CN105260316A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201510788631.9A CN105260316A (zh) 2015-11-16 2015-11-16 一种软件系统动态测试的方法、装置及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201510788631.9A CN105260316A (zh) 2015-11-16 2015-11-16 一种软件系统动态测试的方法、装置及系统

Publications (1)

Publication Number Publication Date
CN105260316A true CN105260316A (zh) 2016-01-20

Family

ID=55100016

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201510788631.9A Pending CN105260316A (zh) 2015-11-16 2015-11-16 一种软件系统动态测试的方法、装置及系统

Country Status (1)

Country Link
CN (1) CN105260316A (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106375325A (zh) * 2016-09-09 2017-02-01 浪潮软件股份有限公司 一种基于网络通信协议的企业级软件系统动态测试方法
CN109981708A (zh) * 2017-12-27 2019-07-05 浙江绍兴苏泊尔生活电器有限公司 联网设备控制方法及装置
CN111722880A (zh) * 2020-05-11 2020-09-29 深圳市共进电子股份有限公司 一种设备生产方法、装置、终端设备及介质

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6016558A (en) * 1997-12-09 2000-01-18 Electronics And Telecommunications Research Institute Communication event/message tracing method for RPC-based distribution processing program
CN1987818A (zh) * 2006-08-25 2007-06-27 上海普元信息技术有限责任公司 构件化软件系统中实现非Java构件的调试的方法
CN100590604C (zh) * 2003-06-20 2010-02-17 微软公司 可插部件上的断点调试
CN102981957A (zh) * 2012-11-30 2013-03-20 福建天晴数码有限公司 虚断点脚本调试方法
CN103593292A (zh) * 2013-11-19 2014-02-19 北京深思数盾科技有限公司 调试程序的系统及方法

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6016558A (en) * 1997-12-09 2000-01-18 Electronics And Telecommunications Research Institute Communication event/message tracing method for RPC-based distribution processing program
CN100590604C (zh) * 2003-06-20 2010-02-17 微软公司 可插部件上的断点调试
CN1987818A (zh) * 2006-08-25 2007-06-27 上海普元信息技术有限责任公司 构件化软件系统中实现非Java构件的调试的方法
CN102981957A (zh) * 2012-11-30 2013-03-20 福建天晴数码有限公司 虚断点脚本调试方法
CN103593292A (zh) * 2013-11-19 2014-02-19 北京深思数盾科技有限公司 调试程序的系统及方法

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106375325A (zh) * 2016-09-09 2017-02-01 浪潮软件股份有限公司 一种基于网络通信协议的企业级软件系统动态测试方法
CN109981708A (zh) * 2017-12-27 2019-07-05 浙江绍兴苏泊尔生活电器有限公司 联网设备控制方法及装置
CN111722880A (zh) * 2020-05-11 2020-09-29 深圳市共进电子股份有限公司 一种设备生产方法、装置、终端设备及介质
CN111722880B (zh) * 2020-05-11 2024-02-09 深圳市共进电子股份有限公司 一种设备生产方法、装置、终端设备及介质

Similar Documents

Publication Publication Date Title
US10430319B1 (en) Systems and methods for automatic software testing
US20140282421A1 (en) Distributed software validation
US20150100832A1 (en) Method and system for selecting and executing test scripts
CN102354165B (zh) 在线更新数据的方法和装置
CN105159833A (zh) 自动化测试装置及方法
US20150100830A1 (en) Method and system for selecting and executing test scripts
CN104793994A (zh) 批量作业处理方法、装置及系统
US20150100831A1 (en) Method and system for selecting and executing test scripts
CN105260316A (zh) 一种软件系统动态测试的方法、装置及系统
CN109344085B (zh) 一种分析卫星测试数据的方法和系统
CN111831191A (zh) 工作流配置方法、装置、计算机设备和存储介质
CN109905263A (zh) 一种自动化运维部署系统
CN112199355B (zh) 数据迁移方法、装置、电子设备及存储介质
Pratama et al. Implementation of continuous integration and continuous delivery (ci/cd) on automatic performance testing
CN115454869A (zh) 界面自动化测试方法、装置、设备及存储介质
EP3413149B1 (en) Field device commissioning system and field device commissioning method
CN115480746A (zh) 数据处理任务的执行文件生成方法、装置、设备及介质
Rodrigues et al. Adaptive multi-agent system for a washing machine production line
CN105279065A (zh) 在云测试平台中统计测试结果的方法及装置
CN116400987B (zh) 持续集成方法、装置、电子设备及存储介质
CN116467188A (zh) 一种多环境场景下的通用本地复现系统和方法
CN116501315A (zh) 基于DevOps域的低代码软件开发系统、方法及设备
CN114791900A (zh) 基于Operator的Redis运维方法、装置、系统及存储介质
CN112231231B (zh) 云端服务的调试方法、系统及装置
US20230195596A1 (en) Cloud agnostic shared load testing platform

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
WD01 Invention patent application deemed withdrawn after publication
WD01 Invention patent application deemed withdrawn after publication

Application publication date: 20160120