CN115328793A - 针对应用程序的故障定位方法、装置以及设备 - Google Patents
针对应用程序的故障定位方法、装置以及设备 Download PDFInfo
- Publication number
- CN115328793A CN115328793A CN202211003588.7A CN202211003588A CN115328793A CN 115328793 A CN115328793 A CN 115328793A CN 202211003588 A CN202211003588 A CN 202211003588A CN 115328793 A CN115328793 A CN 115328793A
- Authority
- CN
- China
- Prior art keywords
- determining
- fault
- change information
- application
- candidate
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 45
- 238000012360 testing method Methods 0.000 claims abstract description 117
- 230000008859 change Effects 0.000 claims abstract description 46
- 238000004590 computer program Methods 0.000 claims description 13
- 238000012545 processing Methods 0.000 claims description 9
- 238000004088 simulation Methods 0.000 claims description 7
- 238000001514 detection method Methods 0.000 claims description 5
- 238000004458 analytical method Methods 0.000 claims description 3
- 238000007619 statistical method Methods 0.000 description 16
- 238000004891 communication Methods 0.000 description 11
- 230000006870 function Effects 0.000 description 10
- 238000010586 diagram Methods 0.000 description 9
- 238000002474 experimental method Methods 0.000 description 8
- 230000004807 localization Effects 0.000 description 5
- 230000003247 decreasing effect Effects 0.000 description 4
- 230000008569 process Effects 0.000 description 4
- 230000007547 defect Effects 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 230000009467 reduction Effects 0.000 description 3
- 238000004364 calculation method Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000000977 initiatory effect Effects 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 230000009471 action Effects 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 238000013473 artificial intelligence Methods 0.000 description 1
- 238000013475 authorization Methods 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000010801 machine learning Methods 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 230000008439 repair process Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 230000001953 sensory effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 230000008685 targeting Effects 0.000 description 1
- 238000010998 test method Methods 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3668—Software testing
- G06F11/3672—Test management
- G06F11/3688—Test management for test execution, e.g. scheduling of test suites
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3668—Software testing
- G06F11/3672—Test management
- G06F11/3692—Test management for test results analysis
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3668—Software testing
- G06F11/3696—Methods or tools to render software testable
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Debugging And Monitoring (AREA)
Abstract
本公开提供了一种针对应用程序的故障定位方法、装置、设备、存储介质以及程序产品,涉及计算机技术领域,尤其涉及客户端技术领域。具体实现方案为:在检测到与目标应用程序相关的故障数据的数量发生波动的情况下,确定波动的初始时刻和故障数据的数量变化信息;确定与初始时刻匹配的多个候选应用测试;根据数量变化信息,确定多个候选应用测试中的目标应用测试;以及根据目标应用测试的实验数据,确定故障在目标应用程序中的位置。
Description
技术领域
本公开涉及计算机技术领域,尤其涉及客户端技术领域。
背景技术
为了提高应用程序的用户体验,开发者们在应用开发过程中可以采用应用测试来完善开发的应用程序。应用测试例如可以包括AB实验。AB实验是指设置两个或多个应用程序的版本,向不同的终端设备推送不同的版本的应用程序,从而比对不同版本的应用程序对用户的影响。
发明内容
本公开提供了一种针对应用程序的故障定位方法、装置、设备、存储介质以及程序产品。
根据本公开的一方面,提供了一种针对应用程序的故障定位方法,包括:在检测到与目标应用程序相关的故障数据的数量发生波动的情况下,确定所述波动的初始时刻和所述故障数据的数量变化信息;确定与所述初始时刻匹配的多个候选应用测试;根据所述数量变化信息,确定所述多个候选应用测试中的目标应用测试;以及根据所述目标应用测试的实验数据,确定所述故障在所述目标应用程序中的位置。
根据本公开的另一方面,提供了一种针对应用程序的故障定位装置,包括:检测模块,用于在检测到与目标应用程序相关的故障数据的数量发生波动的情况下,确定所述波动的初始时刻和所述故障数据的数量变化信息;候选确定模块,用于确定与所述初始时刻匹配的多个候选应用测试;目标确定模块,用于根据所述数量变化信息,确定所述多个候选应用测试中的目标应用测试;以及定位模块,用于根据所述目标应用测试的实验数据,确定所述故障在所述目标应用程序中的位置。
本公开的另一个方面提供了一种电子设备,包括:至少一个处理器;以及与所述至少一个处理器通信连接的存储器;其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行本公开实施例所示的方法。
根据本公开实施例的另一方面,提供了一种存储有计算机指令的非瞬时计算机可读存储介质,其中,所述计算机指令用于使所述计算机执行本公开实施例所示的方法。
根据本公开实施例的另一方面,提供了一种计算机程序产品,包括计算机程序/指令,其特征在于,该计算机程序/指令被处理器执行时实现本公开实施例所示方法的步骤。
应当理解,本部分所描述的内容并非旨在标识本公开的实施例的关键或重要特征,也不用于限制本公开的范围。本公开的其它特征将通过以下的说明书而变得容易理解。
附图说明
附图用于更好地理解本方案,不构成对本公开的限定。其中:
图1是根据本公开实施例的针对应用程序的故障定位方法、装置、电子设备和存储介质的应用场景示意图;
图2示意性示出了根据本公开的实施例的针对应用程序的故障定位方法的流程图;
图3示意性示出了根据本公开的实施例的确定目标应用测试的方法的流程图;
图4示意性示出了根据本公开的实施例的针对应用程序的故障定位的示意图;
图5示意性示出了根据本公开实施例的针对应用程序的故障定位装置的框图;以及
图6示意性示出了可以用来实施本公开的实施例的示例电子设备的框图。
具体实施方式
以下结合附图对本公开的示范性实施例做出说明,其中包括本公开实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本公开的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。
以下将结合图1对本公开提供的针对应用程序的故障定位方法和装置的应用场景进行描述。
图1是根据本公开实施例的针对应用程序的故障定位方法、装置、电子设备和存储介质的应用场景示意图。需要注意的是,图1所示仅为可以应用本公开实施例的系统架构的示例,以帮助本领域技术人员理解本公开的技术内容,但并不意味着本公开实施例不可以用于其他设备、系统、环境或场景。
如图1所示,该应用场景100包括终端设备101、102、103,网络104、应用测试平台105和统计分析平台106。网络104用以在终端设备101、102、103、应用测试平台105和统计分析平台106之间提供通信链路的介质。网络104可以包括各种连接类型,例如有线、无线通信链路或者光纤电缆等等。
用户可以使用终端设备101、102、103通过网络104与应用测试平台105和统计分析平台106交互,以接收或发送消息等。终端设备101、102、103上可以安装有各种通讯客户端应用,例如购物类应用、网页浏览器应用、搜索类应用、即时通信工具、邮箱客户端、社交平台软件等(仅为示例)。
终端设备101、102、103可以是具有显示屏并且支持网页浏览的各种电子设备,包括但不限于智能手机、平板电脑、膝上型便携计算机和台式计算机等等。
在对应用程序研发过程中,可以对应用程序进行应用测试。应用测试例如可以包括AB实验。AB实验是指设置两个或多个应用程序的版本,向不同的终端设备推送不同的版本,从而比对不同版本的应用程序对用户的影响。比如,当需要为应用程序加入一个新功能时,可以向一部分用户终端推送该新功能,而另一部分用户终端不推送该新功能,进而可以比对该新功能对用户的影响。
在进行应用测试时,可以对用户终端进行分类,不同类别的用户终端运行不同版本的程序。比如将用户终端划分为两类,第一类用户终端使用程序的新功能,第二类用户终端不使用该新功能。
例如,应用测试的实验目标可以为确定按钮在界面中位置。基于此,应用测试可以包括两个方案,分别为按钮设置在界面左侧和按钮设置在界面右侧,在完成该应用测试之后,得到实验结果反映用户对按钮设置在界面右侧的倾向程度更高,则可以确定对应用程序的更新策略为将按钮设置在界面右侧。相应的,在对应用程序进行更新时,即可将对应的按钮更新在界面的右侧。
根据本公开的实施例,在对应用程序进行应用测试时,可以通过应用测试平台105将各个版本的应用程序推送至不同的终端设备。用户可以通过终端设备获取应用测试平台105推送的应用程序,并安装在终端设备中。用户可以通过终端设备运行应用程序,在运行的过程中如果发生了故障,则终端设备可以向统计分析平台106上报对应的故障数据。其中,故障例如可以包括应用程序崩溃、操作系统崩溃等。故障数据例如可以包括发生故障前的调用信息等。例如,应用程序可以将调用信息记录在调用栈中,基于此,故障数据例如可以包括调用栈。
相关技术根据该故障数据中描述的调用信息,对故障进行定位。但是对于系统类型的调用,无法确定调用的发起对象,从而难以进行故障定位。
根据本公开的实施例,可以根据故障数据的数量变化信息来确定与故障相关的目标应用测试,并根据目标应用测试的实验数据,对故障进行定位。在无法确定调用的发起对象的情况下,也可以实现故障定位,提高了用户体验。
需要说明的是,本公开实施例所提供的针对应用程序的故障定位方法一般可以由统计分析平台106执行。相应地,本公开实施例所提供的针对应用程序的故障定位装置一般可以设置于统计分析平台106中。本公开实施例所提供的针对应用程序的故障定位方法也可以由不同于统计分析平台106且能够与终端设备101、102、103、应用测试平台105和/或统计分析平台106通信的服务器或服务器集群执行。相应地,本公开实施例所提供的针对应用程序的故障定位装置也可以设置于不同于统计分析平台106且能够与终端设备101、102、103、应用测试平台105和/或统计分析平台106通信的服务器或服务器集群中。
应该理解,图1中的终端设备、网络、应用测试平台和统计分析平台的数目仅仅是示意性的。根据实现需要,可以具有任意数目的终端设备、网络、应用测试平台和统计分析平台。
在本公开的技术方案中,所涉及的故障信息、实验数据等数据的收集、存储、使用、加工、传输、提供、公开和应用等处理,均符合相关法律法规的规定,采取了必要保密措施,且不违背公序良俗。
在本公开的技术方案中,在获取或采集故障信息、实验数据等数据之前,均获取了用户的授权或同意。
以下将结合图2对本公开提供的针对应用程序的故障定位方法进行描述。
图2示意性示出了根据本公开的实施例的针对应用程序的故障定位方法的流程图。
如图2所示,该针对应用程序的故障定位方法200包括在操作S210,在检测到与目标应用程序相关的故障数据的数量发生波动的情况下,确定波动的初始时刻和故障数据的数量变化信息。
根据本公开的实施例,终端设备中的应用程序在发生故障时会上传故障数据。其中,故障数据例如可以包括故障发生前的调用信息。故障例如可以包括应用程序的崩溃。本实施例中,可以对来自各个终端设备中应用程序的故障数据进行记录,并统计数量。
在应用程序正常运行过程中,收集到的故障数据的数量是相对稳定的。当进行应用测试时,会向部分终端设备推送新版本的应用程序,因而导致与应用程序相关的故障数据的数量发生波动。例如,因为新版本存在缺陷等原因,使得故障率增多,进而使收集到故障数据的在一定时间内出现较大增幅。又例如,因为新版本修补了原版本的缺陷等原因,使得故障率减少,进而使收集到故障数据的在一定时间内出现较大降幅。
根据本公开的实施例,初始时刻例如可以包括开始发生波动的时刻。故障数据的数量变化信息例如用于表示故障数据在波动的过程中数量的变化情况。
然后,在操作S220,确定与初始时刻匹配的多个候选应用测试。
根据本公开的实施例,例如可以获取多个应用测试执行流量调整操作的操作时刻。确定多个应用测试中操作时刻与初始时刻匹配的应用测试作为候选应用测试。
示例性地,本实施例中,例如可以计算应用测试的操作时刻与初始时刻之间的差值,然后对计算该差值的绝对值。如果绝对值小于时长阈值,则确定该操作时刻与初始时刻匹配。否则,确定该操作时刻与初始时刻不匹配。其中,时长阈值可以根据实际需要确定。
在操作S230,根据数量变化信息,确定多个候选应用测试中的目标应用测试。
根据本公开的实施例,例如可以根据故障数据的数量变化信息,确定多个候选应用测试中与故障相关的应用测试,作为目标应用测试。
在操作S240,根据目标应用测试的实验数据,确定故障在目标应用程序中的位置。
根据本公开的实施例,实验数据例如可以包括版本信息。版本信息可以用于表示应用测试的版本。
根据本公开的实施例,例如可以解析实验数据,得到版本信息。确定与版本信息对应的代码变更信息。针对代码变更信息进行模拟操作,以便确定故障在目标应用程序中的位置。
根据本公开的实施例,根据故障数据的数量变化信息来确定目标应用测试,并根据目标应用测试的实验数据,对故障进行定位。可以在无法确定调用的发起对象的情况下,实现故障定位,提高了用户体验。
下面参考图3,结合具体实施例对上文所示的确定目标应用测试的方法做进一步说明。本领域技术人员可以理解,以下示例实施例仅用于理解本公开,本公开并不局限于此。
图3示意性示出了根据本公开的实施例的确定目标应用测试的方法的流程图。
如图3所示,该方法330包括在操作S331,获取多个候选应用测试中一个候选应用测试。
在操作S332,确定候选应用测试中至少一个流量调整操作的操作类型和操作时刻。
根据本公开的,候选应用测试包括对照组应用程序和至少一个实验组应用程序。流量调整操作可以用于调整分配给对照组应用程序和每个实验组应用程序的流量。流量调整操作的操作类型例如可以包括放量和缩量。其中,放量是指增加流量。缩量是指减少流量。
根据本公开的实施例,例如可以从应用测试平台获取候选应用测试中流量调整操作的操作类型和操作时刻。本实施例中,每个候选应用测试中可以进行过至少一次流量调整操作。
在操作S333,确定数量变化信息与至少一个流量调整操作的操作类型和操作时刻是否匹配。如果数量变化信息与至少一个流量调整操作的操作类型和操作时刻均匹配,则执行操作S334。否则,跳转执行操作S331,即获取多个候选应用测试中另一个候选应用测试继续执行上述操作。
在操作S334,确定候选应用测试作为目标应用测试。
根据本公开的实施例,例如可以根据数量变化信息,确定故障量趋势图,其中,故障量趋势图可以包括至少一个波段。基于此,可以确定至少一个波段内的变化趋势与至少一个流量调整操作的操作类型之间的第一匹配度,并确定至少一个波段的起始时刻与至少一个流量调整操作的操作时刻之间的第二匹配度。在第一匹配度和第二匹配度满足预定条件的情况下,确定故障量趋势图与至少一个流量调整操作的操作类型和操作时刻匹配。
根据本公开的实施例,如果波段内的变化趋势为增长,操作类型为放量,则可以确定该波段内变化趋势与该操作类型匹配。如果波段内的变化趋势为降低,操作类型为缩量,则可以确定该波段内变化趋势与该操作类型匹配。如果波段内的变化趋势为降低,操作类型为增量,则可以确定该波段内变化趋势与该操作类型不匹配。如果波段内的变化趋势为增长,操作类型为缩量,则可以确定该波段内变化趋势与该操作类型不匹配。
根据本公开的实施例,如果波段的起始时刻与流量调整操作的操作时刻之间的差值的绝对值小于第二时长阈值,则表示该起始时刻与该操作时刻匹配。否则,表示该起始时刻与该操作时刻不匹配。
示例性地,本实施例中,如果波段内变化趋势与该操作类型匹配,则第一匹配度可以为1,如果不匹配,则第一匹配度可以为0。如果该起始时刻与该操作时刻匹配,则第二匹配度可以为1,如果不匹配,则第二匹配度可以为0。基于此,预定条件例如可以包括第一匹配度和第二匹配度均大于0。
根据本公开的实施例,例如可以对故障数据按照生成时刻进行聚类,得到多个类。以多个类的类中心作为横坐标,以多个类中故障数据的数量作为纵坐标,生成故障量趋势图。
下面参考图4,结合具体实施例对上文所示的针对应用程序的故障定位方法做进一步说明。本领域技术人员可以理解,以下示例实施例仅用于理解本公开,本公开并不局限于此。
图4示意性示出了根据本公开的实施例的针对应用程序的故障定位的示意图。
在图4中示出了,在操作S401,应用程序可以从应用测试平台获取当前设备选中的应用测试对应的版本。该应用测试可以对应用程序进行新增或变更功能。本实施例中,应用测试可以包括AB实验。
在操作S402,在应用程序加入AB实验开关。从而应用测试平台可以控制AB实验开关打开或关闭对应的功能,从而可以提高线上的功能稳定性。
在操作S403,应用测试平台可以将流量分配切分为第一流量和第二流量。初始时将第一流量分配给A版本及将第二流量分配给B版本并执行应用测试过程。示例性的,假设流量总量为1000,则流量分配比例可以为8∶2,即将流量中的800条(80%)流量分配给A版本,将流量剩余的200条(20%)的流量分配给B版本。当A版本发生放量的情况下,可以将流量分配比例调整为9∶1,即将流量中的9000条(90%)的流量分配给A版本,将流量中剩余的1000条(10%)的流量分配给B版本。其中,A版本可以为实验组版本,B版本可以为对照组版本。
随着对应的应用测试放量,伴随着带来崩溃风险。在操作S404,应用程序上传故障数据和应用测试的实验数据到统计分析平台。统计分析平台可以聚类故障数据,得到故障量趋势图。
应用测试平台有记录每次放量和缩量的操作时刻。在操作S405,统计分析平台可以从应用测试平台获取操作时刻。
在操作S406,统计分析平台可以根据操作时刻和故障量趋势图进行匹配分析,从而确定发现引起故障的应用测试,根据应用测试对应的版本,确定程序代码。后续可以根据程序代码调用的系统位置,模拟用户可能的操作,看是否出现崩溃,从而进一步进行故障定位。
以下将结合图5对本公开提供的针对应用程序的故障定位装置进行描述。
图5示意性示出了根据本公开实施例的针对应用程序的故障定位装置的框图。
如图5所示,针对应用程序的故障定位装置500包括检测模块510、候选确定模块520、目标确定模块530和定位模块540。
检测模块510,用于在检测到与目标应用程序相关的故障数据的数量发生波动的情况下,确定波动的初始时刻和故障数据的数量变化信息。
候选确定模块520,用于确定与初始时刻匹配的多个候选应用测试。
目标确定模块530,用于根据数量变化信息,确定多个候选应用测试中的目标应用测试。
定位模块540,用于根据目标应用测试的实验数据,确定故障在目标应用程序中的位置。
根据本公开的实施例,目标确定模块例如可以可以包括第一确定子模块、匹配子模块和第二确定子模块。其中,第一确定子模块,用于针对多个候选应用测试中每个候选应用测试,确定候选应用测试中至少一个流量调整操作的操作类型和操作时刻。匹配子模块,用于确定数量变化信息与至少一个流量调整操作的操作类型和操作时刻是否匹配。第二确定子模块,用于在确定数量变化信息与至少一个流量调整操作的操作类型和操作时刻均匹配的情况下,确定候选应用测试作为目标应用测试。
根据本公开的实施例,匹配模块可以包括图生成子模块、第一匹配度确定子模块、第二匹配度确定子模块和匹配判断子模块。其中,图生成子模块,用于根据数量变化信息,确定故障量趋势图,其中,故障量趋势图包括至少一个波段。第一匹配度确定子模块,用于确定至少一个波段内的变化趋势与至少一个流量调整操作的操作类型之间的第一匹配度。第二匹配度确定子模块,用于确定至少一个波段的起始时刻与至少一个流量调整操作的操作时刻之间的第二匹配度。匹配判断子模块,用于在第一匹配度和第二匹配度满足预定条件的情况下,确定故障量趋势图与至少一个流量调整操作的操作类型和操作时刻匹配。
根据本公开的实施例,图生成子模块可以包括聚类单元和生成单元。其中,聚类单元,用于对故障数据按照生成时刻进行聚类,得到多个类。生成单元,用于以多个类的类中心作为横坐标,以多个类中故障数据的数量作为纵坐标,生成故障量趋势图。
根据本公开的实施例,候选确定模块可以包括获取子模块和候选确定子模块。其中,获取子模块,用于获取多个应用测试执行流量调整操作的操作时刻。候选确定子模块,用于确定多个应用测试中操作时刻与初始时刻匹配的应用测试作为候选应用测试。
根据本公开的实施例,实验数据可以包括版本信息。定位模块可以包括解析子模块、代码确定子模块和模拟子模块。其中,解析子模块,用于解析实验数据,得到版本信息。代码确定子模块,用于确定与版本信息对应的代码变更信息。模拟子模块,用于针对代码变更信息进行模拟操作,以便确定故障在目标应用程序中的位置。
根据本公开的实施例,本公开还提供了一种电子设备、一种可读存储介质和一种计算机程序产品。
图6示意性示出了可以用来实施本公开的实施例的示例电子设备600的框图。电子设备旨在表示各种形式的数字计算机,诸如,膝上型计算机、台式计算机、工作台、个人数字助理、服务器、刀片式服务器、大型计算机、和其它适合的计算机。电子设备还可以表示各种形式的移动装置,诸如,个人数字处理、蜂窝电话、智能电话、可穿戴设备和其它类似的计算装置。本文所示的部件、它们的连接和关系、以及它们的功能仅仅作为示例,并且不意在限制本文中描述的和/或者要求的本公开的实现。
如图6所示,设备600包括计算单元601,其可以根据存储在只读存储器(ROM)602中的计算机程序或者从存储单元606加载到随机访问存储器(RAM)603中的计算机程序,来执行各种适当的动作和处理。在RAM 603中,还可存储设备600操作所需的各种程序和数据。计算单元601、ROM 602以及RAM 603通过总线604彼此相连。输入/输出(I/O)接口605也连接至总线604。
设备600中的多个部件连接至I/O接口605,包括:输入单元606,例如键盘、鼠标等;输出单元607,例如各种类型的显示器、扬声器等;存储单元606,例如磁盘、光盘等;以及通信单元609,例如网卡、调制解调器、无线通信收发机等。通信单元609允许设备600通过诸如因特网的计算机网络和/或各种电信网络与其他设备交换信息/数据。
计算单元601可以是各种具有处理和计算能力的通用和/或专用处理组件。计算单元601的一些示例包括但不限于中央处理单元(CPU)、图形处理单元(GPU)、各种专用的人工智能(AI)计算芯片、各种运行机器学习模型算法的计算单元、数字信号处理器(DSP)、以及任何适当的处理器、控制器、微控制器等。计算单元601执行上文所描述的各个方法和处理,例如针对应用程序的故障定位方法。例如,在一些实施例中,针对应用程序的故障定位方法可被实现为计算机软件程序,其被有形地包含于机器可读介质,例如存储单元606。在一些实施例中,计算机程序的部分或者全部可以经由ROM 602和/或通信单元609而被载入和/或安装到设备600上。当计算机程序加载到RAM 603并由计算单元601执行时,可以执行上文描述的针对应用程序的故障定位方法的一个或多个步骤。备选地,在其他实施例中,计算单元601可以通过其他任何适当的方式(例如,借助于固件)而被配置为执行针对应用程序的故障定位方法。
本文中以上描述的系统和技术的各种实施方式可以在数字电子电路系统、集成电路系统、现场可编程门阵列(FPGA)、专用集成电路(ASIC)、专用标准产品(ASSP)、芯片上系统的系统(SOC)、复杂可编程逻辑设备(CPLD)、计算机硬件、固件、软件、和/或它们的组合中实现。这些各种实施方式可以包括:实施在一个或者多个计算机程序中,该一个或者多个计算机程序可在包括至少一个可编程处理器的可编程系统上执行和/或解释,该可编程处理器可以是专用或者通用可编程处理器,可以从存储系统、至少一个输入装置、和至少一个输出装置接收数据和指令,并且将数据和指令传输至该存储系统、该至少一个输入装置、和该至少一个输出装置。
用于实施本公开的方法的程序代码可以采用一个或多个编程语言的任何组合来编写。这些程序代码可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器或控制器,使得程序代码当由处理器或控制器执行时使流程图和/或框图中所规定的功能/操作被实施。程序代码可以完全在机器上执行、部分地在机器上执行,作为独立软件包部分地在机器上执行且部分地在远程机器上执行或完全在远程机器或服务器上执行。
在本公开的上下文中,机器可读介质可以是有形的介质,其可以包含或存储以供指令执行系统、装置或设备使用或与指令执行系统、装置或设备结合地使用的程序。机器可读介质可以是机器可读信号介质或机器可读储存介质。机器可读介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体系统、装置或设备,或者上述内容的任何合适组合。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或快闪存储器)、光纤、便捷式紧凑盘只读存储器(CD-ROM)、光学储存设备、磁储存设备、或上述内容的任何合适组合。
为了提供与用户的交互,可以在计算机上实施此处描述的系统和技术,该计算机具有:用于向用户显示信息的显示装置(例如,CRT(阴极射线管)或者LCD(液晶显示器)监视器);以及键盘和指向装置(例如,鼠标或者轨迹球),用户可以通过该键盘和该指向装置来将输入提供给计算机。其它种类的装置还可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的传感反馈(例如,视觉反馈、听觉反馈、或者触觉反馈);并且可以用任何形式(包括声输入、语音输入或者、触觉输入)来接收来自用户的输入。
可以将此处描述的系统和技术实施在包括后台部件的计算系统(例如,作为数据服务器)、或者包括中间件部件的计算系统(例如,应用服务器)、或者包括前端部件的计算系统(例如,具有图形用户界面或者网络浏览器的用户计算机,用户可以通过该图形用户界面或者该网络浏览器来与此处描述的系统和技术的实施方式交互)、或者包括这种后台部件、中间件部件、或者前端部件的任何组合的计算系统中。可以通过任何形式或者介质的数字数据通信(例如,通信网络)来将系统的部件相互连接。通信网络的示例包括:局域网(LAN)、广域网(WAN)和互联网。
计算机系统可以包括客户端和服务器。客户端和服务器一般远离彼此并且通常通过通信网络进行交互。通过在相应的计算机上运行并且彼此具有客户端-服务器关系的计算机程序来产生客户端和服务器的关系。
服务器可以是云服务器,又称为云计算服务器或云主机,是云计算服务体系中的一项主机产品,以解决了传统物理主机与VPS服务(″Virtual Private Server″,或简称″VPS″)中,存在的管理难度大,业务扩展性弱的缺陷。服务器也可以为分布式系统的服务器,或者是结合了区块链的服务器。
应该理解,可以使用上面所示的各种形式的流程,重新排序、增加或删除步骤。例如,本发公开中记载的各步骤可以并行地执行也可以顺序地执行也可以不同的次序执行,只要能够实现本公开公开的技术方案所期望的结果,本文在此不进行限制。
上述具体实施方式,并不构成对本公开保护范围的限制。本领域技术人员应该明白的是,根据设计要求和其他因素,可以进行各种修改、组合、子组合和替代。任何在本公开的精神和原则之内所作的修改、等同替换和改进等,均应包含在本公开保护范围之内。
Claims (15)
1.一种针对应用程序的故障定位方法,包括:
在检测到与目标应用程序相关的故障数据的数量发生波动的情况下,确定所述波动的初始时刻和所述故障数据的数量变化信息;
确定与所述初始时刻匹配的多个候选应用测试;
根据所述数量变化信息,确定所述多个候选应用测试中的目标应用测试;以及
根据所述目标应用测试的实验数据,确定所述故障在所述目标应用程序中的位置。
2.根据权利要求1所述的方法,其中,所述根据所述数量变化信息,确定所述多个候选应用测试中的目标应用测试,包括:
针对所述多个候选应用测试中每个候选应用测试,
确定所述候选应用测试中至少一个流量调整操作的操作类型和操作时刻;
确定所述数量变化信息与所述至少一个流量调整操作的操作类型和操作时刻是否匹配;
在确定所述数量变化信息与至少一个流量调整操作的操作类型和操作时刻均匹配的情况下,确定所述候选应用测试作为所述目标应用测试。
3.根据权利要求2所述的方法,其中,所述确定所述数量变化信息与所述至少一个流量调整操作的操作类型和操作时刻是否匹配,包括:
根据所述数量变化信息,确定故障量趋势图,其中,所述故障量趋势图包括至少一个波段;
确定所述至少一个波段内的变化趋势与所述至少一个流量调整操作的操作类型之间的第一匹配度;
确定所述至少一个波段的起始时刻与所述至少一个流量调整操作的操作时刻之间的第二匹配度;以及
在所述第一匹配度和所述第二匹配度满足预定条件的情况下,确定所述故障量趋势图与至少一个流量调整操作的操作类型和操作时刻匹配。
4.根据权利要求3所述的方法,其中,所述根据所述数量变化信息,确定故障量趋势图,包括:
对所述故障数据按照生成时刻进行聚类,得到多个类;以及
以所述多个类的类中心作为横坐标,以所述多个类中故障数据的数量作为纵坐标,生成所述故障量趋势图。
5.根据权利要求1所述的方法,其中,所述确定与所述初始时刻匹配的多个候选应用测试包括:
获取多个应用测试执行流量调整操作的操作时刻;以及
确定所述多个应用测试中操作时刻与所述初始时刻匹配的应用测试作为所述候选应用测试。
6.根据权利要求1所述的方法,其中,所述实验数据包括版本信息;所述根据所述目标应用测试的实验数据,对故障进行定位,包括:
解析所述实验数据,得到版本信息;
确定与所述版本信息对应的代码变更信息;以及
针对所述代码变更信息进行模拟操作,以便确定所述故障在所述目标应用程序中的位置。
7.一种针对应用程序的故障定位装置,包括:
检测模块,用于在检测到与目标应用程序相关的故障数据的数量发生波动的情况下,确定所述波动的初始时刻和所述故障数据的数量变化信息;
候选确定模块,用于确定与所述初始时刻匹配的多个候选应用测试;
目标确定模块,用于根据所述数量变化信息,确定所述多个候选应用测试中的目标应用测试;以及
定位模块,用于根据所述目标应用测试的实验数据,确定所述故障在所述目标应用程序中的位置。
8.根据权利要求7所述的装置,其中,所述目标确定模块,包括:
第一确定子模块,用于针对所述多个候选应用测试中每个候选应用测试,确定所述候选应用测试中至少一个流量调整操作的操作类型和操作时刻;
匹配子模块,用于确定所述数量变化信息与所述至少一个流量调整操作的操作类型和操作时刻是否匹配;
第二确定子模块,用于在确定所述数量变化信息与至少一个流量调整操作的操作类型和操作时刻均匹配的情况下,确定所述候选应用测试作为所述目标应用测试。
9.根据权利要求8所述的装置,其中,所述匹配模块,包括:
图生成子模块,用于根据所述数量变化信息,确定故障量趋势图,其中,所述故障量趋势图包括至少一个波段;
第一匹配度确定子模块,用于确定所述至少一个波段内的变化趋势与所述至少一个流量调整操作的操作类型之间的第一匹配度;
第二匹配度确定子模块,用于确定所述至少一个波段的起始时刻与所述至少一个流量调整操作的操作时刻之间的第二匹配度;以及
匹配判断子模块,用于在所述第一匹配度和所述第二匹配度满足预定条件的情况下,确定所述故障量趋势图与至少一个流量调整操作的操作类型和操作时刻匹配。
10.根据权利要求9所述的装置,其中,所述图生成子模块,包括:
聚类单元,用于对所述故障数据按照生成时刻进行聚类,得到多个类;以及
生成单元,用于以所述多个类的类中心作为横坐标,以所述多个类中故障数据的数量作为纵坐标,生成所述故障量趋势图。
11.根据权利要求7所述的装置,其中,所述候选确定模块,包括:
获取子模块,用于获取多个应用测试执行流量调整操作的操作时刻;以及
候选确定子模块,用于确定所述多个应用测试中操作时刻与所述初始时刻匹配的应用测试作为所述候选应用测试。
12.根据权利要求7所述的装置,其中,所述实验数据包括版本信息;所述定位模块,包括:
解析子模块,用于解析所述实验数据,得到版本信息;
代码确定子模块,用于确定与所述版本信息对应的代码变更信息;以及
模拟子模块,用于针对所述代码变更信息进行模拟操作,以便确定所述故障在所述目标应用程序中的位置。
13.一种电子设备,包括:
至少一个处理器;以及
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行权利要求1-6中任一项所述的方法。
14.一种存储有计算机指令的非瞬时计算机可读存储介质,其中,所述计算机指令用于使所述计算机执行根据权利要求1-6中任一项所述的方法。
15.一种计算机程序产品,包括计算机程序/指令,其特征在于,该计算机程序/指令被处理器执行时实现权利要求1-6中任一项所述方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211003588.7A CN115328793A (zh) | 2022-08-19 | 2022-08-19 | 针对应用程序的故障定位方法、装置以及设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211003588.7A CN115328793A (zh) | 2022-08-19 | 2022-08-19 | 针对应用程序的故障定位方法、装置以及设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115328793A true CN115328793A (zh) | 2022-11-11 |
Family
ID=83925689
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211003588.7A Pending CN115328793A (zh) | 2022-08-19 | 2022-08-19 | 针对应用程序的故障定位方法、装置以及设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115328793A (zh) |
-
2022
- 2022-08-19 CN CN202211003588.7A patent/CN115328793A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110489306A (zh) | 一种报警阈值确定方法、装置、计算机设备及存储介质 | |
CN107688533B (zh) | 应用程序测试方法、装置、计算机设备和存储介质 | |
CN113438106B (zh) | 内容分发网络处理方法、装置及电子设备 | |
CN110858172A (zh) | 一种自动化测试代码生成方法和装置 | |
CN115878394A (zh) | 内存测试方法、装置、电子设备及存储介质 | |
CN113760769A (zh) | 测试用例处理方法、装置、电子设备以及存储介质 | |
CN114389969A (zh) | 客户端的测试方法、装置、电子设备和存储介质 | |
CN114546830A (zh) | 回归测试方法、装置、电子设备及存储介质 | |
CN113641544A (zh) | 用于检测应用状态的方法、装置、设备、介质和产品 | |
CN116414608A (zh) | 异常检测方法、装置、设备及存储介质 | |
CN113495841B (zh) | 一种兼容性检测方法、装置、设备、存储介质及程序产品 | |
CN115328793A (zh) | 针对应用程序的故障定位方法、装置以及设备 | |
CN113590447B (zh) | 埋点处理方法和装置 | |
KR102464688B1 (ko) | 모니터링 결과의 이벤트 등급 결정 방법 및 장치 | |
CN114546799A (zh) | 埋点日志校验方法、装置、电子设备、存储介质及产品 | |
CN112559084B (zh) | 用于治理服务的方法、装置、设备、存储介质及程序产品 | |
CN115310096A (zh) | 一种安全漏洞的处理方法、装置、设备及介质 | |
CN112799642B (zh) | 用于处理数据的方法、装置、设备以及存储介质 | |
CN114003497A (zh) | 业务系统的测试方法、装置、设备及存储介质 | |
CN114095394A (zh) | 网络节点故障检测方法、装置、电子设备及存储介质 | |
CN114138358A (zh) | 应用程序的启动优化方法、装置、设备和存储介质 | |
CN112994976A (zh) | 一种网关测试方法、装置、电子设备及存储介质 | |
CN113760765B (zh) | 代码测试方法、装置、电子设备和存储介质 | |
CN115190008B (zh) | 故障处理方法、故障处理装置、电子设备及存储介质 | |
CN117852043A (zh) | 异常设备的确定方法、装置、电子设备以及存储介质 |
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 |