掌桥专利:专业的专利平台
掌桥专利
首页

客户端软件调试方法、装置、存储介质及电子设备

文献发布时间:2023-06-19 11:29:13


客户端软件调试方法、装置、存储介质及电子设备

技术领域

本公开涉及计算机技术领域,具体而言,涉及一种客户端软件调试方法、客户端软件调试装置、计算机可读存储介质以及电子设备。

背景技术

软件开发过程中,需要对开发的软件进行测试与调试。其中,软件调试是在进行了成功的测试之后才开始的工作,调试的任务是进一步诊断和改正程序中潜在的错误。

现有的软件调试系统繁多,但是往往需要花费大量的时间调试代码来解决程序中存在的错误。例如,对于包含多个业务模块的直播软件,在调试过程中运行代码时耗时较多。并且,当客户端和服务端对业务功能进行联调时,如果两端的开发进度不一致,还会影响客户端的调试过程。

因此,如何能够减少软件在开发过程中的工作量,提高软件的开发效率成为亟待解决的技术问题。

需要说明的是,在上述背景技术部分公开的信息仅用于加强对本公开的背景的理解,因此可以包括不构成对本领域普通技术人员已知的现有技术的信息。

发明内容

本公开的目的在于提供一种客户端软件调试方法、客户端软件调试装置、计算机可读存储介质以及电子设备,以解决现有技术中客户端软件的开发效率较低的问题。

根据本公开的第一方面,提供一种客户端软件调试方法,包括:

将客户端软件中待调试功能模块的启动项添加至初始代码中,所述初始代码用于对所述客户端软件中的各功能模块进行调试;

根据所述待调试功能模块的启动参数,模拟当前调试阶段服务端向客户端发送的测试数据,得到模拟数据;

调用所述初始代码中所述待调试功能模块的启动项,将所述模拟数据发送至所述待调试功能模块进行第一阶段调试;

响应于阶段切换指令,更新所述初始代码中的所述模拟数据,并利用更新后的模拟数据对所述待调试功能模块进行第二阶段调试。

在本公开的一种示例性实施例中,所述将客户端软件中待调试功能模块的启动项添加至初始代码中,包括:

引入所述初始代码的启动接口,并调用所述初始代码的基础架构;

将所述客户端软件中待调试功能模块的启动项通过所述启动接口添加至所述基础架构的启动管理模块中。

在本公开的一种示例性实施例中,所述根据所述待调试功能模块的启动参数,模拟当前调试阶段服务端向客户端发送的测试数据,得到模拟数据,包括:

利用网页爬虫脚本获取所述服务端向客户端发送的测试数据;

根据所述待调试功能模块的数据协议模拟所述测试数据,得到所述待调试功能模块中当前调试阶段的模拟数据。

在本公开的一种示例性实施例中,所述根据所述待调试功能模块的数据协议模拟所述测试数据,包括:

按照所述数据协议中的数据格式,将所述测试数据在所述初始代码的数据功能函数中进行赋值。

在本公开的一种示例性实施例中,所述调用所述初始代码中所述待调试功能模块的启动项,将所述模拟数据发送至所述待调试功能模块进行第一阶段调试,包括:

获取与所述待调试功能模块的数据协议标识对应的模拟数据;

调用所述初始代码中所述待调试功能模块的启动项,将所述模拟数据发送至所述待调试功能模块中,以对所述待调试功能模块进行第一阶段调试。

在本公开的一种示例性实施例中,所述响应于阶段切换指令,更新所述初始代码中的模拟数据,包括:

响应于所述阶段切换指令,利用随机数据更新函数将所述待调试功能模块中第一阶段的模拟数据更新为第二阶段的模拟数据。

在本公开的一种示例性实施例中,所述方法还包括:

通过调整功能模块标识和对应的数据协议对不同的功能模块进行调试。

根据本公开的第二方面,提供一种客户端软件调试装置,包括:

