CN111597069B - 程序处理方法、装置、电子设备和存储介质 - Google Patents

程序处理方法、装置、电子设备和存储介质 Download PDF

Info

Publication number
CN111597069B
CN111597069B CN202010438744.7A CN202010438744A CN111597069B CN 111597069 B CN111597069 B CN 111597069B CN 202010438744 A CN202010438744 A CN 202010438744A CN 111597069 B CN111597069 B CN 111597069B
Authority
CN
China
Prior art keywords
module
database request
source code
request module
application program
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.)
Active
Application number
CN202010438744.7A
Other languages
English (en)
Other versions
CN111597069A (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.)
Industrial and Commercial Bank of China Ltd ICBC
Original Assignee
Industrial and Commercial Bank of China Ltd ICBC
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 Industrial and Commercial Bank of China Ltd ICBC filed Critical Industrial and Commercial Bank of China Ltd ICBC
Priority to CN202010438744.7A priority Critical patent/CN111597069B/zh
Publication of CN111597069A publication Critical patent/CN111597069A/zh
Application granted granted Critical
Publication of CN111597069B publication Critical patent/CN111597069B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/079Root cause analysis, i.e. error or fault diagnosis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2455Query execution
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • G06F8/71Version control; Configuration management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Databases & Information Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Health & Medical Sciences (AREA)
  • Biomedical Technology (AREA)
  • Quality & Reliability (AREA)
  • Computer Security & Cryptography (AREA)
  • Computational Linguistics (AREA)
  • Stored Programmes (AREA)

Abstract

本公开提供了一种程序处理方法,包括:获取目标应用程序的数据库请求模块的固有标识,其中,固有标识是在编译数据库请求模块时生成的;根据固有标识确定数据库请求模块和目标应用程序的可执行逻辑主模块是否匹配;以及在数据库请求模块和可执行逻辑主模块匹配的情况下,根据固有标识从版本信息表中查找目标应用程序的源码版本,其中,版本信息表中包括固有标识和源码版本的对应关系。本公开还提供了一种程序处理装置、一种电子设备和一种计算机可读存储介质。

Description

