应用程序崩溃根原因识别方法、装置及电子设备制造方法及图纸

技术编号:35035277 阅读:13 留言:0更新日期:2022-09-24 23:11
本申请属于网络技术与安全领域,涉及应用程序崩溃根原因识别方法、装置及电子设备。该方法包括:获取引起应用程序崩溃的崩溃用例,基于崩溃用例生成多个正测试用例和多个负测试用例;构建与应用程序对应的控制流图,并构建与控制流图中监控点处的变量对应的断言;输入各正测试用例和各负测试用例,以获取变量与各测试用例对应的数据,根据数据计算断言中的参数值,并根据参数值对监控点进行筛选,以获取待选监控点;计算与待选监控点对应的执行等级,根据执行等级对待选监控点进行筛选,以获取指示应用程序崩溃根原因的目标监控点。本申请能够自动化实现精准定位应用程序崩溃根原因,并且可以提供表征崩溃用例的错误行为的上下文信息。下文信息。下文信息。

【技术实现步骤摘要】
应用程序崩溃根原因识别方法、装置及电子设备


[0001]本申请涉及网络技术与安全领域,特别涉及一种应用程序崩溃根原因识别方法、应用程序崩溃根原因识别装置、计算机存储介质及电子设备。

技术介绍

[0002]识别应用程序崩溃的根原因是开发应用程序中的重要一环,同时识别应用程序崩溃的根原因也是一项耗时的工作,相对底层软件故障修改,软件开发过程中开发人员花费了更多的时间用于发现程序崩溃的根本原因。
[0003]针对这个问题,业界已经提出了各种依赖于反向执行和反向污染分析等技术的方法。这些技术要么仅限于某些故障类型,要么为分析人员提供修复说明,但没有上下文信息或对潜在故障的解释,只能发现程序崩溃的地方。通常,崩溃的根原因并不位于程序崩溃的地方,它可能在位于程序的执行流程中更早的地方,开发人员需要从崩溃位置向后分析路径以找到根本原因,这需要付出巨大的努力。
[0004]需要说明的是,上述
技术介绍
部分公开的信息仅用于加强对本申请的背景的理解。

技术实现思路