启动项添加单元,用于将客户端软件中待调试功能模块的启动项添加至初始代码中,所述初始代码用于对所述客户端软件中的各功能模块进行调试;

测试数据模拟单元,用于根据所述待调试功能模块的启动参数,模拟当前调试阶段服务端向客户端发送的测试数据,得到模拟数据;

模拟数据发送单元,用于调用所述初始代码中所述待调试功能模块的启动项,将所述模拟数据发送至所述待调试功能模块进行第一阶段调试;

模拟数据更新单元,用于响应于阶段切换指令,更新所述初始代码中的模拟数据,并利用更新后的模拟数据对所述待调试功能模块进行第二阶段调试。

根据本公开的第三方面,提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述任意一项所述的方法。

根据本公开的第四方面,提供一种电子设备,包括:处理器;以及存储器,用于存储所述处理器的可执行指令;其中,所述处理器配置为经由执行所述可执行指令来执行上述任意一项所述的方法。

本公开示例性实施例可以具有以下部分或全部有益效果:

在本公开示例实施方式所提供的客户端软件调试方法中,通过将客户端软件中待调试功能模块的启动项添加至初始代码中;根据所述待调试功能模块的启动参数,模拟当前调试阶段服务端向客户端发送的测试数据,得到模拟数据;调用所述初始代码中所述待调试功能模块的启动项,将所述模拟数据发送至所述待调试功能模块进行第一阶段调试;响应于阶段切换指令,更新所述初始代码中的所述模拟数据,并利用更新后的模拟数据对所述待调试功能模块进行第二阶段调试。在客户端软件的调试过程中,一方面,只需要启动待调试的功能模块,可以有效减少程序启动所需的响应时长;另一方面,不依赖服务端的开发进度,通过模拟服务端向客户端下发数据,可以减少等待服务端下发数据的时间,进而提高软件开发效率;再一方面,通过模拟服务端向客户端下发的不同阶段的数据,可以实现整个开发过程的模拟,进一步提高软件开发效率。

应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。

附图说明

此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理。显而易见地,下面描述中的附图仅仅是本公开的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。

图1示出了可以应用本公开实施例的一种客户端软件调试方法及装置的示例性系统架构的示意图;

图2示出了适于用来实现本公开实施例的电子设备的计算机系统的结构示意图;

图3示意性示出了根据本公开的一个实施例的客户端软件调试方法的流程图;

图4示意性示出了根据本公开的一个实施例的单独启动功能模块的流程图;

图5示意性示出了根据本公开的一个实施例的单独启动功能模块的示意图;

图6示意性示出了根据本公开的一个实施例的模拟数据的流程图;

图7中图7A-图7C示意性示出了根据本公开的一个实施例的切换功能模块阶段的示意图;

图8示意性示出了根据本公开的一个实施例的客户端软件调试装置的框图。

具体实施方式

现在将参考附图更全面地描述示例实施方式。然而,示例实施方式能够以多种形式实施,且不应被理解为限于在此阐述的范例;相反,提供这些实施方式使得本公开将更加全面和完整,并将示例实施方式的构思全面地传达给本领域的技术人员。所描述的特征、结构或特性可以以任何合适的方式结合在一个或更多实施方式中。在下面的描述中,提供许多具体细节从而给出对本公开的实施方式的充分理解。然而,本领域技术人员将意识到,可以实践本公开的技术方案而省略所述特定细节中的一个或更多,或者可以采用其它的方法、组元、装置、步骤等。在其它情况下,不详细示出或描述公知技术方案以避免喧宾夺主而使得本公开的各方面变得模糊。

此外,附图仅为本公开的示意性图解,并非一定是按比例绘制。图中相同的附图标记表示相同或类似的部分,因而将省略对它们的重复描述。附图中所示的一些方框图是功能实体,不一定必须与物理或逻辑上独立的实体相对应。可以采用软件形式来实现这些功能实体,或在一个或多个硬件模块或集成电路中实现这些功能实体,或在不同网络和/或处理器装置和/或微控制器装置中实现这些功能实体。

图1示出了可以应用本公开实施例的一种客户端软件调试方法及装置的示例性应用环境的系统架构的示意图。

如图1所示,系统架构100可以包括终端设备101、102、103中的一个或多个,网络104和服务器105。网络104用以在终端设备101、102、103和服务器105之间提供通信链路的介质。网络104可以包括各种连接类型,例如有线、无线通信链路或者光纤电缆等等。终端设备101、102、103可以是具有显示屏的各种电子设备,包括但不限于台式计算机、便携式计算机、智能手机和平板电脑等等。应该理解,图1中的终端设备、网络和服务器的数目仅仅是示意性的。根据实现需要,可以具有任意数目的终端设备、网络和服务器。比如服务器105可以是多个服务器组成的服务器集群等。

本公开实施例所提供的客户端软件调试方法一般由服务器105执行,相应地,客户端软件调试装置一般设置于服务器105中。但本领域技术人员容易理解的是,本公开实施例所提供的客户端软件调试方法也可以由终端设备101、102、103执行,相应的,客户端软件调试装置也可以设置于终端设备101、102、103中,本示例性实施例中对此不做特殊限定。

图2示出了适于用来实现本公开实施例的电子设备的计算机系统的结构示意图。

需要说明的是,图2示出的电子设备的计算机系统200仅是一个示例,不应对本公开实施例的功能和使用范围带来任何限制。

如图2所示,计算机系统200包括中央处理单元(CPU)201,其可以根据存储在只读存储器(ROM)202中的程序或者从存储部分208加载到随机访问存储器(RAM)203中的程序而执行各种适当的动作和处理。在RAM 203中,还存储有系统操作所需的各种程序和数据。CPU201、ROM 202以及RAM 203通过总线204彼此相连。输入/输出(I/O)接口205也连接至总线204。

以下部件连接至I/O接口205:包括键盘、鼠标等的输入部分206;包括诸如阴极射线管(CRT)、液晶显示器(LCD)等以及扬声器等的输出部分207;包括硬盘等的存储部分208;以及包括诸如LAN卡、调制解调器等的网络接口卡的通信部分209。通信部分209经由诸如因特网的网络执行通信处理。驱动器210也根据需要连接至I/O接口205。可拆卸介质211,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器210上,以便于从其上读出的计算机程序根据需要被安装入存储部分208。

特别地,根据本公开的实施例,下文参考流程图描述的过程可以被实现为计算机软件程序。例如,本公开的实施例包括一种计算机程序产品,其包括承载在计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分209从网络上被下载和安装,和/或从可拆卸介质211被安装。在该计算机程序被中央处理单元(CPU)201执行时,执行本申请的方法和装置中限定的各种功能。

作为另一方面,本申请还提供了一种计算机可读介质,该计算机可读介质可以是上述实施例中描述的电子设备中所包含的;也可以是单独存在,而未装配入该电子设备中。上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被一个该电子设备执行时,使得该电子设备实现如下述实施例中所述的方法。例如,所述的电子设备可以实现如图3、图4及图6所示的各个步骤等。

需要说明的是,本公开所示的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本公开中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本公开中,计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:无线、电线、光缆、RF等等,或者上述的任意合适的组合。

以下对本公开实施例的技术方案进行详细阐述:

客户端软件的开发过程中,需要花费大量时间调试代码来解决程序中存在的错误。以直播软件为例,其客户端可以包含多个业务模块,碎片化功能繁杂。在对直播软件进行调试时,开发人员对任一模块的小部分编码都需要运行所有业务模块,会导致影响因素和耗时均增加。并且,客户端软件的调试过程通常需要接入服务器的数据,服务端和客户端的开发人员对整个业务功能进行联调才能看到调试结果,如果两端的开发进度不一致,还会影响客户端的调试过程。