程序处理方法、装置、电子设备和存储介质
技术领域
本公开涉及计算机技术领域,更具体地,涉及一种程序处理方法、一种程序处理装置、一种电子设备和一种计算机可读存储介质。
背景技术
大型主机(Mainframe)使用专用的硬件设备及软件系统,保持其高稳定性和安全性,在金融领域应用广泛。
如果大型主机中的应用程序在运行过程中出现故障,为了定位故障,需要找到该故障应用程序对应的源代码版本(也可以简称为源码版本)。
在相关技术中,一般的版本标识方法包括软件包版本标识方法、程序时间戳或者校验值标识方法和标签注入标识方法。
其中,软件包版本标识方法是指给软件包添加版本标识,通过查找软件包部署记录,定位运行环境的源码版本。在实现本公开构思的过程中,发明人发现由于软件包版本标识并非应用程序实体的固有属性,该方法在软件包进行多次拆分、合并、分发后,软件包标识已经难以和应用程序实体的版本准确匹配。例如,软件包P1包含程序A、B、C,软件包P2包含程序A、C、D,软件包P3包含程序C、E。软件包P1和P2合并为软件包P4后,软件包P4包含了A、B、C、D程序,对于软件包P4的程序C,通过软件包P4的软件包版本标识无法直接定位程序C是来源于P1还是P2还是P3,经过多次测试迭代到Pn后,难以追溯软件包Pn中程序C的版本源;并且,如果运行环境某个应用程序临时手工替换或者回退,通过软件包标识将不能定位到正确的源码版本。
程序时间戳或者校验值标识方法是指获取应用程序实体执行模块的时间戳或者计算其校验值(如MD5值等),记录时间戳或者校验值和源码版本的关系。在实现本公开构思的过程中,发明人发现由于运行环境的差异,执行模块的校验值会发生变化,并且重新打包分发以及目标码指令优化等操作会导致执行模块的时间戳发生变化,校验值和时间戳均无法准确定位标识应用程序版本。
标签注入标识方法是指编译前在源代码注入特定标签,通过在执行模块搜索该特定标签定位源码版本。在实现本公开构思的过程中,发明人发现如果采用人为注入标签,难以保证唯一性,如果采用工具自动注入标签,篡改了源代码,存在一定的运行风险。
因此,对于大型主机应用程序的源码版本的追溯,一般的版本标识方法难以满足要求。
发明内容
有鉴于此,本公开提供了一种程序处理方法、一种程序处理装置、一种电子设备和一种计算机可读存储介质。
本公开的一个方面提供了一种程序处理方法,包括:获取目标应用程序的数据库请求模块的固有标识,其中,上述固有标识是在编译上述数据库请求模块时生成的;根据上述固有标识确定上述数据库请求模块和上述目标应用程序的可执行逻辑主模块是否匹配;以及在上述数据库请求模块和上述可执行逻辑主模块匹配的情况下,根据上述固有标识从版本信息表中查找上述目标应用程序的源码版本,其中,上述版本信息表中包括上述固有标识和上述源码版本的对应关系。
根据本公开的实施例,上述目标应用程序包括故障应用程序,上述方法还包括:根据上述固有标识获取上述故障应用程序的编译列表文件;获取上述故障应用程序的目标码异常位置;以及根据上述目标码异常位置从上述编译列表文件中确定异常语句对应的源码行号;以及根据上述异常语句对应的源码行号和上述源码版本,确定异常的源码内容。
根据本公开的实施例,上述根据上述固有标识确定上述数据库请求模块和上述目标应用程序的可执行逻辑主模块是否匹配包括:将上述固有标识进行序列化,得到第一序列化值;将上述可执行逻辑主模块进行序列化,得到第二序列化值;以及根据上述第一序列化值和上述第二序列化值确定上述数据库请求模块和上述可执行逻辑主模块是否匹配。
根据本公开的实施例,上述根据上述第一序列化值和上述第二序列化值确定上述数据库请求模块和上述可执行逻辑主模块是否匹配包括:将上述第一序列化值拆分为第一子序列化值和第二子序列化值;将上述第一子序列化值和上述第二子序列化值的位置进行反转后,得到第三序列化值;以及确定上述第二序列化值中是否包含上述第三序列化值,以确定上述数据库请求模块和上述可执行逻辑主模块是否匹配;其中,在上述第二序列化值中包含上述第三序列化值的情况下,确定上述数据库请求模块和上述可执行逻辑主模块匹配;在上述第二序列化值中不包含上述第三序列化值的情况下,确定上述数据库请求模块和上述可执行逻辑主模块不匹配。
根据本公开的实施例,上述获取目标应用程序的数据库请求模块的固有标识包括:读取上述目标应用程序的数据库请求模块;将上述数据库请求模块进行转码,得到转码文件;以及获取上述转码文件的文件头的固定位置的内容,以作为上述固有标识。
本公开的另一个方面提供了一种程序处理装置,包括:标识获取单元,用于获取目标应用程序的数据库请求模块的固有标识,其中,上述固有标识是在编译上述数据库请求模块时生成的;标识匹配单元,用于根据上述固有标识确定上述数据库请求模块和上述目标应用程序的可执行逻辑主模块是否匹配;以及源码查找单元,用于在上述数据库请求模块和上述可执行逻辑主模块匹配的情况下,根据上述固有标识从版本信息表中查找上述目标应用程序的源码版本,其中,上述版本信息表中包括上述固有标识和上述源码版本的对应关系。
根据本公开的实施例,上述目标应用程序包括故障应用程序,上述装置还包括:编译列表获取单元,用于根据上述固有标识获取上述故障应用程序的编译列表文件;异常位置获取单元,用于获取上述故障应用程序的目标码异常位置;以及语句重定位单元,用于根据上述目标码异常位置从上述编译列表文件中确定异常语句对应的源码行号;以及根据上述异常语句对应的源码行号和上述源码版本,确定异常的源码内容。
根据本公开的实施例,上述标识匹配单元用于:将上述固有标识进行序列化,得到第一序列化值;将上述可执行逻辑主模块进行序列化,得到第二序列化值;以及根据上述第一序列化值和上述第二序列化值确定上述数据库请求模块和上述可执行逻辑主模块是否匹配。
根据本公开的实施例,上述标识获取单元用于:读取上述目标应用程序的数据库请求模块;将上述数据库请求模块进行转码,得到转码文件;以及获取上述转码文件的文件头的固定位置的内容,以作为上述固有标识。
本公开的另一方面提供了一种电子设备,包括:一个或多个处理器;存储器,用于存储一个或多个指令,其中,当上述一个或多个指令被上述一个或多个处理器执行时,使得上述一个或多个处理器实现如上所述的方法。
本公开的另一方面提供了一种计算机可读存储介质,存储有计算机可执行指令,所述指令在被执行时用于实现如上所述的方法。
本公开的另一方面提供了一种计算机程序,所述计算机程序包括计算机可执行指令,所述指令在被执行时用于实现如上所述的方法。
根据本公开的实施例,通过获取目标应用程序的数据库请求模块的固有标识,然后,根据固有标识确定数据库请求模块和目标应用程序的可执行逻辑主模块是否匹配,在数据库请求模块和可执行逻辑主模块匹配的情况下,根据固有标识从版本信息表中查找目标应用程序的源码版本。由于根据固有标识确定了数据库请求模块和可执行逻辑主模块是否匹配,该固有标识具有不可破坏性和防伪性,使得可以确保目标应用程序的部署是成功的,在部署成功的情况下,根据数据库请求模块的固有标识从版本信息表中查找目标应用程序的源码版本,可以较为准确的找到目标应用程序的源码版本,所以至少部分地克服了由于项目并行迭代版本众多和执行模块匹配关系难识别导致较难对主机应用程序的源码版本进行的追溯的技术问题,进而达到了较为准确的找到目标应用程序的源码版本的技术效果。
附图说明
通过以下参照附图对本公开实施例的描述,本公开的上述以及其他目的、特征和优点将更为清楚,在附图中:
图1示意性示出了根据本公开实施例的可以应用程序处理方法和装置的示例性系统架构;
图2示意性示出了根据本公开实施例的程序处理方法的流程图;
图3示意性示出了根据本公开另一实施例的程序处理方法的流程图;
图4示意性示出了根据本公开实施例的在应用程序编译时获取版本信息的流程图;
图5示意性示出了根据本公开实施例的版本信息表的示意图;
图6示意性示出了根据本公开实施例的根据第一序列化值和第二序列化值确定数据库请求模块和可执行逻辑主模块是否匹配的流程图;
图7示意性示出了根据本公开实施例的从场景现场溯源追踪源代码的流程图;
图8示意性示出了根据本公开实施例的程序处理装置的框图;
图9示意性示出了根据本公开另一实施例的程序处理装置的框图;以及
图10示意性示出了根据本公开实施例的适于实现上文描述的方法的计算机系统的框图。
具体实施方式
以下,将参照附图来描述本公开的实施例。但是应该理解,这些描述只是示例性的,而并非要限制本公开的范围。在下面的详细描述中,为便于解释,阐述了许多具体的细节以提供对本公开实施例的全面理解。然而,明显地,一个或多个实施例在没有这些具体细节的情况下也可以被实施。此外,在以下说明中,省略了对公知结构和技术的描述,以避免不必要地混淆本公开的概念。
在此使用的术语仅仅是为了描述具体实施例,而并非意在限制本公开。在此使用的术语“包括”、“包含”等表明了所述特征、步骤、操作和/或部件的存在,但是并不排除存在或添加一个或多个其他特征、步骤、操作或部件。
在此使用的所有术语(包括技术和科学术语)具有本领域技术人员通常所理解的含义,除非另外定义。应注意,这里使用的术语应解释为具有与本说明书的上下文相一致的含义,而不应以理想化或过于刻板的方式来解释。
在使用类似于“A、B和C等中至少一个”这样的表述的情况下,一般来说应该按照本领域技术人员通常理解该表述的含义来予以解释(例如,“具有A、B和C中至少一个的系统”应包括但不限于单独具有A、单独具有B、单独具有C、具有A和B、具有A和C、具有B和C、和/或具有A、B、C的系统等)。在使用类似于“A、B或C等中至少一个”这样的表述的情况下,一般来说应该按照本领域技术人员通常理解该表述的含义来予以解释(例如,“具有A、B或C中至少一个的系统”应包括但不限于单独具有A、单独具有B、单独具有C、具有A和B、具有A和C、具有B和C、和/或具有A、B、C的系统等)。
根据本公开的实施例,将大型主机单个应用程序的源代码编译成包含两个执行模块的目标码,分别是可执行逻辑主模块(Load Module,以下简称为LOAD)和数据库请求模块(Database Request Module,以下简称为DBRM)。LOAD模块包含了将应用程序的逻辑代码编译出来的目标码,不包含数据库访问语句,DBRM模块包含了应用程序访问数据库的语句。
LOAD模块和DBRM模块均带有版本信息,应用程序同一次编译出来的LOAD模块和DBRM模块版本一致。对于单个应用程序,只有在同一次编译出来的LOAD模块和DBRM模块才能相互匹配。如果应用程序在运行过程中出现故障,异常信息一般只包含异常语句所在目标码的位置(offset偏移量),为了进一步定位问题,需要核对故障应用程序当前运行的两个执行模块是否匹配,并找到该故障应用程序对应的源代码版本以及报错语句。
由于应用程序实体执行模块的文件校验值在不同的运行环境有差异,使用文件校验值一般无法准确标记执行模块的版本。此外,相同版本的LOAD模块和DBRM模块由于生成时间有差异,导致两个模块的时间戳不一致,并且LOAD模块在进行指令优化后时间戳也会改变,使用时间戳难以准确标记应用程序的版本,一般也无法将同一版本两个执行模块进行匹配关联。
由于项目并行迭代版本众多、执行模块匹配关系难识别、目标码语句位置和源代码行号对应关系不明显等原因,人为分析和操作难度大。
本公开的实施例提供了一种程序处理方法和装置。该方法包括:获取目标应用程序的数据库请求模块的固有标识,其中,固有标识是在编译数据库请求模块时生成的;根据固有标识确定数据库请求模块和目标应用程序的可执行逻辑主模块是否匹配;以及在数据库请求模块和可执行逻辑主模块匹配的情况下,根据固有标识从版本信息表中查找目标应用程序的源码版本,其中,版本信息表中包括固有标识和源码版本的对应关系。
图1示意性示出了根据本公开实施例的可以应用程序处理方法和装置的示例性系统架构。需要注意的是,图1所示仅为可以应用本公开实施例的系统架构的示例,以帮助本领域技术人员理解本公开的技术内容,但并不意味着本公开实施例不可以用于其他设备、系统、环境或场景。
如图1所示,根据该实施例的系统架构100可以包括终端设备101、102、103,网络104和服务器105。网络104用以在终端设备101、102、103和服务器105之间提供通信链路的介质。网络104可以包括各种连接类型,例如有线和/或无线通信链路等等。
用户可以使用终端设备101、102、103通过网络104与服务器105交互,以接收或发送消息等。终端设备101、102、103上可以安装有各种通讯客户端应用,例如购物类应用、网页浏览器应用、搜索类应用、即时通信工具、邮箱客户端和/或社交平台软件等(仅为示例)。
终端设备101、102、103可以是具有显示屏并且支持网页浏览的各种电子设备,包括但不限于智能手机、平板电脑、膝上型便携计算机和台式计算机等等。
服务器105可以是提供各种服务的服务器,例如对用户利用终端设备101、102、103所浏览的网站提供支持的后台管理服务器(仅为示例)。后台管理服务器可以对接收到的用户请求等数据进行分析等处理,并将处理结果(例如根据用户请求获取或生成的网页、信息、或数据等)反馈给终端设备。
需要说明的是,本公开实施例所提供的程序处理方法一般可以由服务器105执行。相应地,本公开实施例所提供的程序处理装置一般可以设置于服务器105中。本公开实施例所提供的程序处理方法也可以由不同于服务器105且能够与终端设备101、102、103和/或服务器105通信的服务器或服务器集群执行。相应地,本公开实施例所提供的程序处理装置也可以设置于不同于服务器105且能够与终端设备101、102、103和/或服务器105通信的服务器或服务器集群中。或者,本公开实施例所提供的程序处理方法也可以由终端设备101、102、或103执行,或者也可以由不同于终端设备101、102、或103的其他终端设备执行。相应地,本公开实施例所提供的程序处理装置也可以设置于终端设备101、102、或103中,或设置于不同于终端设备101、102、或103的其他终端设备中。
应该理解,图1中的终端设备、网络和服务器的数目仅仅是示意性的。根据实现需要,可以具有任意数目的终端设备、网络和服务器。
图2示意性示出了根据本公开实施例的程序处理方法的流程图。
如图2所示,该方法包括操作S210~S230。
在操作S210,获取目标应用程序的数据库请求模块的固有标识,其中,该固有标识是在编译数据库请求模块时生成的。
根据本公开的实施例,该目标应用程序可以是在主机中运行的任意一个应用程序。每个应用程序可以包括可执行逻辑主模块和数据库请求模块。
根据本公开的实施例,获取目标应用程序的数据库请求模块的固有标识包括:读取目标应用程序的数据库请求模块;将数据库请求模块进行转码,得到转码文件;以及获取转码文件的文件头的固定位置的内容,以作为固有标识。
根据本公开的实施例,例如,可以将数据库请求模块转为十六进制码,将转码文件的文件头的固定位置的内容,以作为固有标识。该固定位置的内容在数据库请求模块迭代更新的过程中一般不会发生变化。
在操作S220,根据固有标识确定数据库请求模块和目标应用程序的可执行逻辑主模块是否匹配。
根据本公开的实施例,可以将目标应用程序的目标码执行逻辑存放于可执行逻辑主模块(即LOAD模块),由于LOAD模块使用的一般是主机专用的目标码格式,无法识别其内部结构,采用传统的时间戳、文件校验值、代码打标识方法均难以正确唯一标识,因此难以识别和标记LOAD模块。本公开的实施例通过获取数据库请求模块(即DBRM模块)的固有标识(即consistency-token,简称CONTOKEN标识),该固有标识具有不可破坏性和防伪性,反向定位正确的LOAD模块,从而实现标识合一。
在操作S230,在数据库请求模块和可执行逻辑主模块匹配的情况下,根据固有标识从版本信息表中查找目标应用程序的源码版本,其中,版本信息表中包括固有标识和源码版本的对应关系。
根据本公开的实施例,如果数据库请求模块和可执行逻辑主模块不匹配,表明该目标应用程序没有部署成功,需要版本部署人员介入,检查目标应用程序在版本部署过程中出现的故障,重新部署正确的应用程序版本,以修复这个故障。
根据本公开的实施例,通过获取目标应用程序的数据库请求模块的固有标识,然后,根据固有标识确定数据库请求模块和目标应用程序的可执行逻辑主模块是否匹配,在数据库请求模块和可执行逻辑主模块匹配的情况下,根据固有标识从版本信息表中查找目标应用程序的源码版本。由于根据固有标识确定了数据库请求模块和可执行逻辑主模块是否匹配,该固有标识具有不可破坏性和防伪性,使得可以确保目标应用程序的部署是成功的,在部署成功的情况下,根据数据库请求模块的固有标识从版本信息表中查找目标应用程序的源码版本,可以较为准确的找到目标应用程序的源码版本,所以至少部分地克服了由于项目并行迭代版本众多和执行模块匹配关系难识别导致较难对主机应用程序的源码版本进行的追溯的技术问题,进而达到了较为准确的找到目标应用程序的源码版本的技术效果。
下面参考图3~图7,结合具体实施例对图2所示的方法做进一步说明。
图3示意性示出了根据本公开另一实施例的程序处理方法的流程图。
根据本公开的实施例,目标应用程序可以是发生故障的故障应用程序。在相关技术中,如果应用程序在运行过程中出现故障,异常信息往往只包含异常语句所在目标码的异常位置。为了进一步定位问题,需要核对故障应用程序当前运行的两个执行模块是否匹配,并找到该故障应用程序对应的源代码版本以及报错语句。由于项目并行迭代版本众多、执行模块匹配关系难识别、目标码语句位置和源代码行号对应关系不明显等原因,人为分析和操作难度大,需要一种能够从场景现场快速和准确追溯其源码的系统及方法,找到正确的源代码版本和报错语句协助分析问题。
需要说明的是,在该实施例中,除了包括图2所示的操作S210~S230之外,还可以包括如图3所示的操作S310~S340。为了描述的简洁起见,在此不再对操作S210~S230赘述。
在操作S310,根据固有标识获取故障应用程序的编译列表文件。
根据本公开的实施例,可以根据固有标识从版本信息表中获取故障应用程序的编译列表文件的存储路径,然后根据编译列表文件的存储路径获取正确的编译列表文件。根据本公开的实施例,版本信息表中可以包括固有标识、源码版本和编译列表文件的存储路径的对应关系。
在操作S320,获取故障应用程序的目标码异常位置。
根据本公开的实施例,如果应用程序在运行过程中出现故障,可以得到异常语句所在目标码的异常位置(offset偏移量)。
在操作S330,根据目标码异常位置从编译列表文件中确定异常语句对应的源码行号。
根据故障场景中得到的目标码异常位置,到编译列表文件中进行重定位,找到异常语句对应的源码行号。
在操作S340,根据异常语句对应的源码行号和源码版本,确定异常的源码内容。
根据本公开的实施例,根据得到的源码版本及异常语句源码行号,从而准确追踪到发生异常的源码内容。
通过本公开的实施例,当应用程序在运行环境发生故障时,根据现场信息提示的目标码异常位置,逐层查找,追溯到正确的源码版本,并从编译列表信息对目标码报错语句进行重定位,最终在源码中找报错语句。由于应用程序的LOAD模块和DBRM模块均为不可见编码,编译列表文件复杂,人为分析定位困难,本公开的实施例将分析定位过程系统化及自动化,用户无需掌握专业的大型主机汇编技术。根据现场场景提示的应用程序故障信息,自动关联正确的目标码、编译列表文件、源码,逐层查找,追溯到故障的源码语句,提高了研发测试及生产环境的故障定位和解决效率。
根据本公开的实施例,可以在应用程序编译时获取版本信息进行存储。
图4示意性示出了根据本公开实施例的在应用程序编译时获取版本信息的流程图。
如图4所示,该方法包括操作S410~S430。
在操作S410,在应用程序编译时,获取本次编译的源码标签、编译列表文件、DBRM模块CONTOKEN值。
在操作S420,将编译列表文件进行压缩存储,获取其存储路径。
在操作S430,将应用程序名称、源码标签、编译列表文件路径、DBRM模块CONTOKEN值存储为版本信息。
图5示意性示出了根据本公开实施例的版本信息表的示意图。
如图5所示,在版本信息表中示出了不同应用程序对应的版本信息,在每一条版本信息记录中,可以包括应用程序名称、源码标签、编译列表文件路径、DBRM模块CONTOKEN值。
根据本公开的实施例,根据固有标识确定数据库请求模块和目标应用程序的可执行逻辑主模块是否匹配包括如下操作。
首先,将固有标识进行序列化,得到第一序列化值;将可执行逻辑主模块进行序列化,得到第二序列化值。然后,根据第一序列化值和第二序列化值确定数据库请求模块和可执行逻辑主模块是否匹配。
根据本公开的实施例,序列化的方式可以是转化为二进制序列,十进制,或者十六进制。例如,从DBRM模块获取到的固有标识进行十六进制序列化的CONTOKEN第一序列化值为1901366611E74BEA。可执行逻辑主模块进行十六进序列化得到的第二序列化值为11E74BEA19013666。如果第二序列化值通过改变序列顺序之后,包含第一序列化值,则可以认为数据库请求模块和可执行逻辑主模块匹配。例如,改变11E74BEA19013666前八位和后八位的顺序,可以得到第一序列化值,则可以认为数据库请求模块和可执行逻辑主模块匹配。
图6示意性示出了根据本公开实施例的根据第一序列化值和第二序列化值确定数据库请求模块和可执行逻辑主模块是否匹配的流程图。
如图6所示,根据第一序列化值和第二序列化值确定数据库请求模块和可执行逻辑主模块是否匹配包括操作S610~S630。
在操作S610,将第一序列化值拆分为第一子序列化值和第二子序列化值。
在操作S620,将第一子序列化值和第二子序列化值的位置进行反转后,得到第三序列化值。
在操作S630,确定第二序列化值中是否包含第三序列化值,以确定数据库请求模块和可执行逻辑主模块是否匹配。
根据本公开的实施例,在第二序列化值中包含第三序列化值的情况下,确定数据库请求模块和可执行逻辑主模块匹配;在第二序列化值中不包含第三序列化值的情况下,确定数据库请求模块和可执行逻辑主模块不匹配。
根据本公开的实施例,例如,可以将第一序列化值拆分为对称的第一子序列化值A和第二子序列化值B两部分。例如,从DBRM模块获取到的CONTOKEN值为1901366611E74BEA,拆分后,A=19013666,B=11E74BEA。
根据本公开的实施例,将第一序列化值AB反转为第三序列化值BA格式,即为11E74BEA19013666(其中,B=11E74BEA,A=19013666),即调换第一子序列化值和第二子序列化值的位置。再将LOAD模块序列化为十六机制字符,在序列化后的LOAD模块中查找反转后的CONTOKEN标识(BA:11E74BEA19013666),如果在序列化后的LOAD模块中能查找到第三序列化值BA,即证明该LOAD模块和DBRM模块是匹配的。
根据本公开的实施例,在编译时可以记录该应用程序本次编译生成的CONTOKEN值和使用的源代码标签Tag,应用程序源码版本的管理可以使用业界常用的Gerrit(一种开放源代码的代码审查软件)和Gitlab(一种使用开源的分布式版本控制系统Git作为代码管理工具,并在此基础上搭建起来的网页服务),由Tag标签标记,这里不再进行详细说明。通过上述方法,将应用程序实体的LOAD模块和DBRM模块关联匹配,和源码版本对应,从而实现标识合一。
图7示意性示出了根据本公开实施例的从场景现场溯源追踪源代码的流程图。
如图7所示,该方法包括操作S710~S770。需要说明的是,本公开实施例中的流程图所示的操作除非明确说明不同操作之间存在执行的先后顺序,或者不同操作在技术实现上存在执行的先后顺序,否则,多个操作之间的执行顺序可以不分先后,多个操作也可以同时执行。
在操作S710,从场景现场中获取应用程序名称、DBRM模块的CONTOKEN值、目标码异常位置。
在操作S720,将CONTOKEN值进行反转后,在LOAD模块中反向查找,检查该LOAD模块和DBRM模块的匹配性,确保LOAD版本的正确性。若不匹配,表明该应用程序没有完全部署成功,需要版本部署人员介入检查版本部署过程中是否出现故障,重新部署正确的应用程序版本,以修复这个故障。
在操作S730,通过CONTOKEN值到版本信息表查找对应的源码标签及编译列表文件路径。
在操作S740,根据源码标签获取正确的源码版本。
在操作S750,根据编译列表文件路径获取正确的编译列表文件。
在操作S760,根据场景中得到的目标码异常位置,到编译列表文件中进行重定位,找到异常语句对应的源码行号。
在操作S770,根据得到的源码版本及异常语句源码行号,从而准确追踪到发生异常的源码语句内容。
根据本公开的实施例,在应用程序发生故障时,根据场景现场提示的异常信息,并结合应用程序执行模块的信息,可以快速查找到正确的源码版本以及报错语句,协助分析应用程序的故障问题。
图8示意性示出了根据本公开实施例的程序处理装置的框图。
如图8所示,程序处理装置800包括:标识获取单元810、标识匹配单元820和源码查找单元830。
标识获取单元810用于获取目标应用程序的数据库请求模块的固有标识,其中,固有标识是在编译数据库请求模块时生成的。
标识匹配单元820用于根据固有标识确定数据库请求模块和目标应用程序的可执行逻辑主模块是否匹配。
源码查找单元830用于在数据库请求模块和可执行逻辑主模块匹配的情况下,根据固有标识从版本信息表中查找目标应用程序的源码版本,其中,版本信息表中包括固有标识和源码版本的对应关系。
根据本公开的实施例,通过获取目标应用程序的数据库请求模块的固有标识,然后,根据固有标识确定数据库请求模块和目标应用程序的可执行逻辑主模块是否匹配,在数据库请求模块和可执行逻辑主模块匹配的情况下,根据固有标识从版本信息表中查找目标应用程序的源码版本。由于根据固有标识确定了数据库请求模块和可执行逻辑主模块是否匹配,该固有标识具有不可破坏性和防伪性,使得可以确保目标应用程序的部署是成功的,在部署成功的情况下,根据数据库请求模块的固有标识从版本信息表中查找目标应用程序的源码版本,可以较为准确的找到目标应用程序的源码版本,所以至少部分地克服了由于项目并行迭代版本众多和执行模块匹配关系难识别导致较难对主机应用程序的源码版本进行的追溯的技术问题,进而达到了较为准确的找到目标应用程序的源码版本的技术效果。
根据本公开的实施例,目标应用程序包括故障应用程序,装置还包括:编译列表获取单元、异常位置获取单元和语句重定位单元。
编译列表获取单元用于根据固有标识获取故障应用程序的编译列表文件。
异常位置获取单元用于获取故障应用程序的目标码异常位置。
语句重定位单元用于根据目标码异常位置从编译列表文件中确定异常语句对应的源码行号;以及根据异常语句对应的源码行号和源码版本,确定异常的源码内容。
根据本公开的实施例,标识匹配单元用于:将固有标识进行序列化,得到第一序列化值;将可执行逻辑主模块进行序列化,得到第二序列化值;以及根据第一序列化值和第二序列化值确定数据库请求模块和可执行逻辑主模块是否匹配。
根据本公开的实施例,标识获取单元用于:读取目标应用程序的数据库请求模块;将数据库请求模块进行转码,得到转码文件;以及获取转码文件的文件头的固定位置的内容,以作为固有标识。
图9示意性示出了根据本公开另一实施例的程序处理装置的框图。
如图9所示,程序处理装置900包括:标识获取单元910、标识匹配单元920、源码查找单元930、版本信息存储单元940、编译列表文件存储单元950、源码查找单元950和语句重定位单元960。
需要说明的是,在该实施例中的程序处理装置900所包含的部分单元可以与图8所示的单元相同。例如,程序处理装置900所包含的标识获取单元910可以与程序处理装置800所包含的标识获取单元810相同;程序处理装置900所包含的标识匹配单元920可以与程序处理装置800所包含的标识匹配单元920相同,相同的单元所能实现的功能可以相同。
标识获取单元910用于读取应用程序实体DBRM模块并进行转码,获取其文件头固定位置的CONTOKEN值,该标识在程序编译时生成,具有唯一性、不可破坏性和防伪性。在应用程序编译时,需要使用该标识获取单元910获取应用程序编译生成的DBRM模块CONTOKEN值,用于标记本次编译的版本信息。当应用程序在运行环境发送故障时,需要使用该标识获取单元910获取故障现场中故障应用程序的DBRM模块CONTOKEN值,用于核对应用程序版本信息。
标识匹配单元920用于校验DBRM模块的CONTOKEN值和LOAD模块的匹配关系,由于无法在LOAD模块中直接获取到CONTOKEN值,故需要使用DBRM模块的CONTOKEN值在LOAD模块中反向查找进行匹配。
根据本公开的实施例,标识匹配单元920可以包括标识反转子模块、LOAD序列化子模块、标识搜索子模块。其中,标识反转子模块将CONTOKEN值拆分为对称的AB两部分再反转为BA格式;LOAD序列化子模块对LOAD执行模块进行序列化;标识搜索子模块通过反转后的标识在序列化的LOAD模块中进行查找,如果能查找到,即证明该LOAD和DBRM模块是匹配的。
源码查找单元930通过标识获取单元910得到的CONTOKEN值,在版本信息存储单元940获取对应的源码标签,即可找到应用程序的正确源码版本。
版本信息存储单元940用于存放目标码CONTOKEN值、源码标签、编译列表文件路径等,唯一标识每个应用程序每次编译的版本信息。
编译列表文件存储单元950用于存储应用程序编译时生成的编译列表文件,该文件包含了源码语句行号和目标码指令位置的对应关系。
语句重定位单元960根据现场信息提示的目标码异常位置,在编译列表文件中重定位,找出该异常位置对应的源码报错语句行号,并根据源码查找单元930找到的源码,定位到具体的源码报错语句内容。
本公开的实施例通过软标识实现从场景现场溯源追踪源代码,对每个应用程序版本源码、编译列表、目标码各执行模块进行追踪,根据场景现场快速准确找到源码报错语句,协助分析问题,提高研发测试及生产环境的故障解决效率。
根据本公开的实施例的模块、子模块、单元、子单元中的任意多个、或其中任意多个的至少部分功能可以在一个模块中实现。根据本公开实施例的模块、子模块、单元、子单元中的任意一个或多个可以被拆分成多个模块来实现。根据本公开实施例的模块、子模块、单元、子单元中的任意一个或多个可以至少被部分地实现为硬件电路,例如现场可编程门阵列(FPGA)、可编程逻辑阵列(PLA)、片上系统、基板上的系统、封装上的系统、专用集成电路(ASIC),或可以通过对电路进行集成或封装的任何其他的合理方式的硬件或固件来实现,或以软件、硬件以及固件三种实现方式中任意一种或以其中任意几种的适当组合来实现。或者,根据本公开实施例的模块、子模块、单元、子单元中的一个或多个可以至少被部分地实现为计算机程序模块,当该计算机程序模块被运行时,可以执行相应的功能。
例如,标识获取单元910、标识匹配单元920、源码查找单元930、版本信息存储单元940、编译列表文件存储单元950、源码查找单元950和语句重定位单元960中的任意多个可以合并在一个模块/单元/子单元中实现,或者其中的任意一个模块/单元/子单元可以被拆分成多个模块/单元/子单元。或者,这些模块/单元/子单元中的一个或多个模块/单元/子单元的至少部分功能可以与其他模块/单元/子单元的至少部分功能相结合,并在一个模块/单元/子单元中实现。根据本公开的实施例,标识获取单元910、标识匹配单元920、源码查找单元930、版本信息存储单元940、编译列表文件存储单元950、源码查找单元950和语句重定位单元960中的至少一个可以至少被部分地实现为硬件电路,例如现场可编程门阵列(FPGA)、可编程逻辑阵列(PLA)、片上系统、基板上的系统、封装上的系统、专用集成电路(ASIC),或可以通过对电路进行集成或封装的任何其他的合理方式等硬件或固件来实现,或以软件、硬件以及固件三种实现方式中任意一种或以其中任意几种的适当组合来实现。或者,标识获取单元910、标识匹配单元920、源码查找单元930、版本信息存储单元940、编译列表文件存储单元950、源码查找单元950和语句重定位单元960中的至少一个可以至少被部分地实现为计算机程序模块,当该计算机程序模块被运行时,可以执行相应的功能。
需要说明的是,本公开的实施例中程序处理装置部分与本公开的实施例中程序处理方法部分是相对应的,程序处理装置部分的描述具体参考程序处理方法部分,在此不再赘述。
图10示意性示出了根据本公开实施例的适于实现上文描述的方法的计算机系统的框图。图10示出的计算机系统仅仅是一个示例,不应对本公开实施例的功能和使用范围带来任何限制。
如图10所示,根据本公开实施例的计算机系统1000包括处理器1001,其可以根据存储在只读存储器(ROM)1002中的程序或者从存储部分1008加载到随机访问存储器(RAM)1003中的程序而执行各种适当的动作和处理。处理器1001例如可以包括通用微处理器(例如CPU)、指令集处理器和/或相关芯片组和/或专用微处理器(例如,专用集成电路(ASIC)),等等。处理器1001还可以包括用于缓存用途的板载存储器。处理器1001可以包括用于执行根据本公开实施例的方法流程的不同动作的单一处理单元或者是多个处理单元。
在RAM 1003中,存储有系统1000操作所需的各种程序和数据。处理器1001、ROM1002以及RAM 1003通过总线1004彼此相连。处理器1001通过执行ROM 1002和/或RAM 1003中的程序来执行根据本公开实施例的方法流程的各种操作。需要注意,所述程序也可以存储在除ROM 1002和RAM 1003以外的一个或多个存储器中。处理器1001也可以通过执行存储在所述一个或多个存储器中的程序来执行根据本公开实施例的方法流程的各种操作。
根据本公开的实施例,系统1000还可以包括输入/输出(I/O)接口1005,输入/输出(I/O)接口1005也连接至总线1004。系统1000还可以包括连接至I/O接口1005的以下部件中的一项或多项:包括键盘、鼠标等的输入部分1006;包括诸如阴极射线管(CRT)、液晶显示器(LCD)等以及扬声器等的输出部分1007;包括硬盘等的存储部分1008;以及包括诸如LAN卡、调制解调器等的网络接口卡的通信部分1009。通信部分1009经由诸如因特网的网络执行通信处理。驱动器1010也根据需要连接至I/O接口1005。可拆卸介质1011,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器1010上,以便于从其上读出的计算机程序根据需要被安装入存储部分1008。
根据本公开的实施例,根据本公开实施例的方法流程可以被实现为计算机软件程序。例如,本公开的实施例包括一种计算机程序产品,其包括承载在计算机可读存储介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分1009从网络上被下载和安装,和/或从可拆卸介质1011被安装。在该计算机程序被处理器1001执行时,执行本公开实施例的系统中限定的上述功能。根据本公开的实施例,上文描述的系统、设备、装置、模块、单元等可以通过计算机程序模块来实现。
本公开还提供了一种计算机可读存储介质,该计算机可读存储介质可以是上述实施例中描述的设备/装置/系统中所包含的;也可以是单独存在,而未装配入该设备/装置/系统中。上述计算机可读存储介质承载有一个或者多个程序,当上述一个或者多个程序被执行时,实现根据本公开实施例的方法。
根据本公开的实施例,计算机可读存储介质可以是非易失性的计算机可读存储介质。例如可以包括但不限于:便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本公开中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
例如,根据本公开的实施例,计算机可读存储介质可以包括上文描述的ROM 1002和/或RAM 1003和/或ROM 1002和RAM 1003以外的一个或多个存储器。
附图中的流程图和框图,图示了按照本公开各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,上述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图或流程图中的每个方框、以及框图或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。本领域技术人员可以理解,本公开的各个实施例和/或权利要求中记载的特征可以进行多种组合和/或结合,即使这样的组合或结合没有明确记载于本公开中。特别地,在不脱离本公开精神和教导的情况下,本公开的各个实施例和/或权利要求中记载的特征可以进行多种组合和/或结合。所有这些组合和/或结合均落入本公开的范围。
以上对本公开的实施例进行了描述。但是,这些实施例仅仅是为了说明的目的,而并非为了限制本公开的范围。尽管在以上分别描述了各实施例,但是这并不意味着各个实施例中的措施不能有利地结合使用。本公开的范围由所附权利要求及其等同物限定。不脱离本公开的范围,本领域技术人员可以做出多种替代和修改,这些替代和修改都应落在本公开的范围之内。