[0005]本申请的目的在于提供一种应用程序崩溃根原因识别方法、应用程序崩溃根原因识别装置、计算机存储介质及电子设备,进而至少在一定程度上实现自动分析并识别应用程序崩溃根原因,还可以为分析人员提供有关表征崩溃用例的错误行为的上下文信息。
[0006]本申请的其他特性和优点将通过下面的详细描述变得显然,或部分地通过本申请的实践而习得。
[0007]根据本申请的第一方面,提供一种应用程序崩溃根原因识别方法,包括:
[0008]获取引起应用程序崩溃的崩溃用例,基于所述崩溃用例生成多个正测试用例和多个负测试用例;
[0009]构建与所述应用程序对应的控制流图,并构建与所述控制流图中监控点处的变量对应的断言;
[0010]输入各所述正测试用例和各所述负测试用例,以获取所述变量与各所述测试用例对应的数据,根据所述数据计算所述断言中的参数值,并根据所述参数值对所述监控点进行筛选,以获取待选监控点;
[0011]计算与所述待选监控点对应的执行等级,根据所述执行等级对所述待选监控点进行筛选,以获取指示所述应用程序崩溃根原因的目标监控点。
[0012]根据本申请的第二方面,提供一种应用程序崩溃根原因识别装置,包括:
[0013]测试用例创建模块,用于获取引起应用程序崩溃的崩溃用例,基于所述崩溃用例生成多个正测试用例和多个负测试用例;
[0014]控制流图创建模块,用于构建与所述应用程序对应的控制流图,并构建与所述控
制流图中监控点处的变量对应的断言;
[0015]第一筛选模块,用于输入各所述正测试用例和各所述负测试用例,以获取所述变量与各所述测试用例对应的数据,根据所述数据计算所述断言中的参数值,并根据所述参数值对所述监控点进行筛选,以获取待选监控点;
[0016]第二筛选模块,用于计算与所述待选监控点对应的执行等级,根据所述执行等级对所述待选监控点进行筛选,以获取指示所述应用程序崩溃根原因的目标监控点。
[0017]根据本申请的第三方面,提供一种计算机存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现上述的应用程序崩溃根原因识别方法。
[0018]根据本申请的第四方面,提供一种电子设备,其特征在于,包括:
[0019]处理器;以及
[0020]存储器,用于存储所述处理器的可执行指令;
[0021]其中,所述处理器配置为经由执行所述可执行指令来执行上述的应用程序崩溃根原因识别方法。
[0022]由上述技术方案可知,本申请示例性实施例中的应用程序崩溃根原因识别方法、应用程序崩溃根原因识别装置、计算机存储介质及电子设备至少具备以下优点和积极效果:
[0023]本申请中的应用程序崩溃根原因识别方法,在获取导致应用程序崩溃的崩溃用例后,可以基于崩溃用例构建正测试用例和负测试用例,同时构建与应用程序对应的控制流图,在控制流图中标注有节点和监控点,对于各监控点可以根据监控点处的变量构建与其对应的断言;接着输入正测试用例和负测试用例,在运行应用程序的过程中记录各监控点处各变量对应各测试用例的数据,并根据该数据得到断言中的参数值,进而根据断言中的参数值对监控点进行筛选以获取待选监控点,最后计算与待选监控点对应的执行等级,并根据执行等级对待选监控点进行筛选,以获取指示应用程序崩溃根原因的目标监控点。本申请实施例一方面能够基于控制流图和各监控点对应的断言,以自动化方式精准识别导致应用程序崩溃的根原因,另一方面能够提供表征崩溃用例的错误行为的上下文信息。
[0024]本申请应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本申请。
附图说明
[0025]此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本申请的实施例,并与说明书一起用于解释本申请的原理。显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0026]图1示意性地示出了本申请实施例中应用程序崩溃根原因识别方法的流程示意图。
[0027]图2示意性地示出了本申请实施例中控制流图的结构示意图。
[0028]图3示意性地示出了本申请实施例中获取待选监控点的流程示意图。
[0029]图4示意性地示出了本申请实施例中计算执行等级的流程示意图。
[0030]图5示意性地示出了本申请中应用程序崩溃根原因识别装置的结构框图。
[0031]图6示意性示出了适于用来实现本申请实施例的电子设备的计算机系统结构框图。
具体实施方式
[0032]现在将参考附图更全面地描述示例实施方式。然而,示例实施方式能够以多种形式实施,且不应被理解为限于在此阐述的范例;相反,提供这些实施方式使得本申请将更加全面和完整,并将示例实施方式的构思全面地传达给本领域的技术人员。
[0033]此外,所描述的特征、结构或特性可以以任何合适的方式结合在一个或更多实施例中。在下面的描述中,提供许多具体细节从而给出对本申请的实施例的充分理解。然而,本领域技术人员将意识到,可以实践本申请的技术方案而没有特定细节中的一个或更多,或者可以采用其它的方法、组元、装置、步骤等。在其它情况下,不详细示出或描述公知方法、装置、实现或者操作以避免模糊本申请的各方面。
[0034]本说明书中使用用语“一个”、“一”、“该”和“所述”用以表示存在一个或多个要素/组成部分/等;用语“包括”和“具有”用以表示开放式的包括在内的意思并且是指除了列出的要素/组成部分/等之外还可存在另外的要素/组成部分/等;用语“第一”和“第二”等仅作为标记使用,不是对其对象的数量限制。
[0035]附图中所示的方框图仅仅是功能实体,不一定必须与物理上独立的实体相对应。即,可以采用软件形式来实现这些功能实体,或在一个或多个硬件模块或集成电路中实现本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种应用程序崩溃根原因识别方法,其特征在于,包括:获取引起应用程序崩溃的崩溃用例,基于所述崩溃用例生成多个正测试用例和多个负测试用例;构建与所述应用程序对应的控制流图,并构建与所述控制流图中监控点处的变量对应的断言;输入各所述正测试用例和各所述负测试用例,以获取所述变量与各所述测试用例对应的数据,根据所述数据计算所述断言中的参数值,并根据所述参数值对所述监控点进行筛选,以获取待选监控点;计算与所述待选监控点对应的执行等级,根据所述执行等级对所述待选监控点进行筛选,以获取指示所述应用程序崩溃根原因的目标监控点。2.根据权利要求1所述的方法,其特征在于,所述构建与所述应用程序对应的控制流图,并构建与所述控制流图中监控点处的变量对应的断言,包括:根据所述控制流图中各控制流边的走向设置节点,并对所述节点编号;在所述控制流边的起点位置设置所述监控点,对所述监控点编号,并根据所述监控点处的变量构建所述断言。3.根据权利要求1或2所述的方法,其特征在于,所述断言包括与所述监控点对应的编号、布尔表达式和评价分数,所述评价分数用于指示所述断言区分崩溃与非崩溃的能力。4.根据权利要求1所述的方法,其特征在于,所述构建与所述控制流图中监控点处的变量对应的断言,包括:当所述变量为数字型变量时,生成与所述数字型变量对应的第一布尔表达式;当所述变量为字符串型变量时,生成与字符串长度对应的第二布尔表达式和与字符串包含的特殊字符个数对应的第三布尔表达式。5.根据权利要求4中所述的方法,其特征在于,所述第一布尔表达式为:R∈[C[1]min,C[1]max]∪[C[2]min,C[2]max]∪