针对软件调试过程中的各类影响因素,开发人员可以在当前业务模块中设置断点并使用编译工具的Debug(程序除错)模式来查找代码中存在的问题。对应的,服务端也可以提供数据收发模拟工具来帮助客户端的开发人员调试运行,当输入对应的协议号以及接收符合信息格式的数据,就可以连通服务器来调试当前业务模块。

其中,Debug模式是调试代码的常用工具,可以帮助开发人员快速找到代码中存在的问题。但是,无法解决两端联调的问题,尤其在体量大的代码工程中耗时较多,无法满足快速开发的需求。另外,通过服务端提供的数据收发工具虽然对两端联调有一定效果,但需要针对每一个业务模块填写不同的功能协议,还需要每次手动更新测试数据,整个调试过程比较繁琐,不易操作。而且,对于直播软件的调试,软件业务功能使用的数据协议格式大同小异,每次在重复性联调工作上花费大量时间不合常理,同时这类调试工作也依赖整套代码工程的运行,对于每个单独功能模块的开发来说,耗时过长。

基于上述一个或多个问题,本示例实施方式提供了一种客户端软件调试方法,该方法可以应用于上述服务器105,也可以应用于上述终端设备101、102、103中的一个或多个,本示例性实施例中对此不做特殊限定。参考图3所示,该客户端软件调试方法可以包括以下步骤S310至步骤S340:

步骤S310.将客户端软件中待调试功能模块的启动项添加至初始代码中,所述初始代码用于对所述客户端软件中的各功能模块进行调试;

步骤S320.根据所述待调试功能模块的启动参数,模拟当前调试阶段服务端向客户端发送的测试数据,得到模拟数据;

步骤S330.调用所述初始代码中所述待调试功能模块的启动项,将所述模拟数据发送至所述待调试功能模块进行第一阶段调试;

步骤S340.响应于阶段切换指令,更新所述初始代码中的所述模拟数据,并利用更新后的模拟数据对所述待调试功能模块进行第二阶段调试。

在本公开示例实施方式所提供的客户端软件调试方法中,通过将客户端软件中待调试功能模块的启动项添加至初始代码中;根据所述待调试功能模块的启动参数,模拟当前调试阶段服务端向客户端发送的测试数据,得到模拟数据;调用所述初始代码中所述待调试功能模块的启动项,将所述模拟数据发送至所述待调试功能模块进行第一阶段调试;响应于阶段切换指令,更新所述初始代码中的所述模拟数据,并利用更新后的模拟数据对所述待调试功能模块进行第二阶段调试。在客户端软件的调试过程中,一方面,只需要启动待调试的功能模块,可以有效减少程序启动所需的响应时长;另一方面,不依赖服务端的开发进度,通过模拟服务端向客户端下发数据,可以减少等待服务端下发数据的时间,进而提高软件开发效率;再一方面,通过模拟服务端向客户端下发的不同阶段的数据,可以实现整个开发过程的模拟,进一步提高软件开发效率。

下面,对于本示例实施方式的上述步骤进行更加详细的说明。

在步骤S310中,将客户端软件中待调试功能模块的启动项添加至初始代码中,所述初始代码用于对所述客户端软件中的各功能模块进行调试。

客户端软件是指可以将用户终端和软件发行商的服务器连接,进行数据交换的软件,如直播软件,即时通讯软件等。软件调试是指可以重现软件缺陷问题、定位和查找问题根源,最终解决问题的过程,为了发现并排除软件程序中的错误,可以通过控制被调试程序的执行过程,以便于随时查看和修改被调试程序的执行状态。

一种示例实施方式中,可以利用代码调试工具对客户端软件进行调试。首先,可以在Windows平台、linux平台等搭建代码调试工具的代码工程。如可以利用编译器编写该代码调试工具的工程代码,编码器可以将开发人员编写的源代码转换成CPU识别的二进制指令,即可以得到可执行程序。代码调试工具的代码工程搭建完成后,可以得到用于调试客户端软件的初始代码,所述初始代码可以用于对客户端软件中的各功能模块进行调试。

本示例中可以根据步骤S410和步骤S420实现各功能模块的单独启动。