Claims (9)

1.一种程序处理方法,包括:
获取目标应用程序的数据库请求模块的固有标识,其中,所述固有标识是在编译所述数据库请求模块时生成的;
根据所述固有标识确定所述数据库请求模块和所述目标应用程序的可执行逻辑主模块是否匹配;以及
在所述数据库请求模块和所述可执行逻辑主模块匹配的情况下,根据所述固有标识从版本信息表中查找所述目标应用程序的源码版本,其中,所述版本信息表中包括所述固有标识和所述源码版本的对应关系;
其中,所述根据所述固有标识确定所述数据库请求模块和所述目标应用程序的可执行逻辑主模块是否匹配包括:
将所述固有标识进行序列化,得到第一序列化值;
将所述可执行逻辑主模块进行序列化,得到第二序列化值;以及
根据所述第一序列化值和所述第二序列化值确定所述数据库请求模块和所述可执行逻辑主模块是否匹配。
2.根据权利要求1所述的方法,其中,所述目标应用程序包括故障应用程序,所述方法还包括:
根据所述固有标识获取所述故障应用程序的编译列表文件;
获取所述故障应用程序的目标码异常位置;
根据所述目标码异常位置从所述编译列表文件中确定异常语句对应的源码行号;以及
根据所述异常语句对应的源码行号和所述源码版本,确定异常的源码内容。
3.根据权利要求1所述的方法,其中,所述根据所述第一序列化值和所述第二序列化值确定所述数据库请求模块和所述可执行逻辑主模块是否匹配包括:
将所述第一序列化值拆分为第一子序列化值和第二子序列化值;
将所述第一子序列化值和所述第二子序列化值的位置进行反转后,得到第三序列化值;以及
确定所述第二序列化值中是否包含所述第三序列化值,以确定所述数据库请求模块和所述可执行逻辑主模块是否匹配;
其中,在所述第二序列化值中包含所述第三序列化值的情况下,确定所述数据库请求模块和所述可执行逻辑主模块匹配;在所述第二序列化值中不包含所述第三序列化值的情况下,确定所述数据库请求模块和所述可执行逻辑主模块不匹配。
4.根据权利要求1所述的方法,其中,所述获取目标应用程序的数据库请求模块的固有标识包括:
读取所述目标应用程序的数据库请求模块;
将所述数据库请求模块进行转码,得到转码文件;以及
获取所述转码文件的文件头的固定位置的内容,以作为所述固有标识。
5.一种程序处理装置,包括:
标识获取单元,用于获取目标应用程序的数据库请求模块的固有标识,其中,所述固有标识是在编译所述数据库请求模块时生成的;
标识匹配单元,用于根据所述固有标识确定所述数据库请求模块和所述目标应用程序的可执行逻辑主模块是否匹配;以及
源码查找单元,用于在所述数据库请求模块和所述可执行逻辑主模块匹配的情况下,根据所述固有标识从版本信息表中查找所述目标应用程序的源码版本,其中,所述版本信息表中包括所述固有标识和所述源码版本的对应关系;
其中,所述标识匹配单元用于:
将所述固有标识进行序列化,得到第一序列化值;
将所述可执行逻辑主模块进行序列化,得到第二序列化值;以及
根据所述第一序列化值和所述第二序列化值确定所述数据库请求模块和所述可执行逻辑主模块是否匹配。
6.根据权利要求5所述的装置,其中,所述目标应用程序包括故障应用程序,所述装置还包括:
编译列表获取单元,用于根据所述固有标识获取所述故障应用程序的编译列表文件;
异常位置获取单元,用于获取所述故障应用程序的目标码异常位置;以及
语句重定位单元,用于根据所述目标码异常位置从所述编译列表文件中确定异常语句对应的源码行号;以及根据所述异常语句对应的源码行号和所述源码版本,确定异常的源码内容。
7.根据权利要求5所述的装置,其中,所述标识获取单元用于:
读取所述目标应用程序的数据库请求模块;
将所述数据库请求模块进行转码,得到转码文件;以及
获取所述转码文件的文件头的固定位置的内容,以作为所述固有标识。
8.一种电子设备,包括:
一个或多个处理器;
存储器,用于存储一个或多个指令,
其中,当所述一个或多个指令被所述一个或多个处理器执行时,使得所述一个或多个处理器实现权利要求1至4中任一项所述的方法。
9.一种计算机可读存储介质,其上存储有可执行指令,该指令被处理器执行时使处理器实现权利要求1至4中任一项所述的方法。
CN202010438744.7A 2020-05-21 2020-05-21 程序处理方法、装置、电子设备和存储介质 Active CN111597069B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010438744.7A CN111597069B (zh) 2020-05-21 2020-05-21 程序处理方法、装置、电子设备和存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010438744.7A CN111597069B (zh) 2020-05-21 2020-05-21 程序处理方法、装置、电子设备和存储介质