∪[C[N]min,C[N]max];所述第二布尔表达式为:L∈[C[1]min,C[1]max]∪[C[2]min,C[2]max]∪

∪[C[N]min,C[N]max];所述第三布尔表达式为:LS∈[C[1]min,C[1]max]∪[C[2]min,C[2]max]∪

∪[C[N]min,C[N]max];其中,C[i]min为常数序列C[i]中的最小值,C[i]max为常数序列C[i]中的最大值,i=1,2
……
N,N为正整数。6.根据权利要求1所述的方法,其特征在于,所述监控点的数量为多个;所述参数值包括布尔表达式和评价分数;所述根据所述数据计算所述断言中的参数值,包括:遍历各所述监控点处的变量,将每一个所述变量作为目标变量,获取所述目标变量与各所述测试用例对应的目标数据,对所述目标数据进行处理,以获取与所述目标变量对应的断言所包含的布尔表达式中的常数序列;将所述常数序列置入所述布尔表达式,并根据置入所述常数序列的所述布尔表达式计算与所述目标变量对应的断言的预测准确性;
根据所述预测准确性计算所述评价分数。7.根据权利要求6所述的方法,其特征在于,所述对所述目标数据进行处理,以获取与所述目标变量对应的断言所包含的布尔表达式中的常数序列,包括:从所述目标数据中获取与所述正测试用例对应的待处理数据;对所述待处理数据进行聚类,以生成一个或多个子数据集,并根据所述子数据集中的最大值和最小值确定所述常数序列。8.根据权利要求6所述的方法,其特征在于,所述根据置入所述常数序列的所述布尔表达式计算与所述目标变量对应的断言的预测准确性,包括:根据公式(1)计算所述预测准确性:其中,Q为预测准确性,C
f
为错误预测崩溃的数量,C
t
为正确预测崩溃的数量,N
f
为错误预测非崩溃的数量,N
t
为正确预测非崩溃的数量。9.根据权利要求6所述的方法,其特征在于,所述根据所述预测准确性确...

【专利技术属性】
技术研发人员:沈雷
申请(专利权)人:中国电信股份有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1