步骤S410.引入所述初始代码的启动接口,并调用所述初始代码的基础架构。

代码工程的基础架构部分可以包括控制器管理模块、视图模块和数据模块等,其中,控制器管理模块是指可以控制代码工程中各个功能模块启动项的管理器。为了实现每个业务功能的独立启动,在搭建代码工程时,可以创建一个程序的启动接口,通过调用该接口实现类来启动待调试功能模块。因此,在启动该待调试功能模块时,可以引入工程代码的启动接口,并调用该代码工程的基础架构部分,以便于通过该启动接口将客户端软件中待调试功能模块的启动项添加至初始代码中,也就是可以将各个功能模块的启动项添加至搭建好的代码调试工具的代码工程中。

步骤S420.将所述客户端软件中待调试功能模块的启动项通过所述启动接口添加至所述基础架构的启动管理模块中。

待调试功能模块的启动项是指该功能模块运行时需要加载的程序,通过工程代码的启动接口可以将该待调试功能模块的启动项添加至代码工程的基础架构中,具体的,可以将该待调试功能模块的启动项加入基础架构中的控制器管理模块(也可以称为启动管理模块)中。通过控制各个功能模块启动项的运行,可以单独启动某个待调试的功能模块,功能模块的程序启动时可以快速得到数据显示效果,相比于普通的调试过程中需要启动所有功能模块更加高效快捷。

图5示意性的给出整个代码工程中的启动管理模块,启动管理模块是可以控制代码工程中多个功能模块启动项的管理器,功能模块可以包括A功能模块、X功能模块等。假设A功能模块是当前业务功能的启动模块,在普通的调试过程中,启动管理模块需要与其他所有的功能模块一起启动,在本示例的调试过程中可以利用启动管理模块的测试分支来单独启动A功能模块,可以节省代码工程的运行时长。

本示例中,在客户端软件的调试过程中时,不需要启动整个代码工程,只需调用该代码工程的基础架构来启动对应的业务模块,启动时间大大缩短。而且,通过独立调试代码工程中的任一功能模块,方便对程序出现的问题进行模块化分析。

在步骤S320中,根据所述待调试功能模块的启动参数,模拟当前调试阶段服务端向客户端发送的测试数据,得到模拟数据。

待调试功能模块的启动参数可以包括功能模块标识如功能名称,也可以包括数据协议,数据协议是服务端和客户端对于每一个功能模块设定好的通信协议,可以保证数据通信网中通信双方进行有效、可靠的通信做的一系列约定,如可以约定数据格式、顺序、速率、数据传输的确认或拒收、差错检测、重传控制和询问等操作。在软件调试过程中,通常服务端也可以向客户端下发测试数据来帮助客户端开发人员调试运行对应的功能模块,例如,当输入对应数据协议的协议名称(或协议号)以及符合接收信息格式的数据时,就可以连通服务器调试当前的功能模块。一种示例实施方式中,可以通过模拟服务器的数据协议向客户端下发对应字段的数据。首先,参考图6所示,可以根据步骤S610和步骤S620来模拟当前调试阶段服务端向客户端发送的测试数据。

步骤S610.利用网页爬虫脚本获取所述服务端向客户端发送的测试数据;

在模拟服务端下发的测试数据前,需要获取待调试功能模块当前调试阶段的测试数据。例如,可以利用网页爬虫实现测试数据的挖掘,网页爬虫是指编写爬虫脚本来获取测试数据,基本工作流程可以包括:首先,可以选取一些URL(Uniform Resource Locator,统一资源定位符)作为种子URL放入待爬取队列中,然后编写爬虫脚本,针对待爬取队列中的种子URL,可以模拟人工浏览的方式访问网站,将爬取到的用于调试待调试功能模块的网页HTML(Hyper Text Markup Language,超文本标记语言)数据进行存储以及解析,并将解析得到的新链接作为下一层爬取的种子URL。