Publications (2)

Publication Number Publication Date
CN111597069A CN111597069A (zh) 2020-08-28
CN111597069B true CN111597069B (zh) 2023-06-13

Family

ID=72186154

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010438744.7A Active CN111597069B (zh) 2020-05-21 2020-05-21 程序处理方法、装置、电子设备和存储介质

Country Status (1)

Country Link
CN (1) CN111597069B (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112769565B (zh) * 2021-01-15 2022-12-23 中国工商银行股份有限公司 密码加密算法的升级方法、装置、计算设备和介质
CN113326079A (zh) * 2021-06-24 2021-08-31 工银科技有限公司 服务版本切换方法、切换装置、电子设备和存储介质
CN115562645B (zh) * 2022-09-29 2023-06-09 中国人民解放军国防科技大学 一种基于程序语义的配置故障预测方法

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102156643A (zh) * 2011-04-25 2011-08-17 青岛海信传媒网络技术有限公司 软件集成方法及系统
US9395968B1 (en) * 2006-06-30 2016-07-19 American Megatrends, Inc. Uniquely identifying and validating computer system firmware
CN109445837A (zh) * 2018-09-03 2019-03-08 中国平安人寿保险股份有限公司 一种应用程序的发布方法及设备
CN111046020A (zh) * 2019-11-28 2020-04-21 泰康保险集团股份有限公司 信息处理方法与装置、存储介质、电子设备

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105446723B (zh) * 2014-09-02 2018-11-23 国际商业机器公司 用于标识源代码版本之间的语义区别的方法和装置

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9395968B1 (en) * 2006-06-30 2016-07-19 American Megatrends, Inc. Uniquely identifying and validating computer system firmware
CN102156643A (zh) * 2011-04-25 2011-08-17 青岛海信传媒网络技术有限公司 软件集成方法及系统
CN109445837A (zh) * 2018-09-03 2019-03-08 中国平安人寿保险股份有限公司 一种应用程序的发布方法及设备
CN111046020A (zh) * 2019-11-28 2020-04-21 泰康保险集团股份有限公司 信息处理方法与装置、存储介质、电子设备

Also Published As

Publication number Publication date
CN111597069A (zh) 2020-08-28

Similar Documents

Publication Publication Date Title
CN111597069B (zh) 程序处理方法、装置、电子设备和存储介质
US9442821B2 (en) System and method to classify automated code inspection services defect output for defect analysis
US8782609B2 (en) Test failure bucketing
CN104077217B (zh) 代码文件的编译发布方法及系统
US8473916B2 (en) Method and system for providing a testing framework
US10635429B2 (en) Systems and methods of just-in-time proactive notification of a product release containing a software fix
US10049031B2 (en) Correlation of violating change sets in regression testing of computer software
US20180349251A1 (en) Automated Root Cause Detection Using Data Flow Analysis
CN110727581B (zh) 崩溃定位方法与电子设备
US20210311918A1 (en) Computer system diagnostic log chain
JP2015011372A (ja) デバッグ支援システム、方法、プログラム及び記録媒体
CN114116496A (zh) 自动化测试方法、装置、设备及介质
CN107169000A (zh) 静态资源发布方法及装置
US9563541B2 (en) Software defect detection identifying location of diverging paths
US9779014B2 (en) Resilient mock object creation for unit testing
KR20140046121A (ko) 애플리케이션 검증을 위한 시스템 및 방법
CN114816993A (zh) 一种全链路接口测试方法、系统、介质及电子设备
CA2811617A1 (en) Commit sensitive tests
KR20190020363A (ko) 동적 분석과 정적 분석을 연계한 프로그램을 분석하기 위한 방법 및 장치
CN116483888A (zh) 程序评估方法及装置、电子设备和计算机可读存储介质
CN112711424A (zh) 应用程序的风险问题确定方法、装置及存储介质
CN115033489A (zh) 代码资源检测方法、装置、电子设备及存储介质
CN112363758A (zh) 一种获取开源项目第三方组件信息的方法及装置
CN115129355B (zh) 页面修复方法及其系统、计算机设备
KR20140046120A (ko) 애플리케이션 검증을 위한 시스템 및 방법

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant