生成逻辑示意图的方法及装置、计算机可存储介质
技术领域
本公开涉及计算机技术领域,特别涉及生成逻辑示意图的方法及装置、计算机可存储介质。
背景技术
当客户端研发人员需要向产品人员、测试人员或研发交接人讲解代码实现逻辑时,通常会使用口述方式或文档方式。采用口述方式讲解,存在描述不清的问题。采用文档方式讲解,存在文档编写耗时、文档冗长不易理解且更新不及时的问题。
相关技术中,通过人工方式绘制逻辑示意图,以逻辑示意图的方式进行讲解。
发明内容
发明人认为:相关技术中,绘制逻辑示意图的人力成本大,效率低。
针对上述技术问题,本公开提出了一种解决方案,减少了人力成本,提高了绘制逻辑示意图的效率。
根据本公开的第一方面,提供了一种生成逻辑示意图的方法,包括:在利用测试用例运行客户端的情况下,顺序获取所述客户端的代码的至少一条逻辑位置信息,其中,每条逻辑位置信息包括逻辑位置标识、所述逻辑位置标识的前一逻辑位置标识,所述逻辑位置标识的前一逻辑位置标识根据获取顺序确定;根据所述至少一条逻辑位置信息,自动生成所述客户端的代码的逻辑示意图。
在一些实施例中,所述至少一条逻辑位置信息由所述客户端利用所述客户端的参数输出模块顺序输出。
在一些实施例中,生成逻辑示意图的方法还包括:对所述至少一条逻辑位置信息进行预处理,所述预处理包括去重和合并的至少一种。
在一些实施例中,根据所述至少一条逻辑位置信息,自动生成所述客户端的代码的逻辑示意图包括:获取前一逻辑位置标识为空的一个逻辑位置标识,作为当前逻辑示意图的起始节点;获取除起始节点以外的其他逻辑位置标识;根据所述其他逻辑位置标识,确定所述起始节点的后续节点。
在一些实施例中,所述当前逻辑示意图包括第i节点,i为正整数,根据所述其他逻辑位置标识,确定所述起始节点的后续节点包括:从所述其他逻辑位置标识中,查找前一逻辑位置标识为所述第i节点的至少一个逻辑位置标识,作为第i+1节点,其中,第1节点为起始节点;利用箭头连接所述第i节点和每个第i+1节点,并由所述第i节点指向每个第i+1节点。
在一些实施例中,根据所述其他逻辑位置标识,确定所述起始节点的后续节点还包括:对于每个第i+1节点,获取除所述第i节点以外的其他前一逻辑位置标识,作为所述每个第i+1节点的前一节点;利用箭头连接所述每个i+1节点和所述每个i+1节点的前一节点,并由所述前一节点指向所述每个i+1节点。
在一些实施例中,生成逻辑示意图的方法还包括:在所述当前逻辑示意图中,为任意两个逻辑位置标识之间的箭头建立索引,所述索引用于在鼠标悬浮或者点击所述箭头的情况下,从所述客户端获取所述任意两个逻辑位置标识之间的客户端的代码,并显示于指定对话框。
在一些实施例中,每条逻辑位置信息还包括附加信息,所述附加信息包括备注信息、逻辑位置所在类名、逻辑位置所在包名、和逻辑位置于所在类的代码行数中的至少一种,自动生成所述客户端的代码的逻辑示意图还包括:对于每个逻辑位置标识,在鼠标悬浮或点击所述每个逻辑位置标识的情况下,将所述附加信息写入指定对话框,并显示所述指定对话框。
在一些实施例中,生成逻辑示意图的方法还包括:监控每条逻辑位置信息,在所述每条逻辑位置信息变化的情况下,更新所述逻辑示意图。
在一些实施例中,生成逻辑示意图的方法还包括:在存在多个客户端的情况下,为每个客户端分配一个客户端标识;存储客户端标识和逻辑位置信息的对应关系。
根据本公开第二方面,提供了一种生成逻辑示意图的装置,包括:获取模块,被配置为在利用测试用例运行客户端的情况下,顺序获取所述客户端的代码的至少一条逻辑位置信息,其中,每条逻辑位置信息包括逻辑位置标识、所述逻辑位置标识的前一逻辑位置标识,所述逻辑位置标识的前一逻辑位置标识根据获取顺序确定;生成模块,被配置为根据所述至少一条逻辑位置信息,自动生成所述客户端的代码的逻辑示意图。
根据本公开的第三方面,提供了一种生成逻辑示意图的装置,包括:存储器;以及耦接至所述存储器的处理器,所述处理器被配置为基于存储在所述存储器的指令,执行上述任一实施例所述的生成逻辑示意图的方法。
根据本公开的第四方面,提供了一种生成逻辑示意图的系统,包括:客户端,被配置为在利用测试用例运行客户端的情况下,顺序输出所述客户端的代码的至少一条逻辑位置信息,其中,每条逻辑位置信息包括逻辑位置标识、所述逻辑位置标识的前一逻辑位置标识,所述逻辑位置标识的前一逻辑位置标识根据输出顺序确定;服务器,被配置为顺序获取所述客户端的代码的至少一条逻辑位置信息,并根据所述至少一条逻辑位置信息,自动生成所述客户端的代码的逻辑示意图。
根据本公开的第五方面,提供了一种计算机可存储介质,其上存储有计算机程序指令,该指令被处理器执行时实现上述任一实施例所述的生成逻辑示意图的方法。
在上述实施例中,减少了人力成本,提高了绘制逻辑示意图的效率。
附图说明
构成说明书的一部分的附图描述了本公开的实施例,并且连同说明书一起用于解释本公开的原理。
参照附图,根据下面的详细描述,可以更加清楚地理解本公开,其中:
图1示出根据本公开一些实施例的生成逻辑示意图的方法的流程图;
图2示出根据本公开一些实施例的生成逻辑示意图的装置的框图;
图3示出根据本公开一些实施例的生成逻辑示意图的装置的框图;
图4示出根据本公开一些实施例的生成逻辑示意图的系统的框图;
图5示出用于实现本公开一些实施例的计算机系统的框图。
具体实施方式
现在将参照附图来详细描述本公开的各种示例性实施例。应注意到:除非另外具体说明,否则在这些实施例中阐述的部件和步骤的相对布置、数字表达式和数值不限制本公开的范围。
同时,应当明白,为了便于描述,附图中所示出的各个部分的尺寸并不是按照实际的比例关系绘制的。
以下对至少一个示例性实施例的描述实际上仅仅是说明性的,决不作为对本公开及其应用或使用的任何限制。
对于相关领域普通技术人员已知的技术、方法和设备可能不作详细讨论,但在适当情况下,所述技术、方法和设备应当被视为说明书的一部分。
在这里示出和讨论的所有示例中,任何具体值应被解释为仅仅是示例性的,而不是作为限制。因此,示例性实施例的其它示例可以具有不同的值。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步讨论。
当客户端研发人员需要讲解代码实现逻辑时,通常会使用以下几种方式。口述方式、文档方式或人工绘制逻辑示意图的方式。讲解对象可能是产品,测试,研发交接人。采用口述方式讲解,存在描述不清的问题。采用文档方式讲解,存在文档编写耗时、文档冗长不易理解且更新不及时的问题。采用人工绘制逻辑示意图的方式讲解,同样存在耗时、更新不及时问题,且无法快速准确指出逻辑节点代码位置。
图1示出根据本公开一些实施例的生成逻辑示意图的方法的流程图。
如图1所示,生成逻辑示意图的方法包括步骤S110-步骤S120。
在步骤S110中,在利用测试用例运行客户端的情况下,顺序获取客户端的代码的至少一条逻辑位置信息。其中,每条逻辑位置信息包括逻辑位置标识、逻辑位置标识的前一逻辑位置标识,逻辑位置标识的前一逻辑位置标识根据获取顺序确定。客户端例如为基于Android、iOS或者HTML5的应用。逻辑位置标识例如为逻辑位置A、逻辑位置B或者逻辑位置1、逻辑位置2。
在一些实施例中,至少一条逻辑位置信息由客户端利用客户端的参数输出模块顺序输出。
例如,参数输出模块为SDK(Software Development Kit,软件开发工具包)。客户端内集成SDK,即客户端开发人员在编写客户端代码的同时,在关键逻辑位置部分嵌入SDK。SDK为程序开发人员编写。
例如,SDK包括记录方法recordPoint。在客户端代码运行至某一记录方法的代码时,调用该记录方法输出与该记录方法对应的当前逻辑位置信息的参数。例如,记录方法的参数也是当前逻辑位置信息的参数。记录方法的参数可以为多个。
例如,软件开发者可以在写代码时候自主判断或设定关键逻辑代码位置并进行标注。在一些实施例中,一客户端的代码为:
在上述信息收集过程中,一个条件判断需要记录三个逻辑位置标识point_A、point_B和point_C,其中point_A为逻辑判断,point_B和point_C为两种条件下分别进入不同的逻辑分支。RecordPoint的第一个参数为逻辑位置标识,第二个参数为备注信息。
在一些实施例中,在客户端开发人员在客户端的代码中调用了记录方法,但是忘记写明参数的情况下,自动生成与已有的逻辑位置标识不同的逻辑位置标识。
在步骤S120中,根据至少一条逻辑位置信息,自动生成客户端的代码的逻辑示意图。
例如,通过如下方式实现根据至少一条逻辑位置信息,自动生成客户端的代码的逻辑示意图。
首先,获取前一逻辑位置标识为空的一个逻辑位置标识,作为当前逻辑示意图的起始节点。例如,当前逻辑示意图生成于空白画布。当前逻辑示意图的起始节点用矩形框表示,在矩形框内写入逻辑位置标识。在一些实施例中,在存在多个前一逻辑位置标识为空的逻辑位置标识的情况下,每一个前一逻辑位置标识为空的逻辑位置标识作为每个逻辑示意图的起始节点,并对每个逻辑示意图执行后续步骤。
然后,获取除起始节点以外的其他逻辑位置标识。
最后,根据其他逻辑位置标识,确定起始节点的后续节点。例如,每个流程如的后续节点也用矩形框表示,在矩形框内写入逻辑位置标识。在一些实施例中,对于当前逻辑示意图的起始节点和后续节点在画布中的位置,可以通过位置坐标设置,从而避免节点之间的重合。
例如,当前逻辑示意图包括第i节点,i为正整数。通过如下方式实现根据其他逻辑位置标识,确定起始节点的后续节点。
首先,从其他逻辑位置标识中,查找前一逻辑位置标识为第i节点的至少一个逻辑位置标识,作为第i+1节点,其中,第1节点为起始节点;
然后,利用箭头连接第i节点和每个第i+1节点,并由第i节点指向每个第i+1节点。
在一些实施例中,根据其他逻辑位置标识,确定起始节点的后续节点还包括如下步骤。
首先,对于每个第i+1节点,获取除第i节点以外的其他前一逻辑位置标识,作为每个第i+1节点的前一节点。
然后,利用箭头连接每个i+1节点和每个i+1节点的前一节点,并由前一节点指向每个i+1节点。在一些实施例中,生成逻辑示意图的方法还包括如下步骤。
在当前逻辑示意图中,为任意两个逻辑位置标识之间的箭头建立索引,索引用于在鼠标悬浮或者点击所述箭头的情况下,从客户端获取任意两个逻辑位置标识之间的客户端的代码,并显示于指定对话框。
在一些实施例中,每条逻辑位置信息还包括附加信息。附加信息包括备注信息、逻辑位置所在类名、逻辑位置所在包名、和逻辑位置于所在类的代码行数中的至少一种。自动生成客户端的代码的逻辑示意图还包括如下步骤。
对于每个逻辑位置标识,在鼠标悬浮或点击每个逻辑位置标识的情况下,将所述附加信息写入指定对话框,并显示指定对话框。
在一些实施例中,生成逻辑示意图的方法还包括如下步骤。监控每条逻辑位置信息,在每条逻辑位置信息变化的情况下,更新逻辑示意图。例如,根据更新后的逻辑位置信息,更新逻辑示意图。通过监控逻辑位置信息的变化对逻辑示意图进行更新的方式,实现逻辑示意图的自动更新且更新更加及时。
在一些实施例中,生成逻辑示意图的方法还包括如下步骤。
首先,在存在多个客户端的情况下,为每个客户端分配一个客户端标识。
然后,存储客户端标识和逻辑位置信息的对应关系。
通过为每个客户端分配一个客户端标识的方式,可以避免多个客户端之间的逻辑位置信息混乱。
本公开通过输出客户端的代码的逻辑位置信息,自动生成该客户端的代码的逻辑示意图,减少了人力成本,提高了绘制逻辑示意图的效率。本公开占用研发人员时间短,有效节约研发时间,快速准确定位关键代码位置信息,有效提升工作效率。
图2示出根据本公开一些实施例的生成逻辑示意图的装置的框图。
如图2所示,生成逻辑示意图的装置2包括获取模块21和生成模块22。
获取模块21被配置为在利用测试用例运行客户端的情况下,顺序获取客户端的代码的至少一条逻辑位置信息,其中,每条逻辑位置信息包括逻辑位置标识、逻辑位置标识的前一逻辑位置标识,逻辑位置标识的前一逻辑位置标识根据获取顺序确定,例如执行如图1所示的步骤S110。例如,可以利用存储装置存储至少一条逻辑位置信息。
生成模块22被配置为根据至少一条逻辑位置信息,自动生成客户端的代码的逻辑示意图,例如执行如图1所示的步骤S120。
图3示出根据本公开一些实施例的生成逻辑示意图的装置的框图。
如图3所示,生成逻辑示意图的装置3包括存储器31;以及耦接至该存储器31的处理器32,存储器31用于存储执行生成逻辑示意图的方法对应实施例的指令。处理器32被配置为基于存储在存储器31中的指令,执行本公开中任意一些实施例中的生成逻辑示意图的方法。
图4示出根据本公开一些实施例的生成逻辑示意图的系统的框图。
如图4所示,生成逻辑示意图的系统4包括客户端41、和服务器42。
客户端41被配置为在利用测试用例运行客户端的情况下,顺序输出客户端的代码的至少一条逻辑位置信息,其中,每条逻辑位置信息包括逻辑位置标识、逻辑位置标识的前一逻辑位置标识,逻辑位置标识的前一逻辑位置标识根据输出顺序确定。在一些实施例中,客户端内部集成参数输出模块。客户端的代码的至少一条逻辑位置信息由客户端利用客户端的参数输出模块顺序输出。
服务器42被配置为顺序获取客户端的代码的至少一条逻辑位置信息,并根据至少一条逻辑位置信息,自动生成客户端的代码的逻辑示意图,例如执行如图1所示的步骤S110-步骤S120。
图5示出用于实现本公开一些实施例的计算机系统的框图。
如图5所示,计算机系统50可以通用计算设备的形式表现。计算机系统50包括存储器510、处理器520和连接不同系统组件的总线500。
存储器510例如可以包括系统存储器、非易失性存储介质等。系统存储器例如存储有操作系统、应用程序、引导装载程序(Boot Loader)以及其他程序等。系统存储器可以包括易失性存储介质,例如随机存取存储器(RAM)和/或高速缓存存储器。非易失性存储介质例如存储有执行生成逻辑示意图的方法中的至少一种的对应实施例的指令。非易失性存储介质包括但不限于磁盘存储器、光学存储器、闪存等。
处理器520可以用通用处理器、数字信号处理器(DSP)、应用专用集成电路(ASIC)、现场可编程门阵列(FPGA)或其它可编程逻辑设备、分立门或晶体管等分立硬件组件方式来实现。相应地,诸如判断模块和确定模块的每个模块,可以通过中央处理器(CPU)运行存储器中执行相应步骤的指令来实现,也可以通过执行相应步骤的专用电路来实现。
总线500可以使用多种总线结构中的任意总线结构。例如,总线结构包括但不限于工业标准体系结构(ISA)总线、微通道体系结构(MCA)总线、外围组件互连(PCI)总线。
计算机系统50还可以包括输入输出接口530、网络接口540、存储接口550等。这些接口530、540、550以及存储器55和处理器520之间可以通过总线500连接。输入输出接口530可以为显示器、鼠标、键盘等输入输出设备提供连接接口。网络接口540为各种联网设备提供连接接口。存储接口550为软盘、U盘、SD卡等外部存储设备提供连接接口。
这里,参照根据本公开实施例的方法、装置和计算机程序产品的流程图和/或框图描述了本公开的各个方面。应当理解,流程图和/或框图的每个框以及各框的组合,都可以由计算机可读程序指令实现。
这些计算机可读程序指令可提供到通用计算机、专用计算机或其他可编程装置的处理器,以产生一个机器,使得通过处理器执行指令产生实现在流程图和/或框图中一个或多个框中指定的功能的装置。
这些计算机可读程序指令也可存储在计算机可读存储器中,这些指令使得计算机以特定方式工作,从而产生一个制造品,包括实现在流程图和/或框图中一个或多个框中指定的功能的指令。
本公开可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。
通过上述实施例中的生成逻辑示意图的方法及装置、计算机可存储介质,减少了人力成本,提高了绘制逻辑示意图的效率。
至此,已经详细描述了根据本公开的生成逻辑示意图的方法及装置、计算机可存储介质。为了避免遮蔽本公开的构思,没有描述本领域所公知的一些细节。本领域技术人员根据上面的描述,完全可以明白如何实施这里公开的技术方案。