本示例中,该脚本工具可以快速、便捷的获取服务端下发的测试数据的数据格式,在其他示例中,也可以通过手动输入或者拷贝输入的方式获取服务端下发的测试数据。

步骤S620.根据所述待调试功能模块的数据协议模拟所述测试数据,得到所述待调试功能模块中当前调试阶段的模拟数据。

一种示例实施方式中,可以在代码调试工具中加入网页爬虫脚本,将该脚本工具爬取数据的格式与服务端约定的当前待调试功能模块的数据协议一致,并保存爬取到的数据,如可以保存至本地。然后,根据爬取到的数据,在代码工程的数据功能函数中进行赋值,就可以得到待调试功能模块中当前调试阶段的模拟数据。其中,赋值的顺序也与数据协议约定的顺序一一对应。本示例中,可以利用网页爬虫脚本设置数据功能函数,以该数据功能函数为基础建立模拟数据模块。

在步骤S330中,调用所述初始代码中所述待调试功能模块的启动项,将所述模拟数据发送至所述待调试功能模块进行第一阶段调试。

建立模拟数据模块后,可以为模拟数据模块设置对应的数据协议ID,以便于根据数据协议ID获取对应的模拟数据。在数据模拟成功之后,可以引入该代码工程中的待调试功能模块,如可以通过调用该待调试功能模块的启动项,将对应的模拟数据传入代码工程的数据中,也就是可以将模拟数据传入对应的待调试功能模块中,以对该待调试功能模块进行第一阶段调试。例如,语音直播软件中的“语音公会”功能模块可以包括海选战、掠夺战和决赛战等多个阶段,可以将海选战阶段作为第一阶段,模拟海选战阶段的测试数据,对海选战阶段进行调式。

本示例中,首先,整个调试过程中不依赖服务端的开发进度,可以完全自主的模拟服务端的数据协议向客户端下发对应字段的数据,而且,还不会出现数据通信上的延迟问题,响应时间短;其次,模拟的所有数据内容可以根据两端约定的数据协议构建,数据项也是一一对应的关系。其中,传入的业务模块也是根据代码调试工具所在包来设定的,当设置上存在偏差时,代码调试工具通过打印出相应的警告信息,可以提高软件调试的准确率。最后,在调试过程中,数据模拟的都是两端数据协议所约定的数据项的内容,即代码调试工具模拟的服务端数据可以选择随机数据,也可以在代码工程中人为修改,不会出现脱离数据协议之外的字段信息,并且可以根据业务需求阶段的变化来调整数据阶段,更新模拟的数据内容,大大提高了调试过程中判断的可靠性。

在步骤S340中,响应于阶段切换指令,更新所述初始代码中的所述模拟数据,并利用更新后的模拟数据对所述待调试功能模块进行第二阶段调试。

单次传入写死的数据只能对功能模块中的某一阶段进行调式,对于包含多个阶段的功能模块来说,如果传入写死的数据则不能完全体现该代码调试工具的有效性,因此,可以建立一个阶段切换模块,用于更新传入客户端的模拟数据,以更全面地模拟服务端向客户端下发数据的过程。

示例性的,可以响应于阶段切换指令,更新传入客户端的模拟数据。具体的,在阶段切换模块中,可以在客户端开发人员的调试界面上设置一个用于切换调试阶段的控件,该控件可以是一个按钮,该按钮的操作对应的可以是一个类似于监听服务端数据下发指令的响应函数。一种实施例中,响应于阶段切换指令,可以利用随机数据更新函数将待调试功能模块中第一阶段的模拟数据更新为第二阶段的模拟数据。示例性的,在阶段切换模块中,也可以根据RDU(Random Data Upadte,随机数据更新)函数对生成限制范围内的随机数据进行更新,示例性的,对于给定的功能模块名称和对应的数据协议如A功能模块,可以对A功能模块中各个阶段的模拟数据进行更新。响应于阶段切换指令,可以通过按钮和RDU函数更新代码工程中存放的模拟数据,如可以将A功能模块中第一阶段的模拟数据更新为第二阶段的模拟数据,并利用更新后的模拟数据对A功能模块进行第二阶段调试。其中,使用RDU函数更新模拟数据时,可以快速的模拟出服务端下发数据的特性,进而可以提高软件调试的效率。在软件调试效率要求不高或者服务端下发的数据有特定限制范围的应用场景中,也可以通过手动输入或者利用其他随机数生成工具来完成。另外,其他示例中,也可以将每个阶段的模拟数据写死在阶段切换模块的响应事件函数中。

