一种软件系统动态测试的方法、装置及系统的制作方法_2

文档序号:9506126阅读:来源:国知局
由客户端反馈的所述控制指令后,根据所述控制指令,执行相应操作,从而实现所述待测试软件系统源代码的动态测试。
[0056]在一种可能的实现方式中,为了在待测试软件系统的运行过程中,能够对系统源代码中的期望有所调整或改变的目标变量值处进行其他操作方式处理,需要预先在待测试软件系统源代码的目标变量值处设置断点,所以,包括:
[0057]引入测试辅助工具;
[0058]所述预先在待测试软件系统源代码的至少一个目标变量值处设置断点,包括:在待测试软件系统源代码的至少一个目标变量值处,利用所述测试辅助工具对所述目标变量值进行修改。
[0059]在一种可能的实现方式中,为了在待测试软件系统源代码的目标变量值处设置断点,所以,
[0060]所述利用所述测试辅助工具对所述目标变量值进行修改,包括:
[0061]利用rjf-server.jar,对变量值处修改为
[0062]mapData = (Map)RJF.1nspect(mapData)。
[0063]如图2所示,本发明实施例提供了另一种软件系统动态测试的方法,该方法应用于客户端,可以包括以下步骤:
[0064]步骤201:接收由服务器端发送的暂停运行所述待测试软件系统源代码的通知消息;
[0065]步骤202:根据所述由服务器端发送的暂停运行所述待测试软件系统源代码的通知消息,生成与其相对应的控制指令;
[0066]步骤203:向服务器端反馈所述控制指令,以使所述服务器端根据所述控制指令执行相应操作。
[0067]本发明实施例提供了另一种软件系统动态测试的方法,应用于客户端,接收由服务器端发送的暂停运行服务器端待测试软件系统源代码的通知消息;处理所述通知消息,并生成与所述通知消息相对应的控制指令;将所述控制指令反馈至服务器端,以使服务器端根据客户端反馈的控制指令执行相应操作,从而实现在系统运行期对软件系统进行动态测试。
[0068]在一种可能的实现方式中,所述控制指令,包括:中断执行操作指令、修改目标变量值操作指令、继续执行操作指令和调用服务器端的目标方法操作指令中的任意一种。
[0069]为使本发明的目的、技术方案和优点更加清楚,下面结合附图及具体实施例对本发明作进一步地详细描述。
[0070]如图3所示,本发明实施例提供了另一种软件系统动态测试的方法,该方法可以包括以下步骤:
[0071]步骤301:在服务器端引入测试辅助工具。
[0072]在本实施例中,可以在服务器端的待测试软件系统源代码中,引入测试辅助工具,例如,rjf-server.jar、SilkPerformer、Source Insight。举例来说,在服务器端的待测试软件系统源代码中引入测试辅助工具rjf-server.jar。
[0073]步骤302:在服务器端的待测试软件系统源代码X的至少一个目标变量值处设置断点。
[0074]具体地,在服务器端的待测试软件系统源代码中的任一希望被远程查看或测试的目标变量值处,利用引入的测试辅助工具对所述目标变量值进行修改,从而给待测试软件系统源代码设置断点。
[0075]例如,可以利用测试辅助工具rjf-server.jar,对Map类型的变量值mapData处修改为mapData = (Map) RJF.1nspect (mapData),相当于在变量值mapData所在的代码行处给待检测软件系统源代码设置了一个断点。当然,采用相同的方法,可以给待检测软件系统源代码设置多个断点。
[0076]举例来说,现有一服务器端A和客户端B,且服务器端A和客户端B可以通过网络通信进行信息传递。服务器端A中有多个软件系统源代码,即软件系统源代码1、软件系统源代码I1、软件系统源代码II1、……、软件系统源代码X、……。服务器端A中的这些软件系统源代码可以是偏静态类语言的程序,如Java、C#。假设软件系统源代码X是一个Java代码工程。
[0077]现需对软件系统源代码X进行测试,其中,软件系统源代码X有500个代码行、50个变量值。由于目前针对软件系统源代码X的这套软件测试方案X仅涉及其中的20个变量值,即通过处理这20个变量值中的一个或多个即可完成对软件系统源代码X的测试,而其他30个变量值暂不需处理,故可通过上述断点设置方式在这20个变量值处对软件系统源代码X设置20个断点。假设这20个变量值分别是变量值3、变量值10?变量值17、变量值22?变量值31、变量值44,那么,对软件系统源代码X的断点设置可以如下所示:
[0078]代码行0001......
[0079]代码行0002......
[0080]代码行0003......
[0081]......
[0082]代码行0011…inspect (变量值3)…
[0083]代码行0012......
[0084]......
[0085]代码行0101…inspect (变量值10)…
[0086]......
[0087]代码行0155…inspect (变量值I3)…
[0088]......
[0089]代码行0410…inspect (变量值44)…
[0090]......
[0091]代码行0499......
[0092]代码行0500......
[0093]这一实现方式通过在待检测软件系统源代码中的任意期望位置处设置断点,可以对目标变量值在待检测软件系统源代码中快速定位,提高软件测试效率。
[0094]线程,是程序执行流的最小单元,每一个程序都至少有一个线程,且同一个进程中的所有线程可以共享进程所拥有的全部资源。例如,软件系统源代码X内可以有多个线程,且这多个线程同时运行以完成不同的工作。在这种情况下,当软件系统源代码X运行至某一断点位置处时,客户端B可以反馈多种不同的控制指令至服务器端A,则软件系统源代码X可以对该断点位置处的变量值做不同的处理,并采用多个线程完成相应的操作。尤其是,客户端B在获取到该断点位置处的变量值后,可以制造大量不同的新变量值以替换该原变量值,从而通过多线程形式同时对软件系统源代码X进行大量且不同的软件测试。
[0095]步骤303:运行软件系统源代码X,在运行至断点所对应的目标变量值处时,暂停运行软件系统源代码X。
[0096]具体地,软件系统源代码X正常运行,运行至其中的任一断点所对应的目标变量值处时,均在此目标变量值处暂停运行。
[0097]例如,软件系统源代码X从代码行0001开始运行,当运行至软件系统源代码X中的第一个断点位置,即代码行0011时,软件系统源代码X暂停运行。
[0098]步骤304:服务器端向客户端发送暂停运行软件系统源代码X的通知消息。
[0099]在本实施例中,当软件系统源代码X在代码行0011处暂停运行时,或暂停运行之后,服务器端A向客户端B发送暂停运行软件系统源代码X的通知消息。其中,该通知消息可以是断点处所对应的变量值,或是携带该变量值的其他通知类信息。举例来说,服务器端A可以将代码行0011处的变量值3发送至客户端B。
[0100]步骤305:客户端接收由服务器端发送的所述通知消息,并根据所述通知消息生成与其相对应的控制指令。
[0101]具体地,所述控制指令,可以包括中断执行操作指令、修改目标变量值操作指令、继续执行操作指令和调用服务器端的目标方法操作指令中的任意一种。
[0102]举例来说,与服务器端A相对应的,客户端B可以是一个运行在本地的Java代码工程,故可以在客户端B中引入测试辅助工具,例如,rjf-client.jar、Si lkPerformer、Source Insight。假设在客户端B的Java代码工程中引入测试辅助工具rjf-c
当前第2页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1