参考图7所示,A功能模块是当前业务功能的启动模块,如可以是语音直播软件的“语音公会”功能模块。其中,图7A、图7B和图7C分别表示该功能模块的不同阶段,如图7A可以表示该功能模块中的海选战阶段,该阶段的显示界面中,参与海选的用户拥有的直播币均为0,初始可以获得平台奖励的200值直播金币;图7B可以表示该功能模块中的掠夺战阶段,该阶段的显示界面中,参与的两个用户可以在规定时间内进行比拼,以赢取对方的直播金币;图7C可以表示该功能模块中的掠夺战结算阶段,即掠夺战的结果展示阶段,掠夺战结束后,用户拥有的直播金币低于晋级预设的金币数值,该用户被淘汰。从整个代码工程的基础框架下的数据展示效果中可以看出,代码调试工具中没有阶段切换模块时,每次调试运行该代码工程时只能显示一次的静态界面,如可以分别显示图7A、图7B和图7C。在代码工程中加入该阶段切换模块后,通过点击代码调试工具上的“下一步”按钮,可以切换到下一个阶段以进行展示,可以将服务器的数据阶段切换进行完整的模拟。可以理解的是,当点击如图7A中所示的“下一步”按钮,可以将海选战阶段切换为掠夺战阶段,以及当点击如图7B中所示的“下一步”按钮,可以将掠夺战阶段切换为掠夺战的结果展示阶段。

本示例中,在代码调试工具展示数据结果时,可以将阶段切换模块加入该代码调试工具的运行流程中。在对客户端软件的调试过程中,可以通过阶段切换按钮来模拟服务端给客户端下发不同状态时的随机数据,用于验证不同数据的客户端表现效果,更好地模拟了服务端下发数据的过程。通过模拟服务端下发广播数据验证信息展示的准确性,与两端设定好的数据协议一一对应,无需改动业务代码,可以帮助客户端模拟整个开发过程,达到快速开发软件的目的。

一种示例实施方式中,可以通过调整功能模块标识和对应的数据协议对不同的功能模块进行调试。例如,可以将整个调试工具模块化嵌入需要调试的业务功能中,并根据功能名以及两端所定协议修改对应的参数,直接运行模块化后的工具便可直观展示客户端对应部分的运行结果。示例性的,在对A功能模块调试完成后,可以调整代码工程中的功能名称以及对应的数据协议,可以调整为对X功能模块进行调试。因此,该代码调试工具可以适配于客户端中所有的功能模块,针对不同的功能模块只需要调整对应的启动参数如功能名称和数据协议,并且可以覆盖调试业务需求的所有数据协议,爬取数据时并不是仅爬取一条数据协议的数据,而是考虑了所有数据阶段的情况。

在本公开示例实施方式所提供的客户端软件调试方法中,通过将客户端软件中待调试功能模块的启动项添加至初始代码中;根据所述待调试功能模块的启动参数,模拟当前调试阶段服务端向客户端发送的测试数据,得到模拟数据;调用所述初始代码中所述待调试功能模块的启动项,将所述模拟数据发送至所述待调试功能模块进行第一阶段调试;响应于阶段切换指令,更新所述初始代码中的所述模拟数据,并利用更新后的模拟数据对所述待调试功能模块进行第二阶段调试。在客户端软件的调试过程中,一方面,只需要启动待调试的功能模块,可以有效减少程序启动所需的响应时长;另一方面,不依赖服务端的开发进度,通过模拟服务端向客户端下发数据,可以减少等待服务端下发数据的时间,进而提高软件开发效率;再一方面,通过模拟服务端向客户端下发的不同阶段的数据,可以实现整个开发过程的模拟,进一步提高软件开发效率。

应当注意,尽管在附图中以特定顺序描述了本公开中方法的各个步骤,但是,这并非要求或者暗示必须按照该特定顺序来执行这些步骤,或是必须执行全部所示的步骤才能实现期望的结果。附加的或备选的,可以省略某些步骤,将多个步骤合并为一个步骤执行,以及/或者将一个步骤分解为多个步骤执行等。

进一步的,本示例实施方式中,还提供了一种客户端软件调试装置。该装置可以应用于一服务器或终端设备。参考图8所示,该客户端软件调试装置800可以包括启动项添加单元810、测试数据模拟单元820、模拟数据发送单元830以及模拟数据更新单元840,其中:

启动项添加单元810,用于将客户端软件中待调试功能模块的启动项添加至初始代码中,所述初始代码用于对所述客户端软件中的各功能模块进行调试;

测试数据模拟单元820,用于根据所述待调试功能模块的启动参数,模拟当前调试阶段服务端向客户端发送的测试数据,得到模拟数据;

模拟数据发送单元830,用于调用所述初始代码中所述待调试功能模块的启动项,将所述模拟数据发送至所述待调试功能模块进行第一阶段调试;

模拟数据更新单元840,用于响应于阶段切换指令,更新所述初始代码中的所述模拟数据,并利用更新后的模拟数据对所述待调试功能模块进行第二阶段调试。

在一种可选的实施方式中,启动项添加单元810包括:

架构调用子单元,用于引入所述初始代码的启动接口,并调用所述初始代码的基础架构;

启动项添加子单元,用于将所述客户端软件中待调试功能模块的启动项通过所述启动接口添加至所述基础架构的启动管理模块中。

在一种可选的实施方式中,测试数据模拟单元820包括:

测试数据获取子单元,用于利用网页爬虫脚本获取所述服务端向客户端发送的测试数据;

数据模拟子单元,用于根据所述待调试功能模块的数据协议模拟所述测试数据,得到所述待调试功能模块中当前调试阶段的模拟数据。

在一种可选的实施方式中,数据模拟单元被配置为:用于按照所述数据协议中的数据格式,将所述测试数据在所述初始代码的数据功能函数中进行赋值。

在一种可选的实施方式中,模拟数据发送单元830包括:

模拟数据获取子单元,用于获取与所述待调试功能模块的数据协议标识对应的模拟数据;

数据发送子单元,用于调用所述初始代码中所述待调试功能模块的启动项,将所述模拟数据发送至所述待调试功能模块中,以对所述待调试功能模块进行第一阶段调试。

在一种可选的实施方式中,模拟数据更新单元840被配置为:用于响应于所述阶段切换指令,利用随机数据更新函数将所述待调试功能模块中第一阶段的模拟数据更新为第二阶段的模拟数据。

在一种可选的实施方式中,客户端软件调试装置800还被配置为:用于通过调整功能模块标识和对应的数据协议对不同的功能模块进行调试。

上述客户端软件调试装置中各模块的具体细节已经在对应的客户端软件调试方法中进行了详细的描述,因此此处不再赘述。

应当注意,尽管在上文详细描述中提及了用于动作执行的设备的若干模块或者单元,但是这种划分并非强制性的。实际上,根据本公开的实施方式,上文描述的两个或更多模块或者单元的特征和功能可以在一个模块或者单元中具体化。反之,上文描述的一个模块或者单元的特征和功能可以进一步划分为由多个模块或者单元来具体化。

应当理解的是,本公开并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本公开的范围仅由所附的权利要求来限制。

相关技术
  • 客户端软件调试方法、装置、存储介质及电子设备
  • 服务调试方法、调试服务、电子设备及计算机存储介质
技术分类

06120112941961