CN114138537A - 一种面向安卓应用的崩溃信息线上分析方法 - Google Patents

一种面向安卓应用的崩溃信息线上分析方法 Download PDF

Info

Publication number
CN114138537A
CN114138537A CN202111471664.2A CN202111471664A CN114138537A CN 114138537 A CN114138537 A CN 114138537A CN 202111471664 A CN202111471664 A CN 202111471664A CN 114138537 A CN114138537 A CN 114138537A
Authority
CN
China
Prior art keywords
crash
application
information
collapse
user
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
Application number
CN202111471664.2A
Other languages
English (en)
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.)
Nanjing University
Original Assignee
Nanjing University
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 Nanjing University filed Critical Nanjing University
Priority to CN202111471664.2A priority Critical patent/CN114138537A/zh
Publication of CN114138537A publication Critical patent/CN114138537A/zh
Pending legal-status Critical Current

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
    • 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/0706Error 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 the processing taking place on a specific hardware platform or in a specific software environment
    • G06F11/0718Error 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 the processing taking place on a specific hardware platform or in a specific software environment in an object-oriented system
    • 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/0766Error or fault reporting or storing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3003Monitoring arrangements specially adapted to the computing system or computing system component being monitored
    • G06F11/302Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a software system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3051Monitoring arrangements for monitoring the configuration of the computing system or of the computing system component, e.g. monitoring the presence of processing resources, peripherals, I/O links, software programs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3065Monitoring arrangements determined by the means or processing involved in reporting the monitored data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/24Classification techniques
    • G06F18/241Classification techniques relating to the classification model, e.g. parametric or non-parametric approaches
    • G06F18/2411Classification techniques relating to the classification model, e.g. parametric or non-parametric approaches based on the proximity to a decision surface, e.g. support vector machines
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/24Classification techniques
    • G06F18/241Classification techniques relating to the classification model, e.g. parametric or non-parametric approaches
    • G06F18/2415Classification techniques relating to the classification model, e.g. parametric or non-parametric approaches based on parametric or probabilistic models, e.g. based on likelihood ratio or false acceptance rate versus a false rejection rate
    • G06F18/24155Bayesian classification

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Data Mining & Analysis (AREA)
  • Computing Systems (AREA)
  • Bioinformatics & Computational Biology (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Bioinformatics & Cheminformatics (AREA)
  • Artificial Intelligence (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Evolutionary Computation (AREA)
  • Evolutionary Biology (AREA)
  • Probability & Statistics with Applications (AREA)
  • Health & Medical Sciences (AREA)
  • Biomedical Technology (AREA)
  • Mathematical Physics (AREA)
  • Debugging And Monitoring (AREA)

Abstract

本发明提出了一种面向安卓应用的崩溃信息线上分析方法,用于自动捕捉移动应用运行时的崩溃并提供多维可视化崩溃报告,该发明的主要创新在于(1)收集设备软硬件信息、用户页面路径跟踪及崩溃截图。(2)引入支持向量机和朴素贝叶斯分类算法实现崩溃崩溃,基于模式匹配和不一致性分析的方法实现崩溃去重。(3)多维可视化展示崩溃报告,提供了页面分布视图和崩溃解决建议查看,通过开放第三方解决提交及查看入口,可实现自定义崩溃解决方案,并对有用建议点赞,以解决解决方案的不完善性问题。

Description

一种面向安卓应用的崩溃信息线上分析方法
技术领域
本发明属于计算机技术中的软件测试技术领域,尤其是软件测试中自动化测试技术领域,用于对已上线安卓应用的崩溃捕获、收集与分析。
背景技术
随着移动互联网产业的持续高速增长,移动终端普及率越来越高。作为用户最多的操作系统,安卓平台上每天都有成千上万的新应用发布,其应用总数也早已到达百万级别。国内的安卓生态环境较为独特,各大手机厂商对安卓系统深度定制,缺少统一的设备软硬件标准,且没有统一的应用发布平台,各大厂商各自为战,使得安卓碎片化问题尤为严重。在这种情况下,兼容不同厂商的安卓系统版本和设备型号对移动应用质量无疑有着严苛的要求。
大多数商业应用在发布前都会经过严格的测试流程,测试阶段检测到的缺陷被修复后才会将应用发布上线,然而未检测的缺陷会被直接暴露给用户。其中,崩溃是应用缺陷中严重等级最高的一类,通常会直接导致用户流失。对于开发者来说,用户使用应用过程中发生的崩溃是非常隐蔽且不易复现的。大部分移动应用开发者对于崩溃的跟踪通常源于小部分核心用户的反馈。用户上报缺陷给客服,客服对用户反馈结果进行整合后反馈给测试和开发人员。同时由于用户专业水平不一,无法对缺陷准确描述,且不能记录缺陷发生时的log日志和相关调试信息,导致测试人员复现缺陷和开发人员定位及修复缺陷都需要较大的成本。因此,通过崩溃监控分析工具实时监测上线应用运行过程中的崩溃和闪退等异常,以协助开发者分析崩溃原因和定位崩溃位置已成为移动应用测试中的一种非常重要方式。
发明内容
本发明要解决的问题是:自动捕获移动用户使用过程中的崩溃,并展示多维度可视化崩溃报告。
本发明的技术方案为:面向安卓应用的崩溃信息线上分析系统,其特征是通过嵌入式SDK自动捕获安卓应用崩溃并收集崩溃相关信息,包括设备硬件信息、设备性能状态信息、用户页面路径跟踪及崩溃截图等内容。系统自动对崩溃异常堆栈进行解析,完成崩溃的分类和去重。系统具备产品管理、崩溃过滤与搜索、崩溃详情查看和实时监控分析功能,崩溃详情从页面分布、系统版本分布、机型设备分布、详细堆栈、上报趋势等多个维度进行展示,以协助开发人员快速查找、定位和修复崩溃。包括以下步骤:
1)用户通过填写产品名称、产品类型及产品描述等内容,系统将自动生成应用app_key,用于唯一标识应用;
2)用户按照系统集成说明将SDK嵌入应用,实现系统与应用的接入;
3)应用启动时,首先利用Java反射机制监听Activity生命周期,以获取用户页面操作路径和截图,同时判断设备中是否存在遗留未上传文件,若存在应立即上传至服务器;
4)应用崩溃时,通过安卓异常处理机制捕获异常,并收集异常堆栈、设备硬件信息、设备性能状态信息等内容,并读取已获取的用户操作路径及崩溃截图等信息一并上传至服务器;
5)对已上传的崩溃数据进行解析,采用支持向量机和朴素贝叶斯分类算法预测崩溃类别,并将类别与解决方案一一对应;通过模式匹配和不一致性分析方法实现崩溃去重;
6)在分类和去重的基础上,从页面分布、机型设备分布、上报趋势、应用版本分布、详细堆栈、用户页面跟踪、解决方案等维度生成可视化崩溃报告,以帮助用户快速查找、定位和修复崩溃;
7)统计应用的崩溃发生次数、影响用户数、总问题数、已修复问题数、最新问题数等实时监控分析数据,以帮助用户实时掌控应用运行状况。
本发明中重写Activity生命周期中的主要方法,并利用Java反射机制替换原生方法,通过监听Activity生命周期以获取用户操作路径和崩溃截图。
本发明中通过对结构化堆栈信息的分析,对异常堆栈进行数据预处理,并将其哈希向量化,再采用支持向量机和朴素贝叶斯分类算法训练分类模型以预测崩溃类别,提高了崩溃分类的精准性。
本发明中利用模式匹配提取堆栈关键信息,并结合应用包名、app_key、应用版本等三个属性作为不一致标签,根据四个属性是否完全一致的结果进行去重。
本发明中从各维度展示可视化崩溃报告,同时为用户提供系统崩溃解决建议和第三方解决建议,即用户可提交自定义解决建议且可以查看第三方解决建议并对其点赞,以完善崩溃解决建议。
本发明中通过聚合同一类别或堆栈关键信息相同的崩溃数据,这类相似的崩溃数据即堆栈信息基本一致,但存在报错代码行数不同或Activity不同等略微差别,通过展示不同页面上的崩溃分布,能够帮助开发者追溯修复类似的Bug。
本发明的有益效果是:可以自动捕获应用运行时崩溃,以友好界面提示用户并退出应用,将崩溃相关信息及时上报到系统,从多个不同维度统计和分析崩溃信息并展示详细的崩溃报告,帮助开发者快速定位和修复应用程序错误,全方位提升安卓应用质量。
附图说明
图1系统执行流程图
图2崩溃分类示例代码
图3模式匹配流程图
图4产品管理截图
图5崩溃列表截图
图6崩溃详情截图
图7实时监控分析截图
具体实施方法
本发明中目的是自动捕获应用运行时崩溃,基于支持向量机算法预测崩溃类别,采用模式匹配和不一致性分析去重崩溃,最终生成多维可视化崩溃报告。具体实施方式有以下几个步骤:崩溃信息收集、崩溃分类与去重和崩溃报告可视化,从而得到最终结果。
1.崩溃信息收集
通过重写安卓生命周期中的主要方法,采用切面编程技术替换系统原生方法,在各生命周期状态函数中,获取当前设备时间、Activity名称,Activity当前状态以及调用截屏函数截取当前页面。基于安卓异常处理机制捕获应用运行时的崩溃,即通过自定义异常处理器UncaughtExceptionHandler并将其设置为全局的异常处理器实现,在捕获异常的同时获取异常堆栈信息,收集设备硬件信息和设备性能状态信息。
2.崩溃去重与分类
实现崩溃的去重与分类。分类过程为基于已收集的崩溃数据并采用支持向量机和朴素贝叶斯分类算法训练分类模型,主要包括数据预处理、读取训练集、文本向量化、训练模型及模型评估几个步骤。其中,数据预处理过程为特征提取和类型标注,文本向量化采用哈希算法实现。去重过程包括模式匹配提取关键句和不一致性分析两个步骤,通过模式匹配提取关键句keySentences,并结合应用包名、app_key、应用版本三个属性作为去重的不一致标签,根据四个属性是否完全一致的结果进行去重。其模式匹配提取流程图6所示。
3.崩溃可视化
将产品管理、崩溃过滤与查询、崩溃详情查看和实时监控分析等过程,以网页的形式可视化。产品管理提供新建产品、修改产品和删除产品等功能,其页面截图如图4所示。崩溃过滤与查询根据崩溃类型、崩溃状态进行过滤,同时可以直接输入关键词进行查询,其页面截图如图5所示。崩溃详情查看提供多维度的崩溃数据分析,包括崩溃发生次数、影响用户数、解决方案、不同页面分布、机型设备分布、应用版本分布、上报趋势、用户页面路径跟踪、详细堆栈信息和设备软硬件信息等内容,其页面截图如图6所示。其中解决方案与崩溃类别一一对应,修改崩溃状态时可以提交自定义解决方案,查看第三方解决方案时可对该建议进行点赞。实时监控分析负责分析应用近况,如崩溃发生次数、影响用户数、影响用户占比、上报趋势、总问题数、以修复数、新发现问题数和崩溃发生次数排名Top5的崩溃概要,其页面截图如图7所示。

Claims (5)

1.一种面向安卓应用的崩溃信息线上分析方法,其特征是:(1)应用通过SDK接入系统,系统自动监控应用运行状态,全局捕获崩溃异常堆栈,同时自动收集并上传崩溃发生时的上下文信息,包括设备软硬件参数、页面路径跟踪、崩溃截图、内存占用;(2)通过关键句模式匹配和不一致性分析对崩溃去重,基于支持向量机和朴素贝叶斯算法进行崩溃分类,并按页面分布、版本分布、设备分布等多个维度展示详细崩溃信息;(3)针对各崩溃类别提供参考解决建议,并支持提交和点赞第三方解决建议,智能推荐同类别崩溃高分解决建议,具体包括以下步骤:
1)用户通过填写产品名称、产品类型及产品描述等内容,系统将自动生成应用app_key,用于唯一标识应用;
2)用户按照系统集成说明将SDK嵌入应用,实现系统与应用的接入;
3)应用启动时,首先利用Java反射机制监听Activity生命周期,以获取用户页面操作路径和截图,同时判断设备中是否存在遗留未上传文件,若存在应立即上传至服务器;
4)应用崩溃时,通过安卓异常处理机制捕获异常,并收集异常堆栈、设备硬件信息、设备性能状态信息等内容,并读取已获取的用户操作路径及崩溃截图等信息一并上传至服务器;
5)对已上传的崩溃数据进行解析,采用支持向量机和朴素贝叶斯分类算法预测崩溃类别,并将类别与解决方案一一对应;通过模式匹配和不一致性分析方法实现崩溃去重;
6)在分类和去重的基础上,从页面分布、机型设备分布、上报趋势、应用版本分布、详细堆栈、用户页面跟踪、解决方案等维度生成可视化崩溃报告,以帮助用户快速查找、定位和修复崩溃;
7)统计应用的崩溃发生次数、影响用户数、总问题数、已修复问题数、最新问题数等实时监控分析数据,以帮助用户实时掌控应用运行状况。
2.据权利要求1所述的面向安卓应用的崩溃信息线上分析系统,其特征是全局监听并自动捕获用户端发生的应用崩溃,同时收集并上传崩溃发生设备的完整上下文信息以实现多维度崩溃分析和展示。
3.据权利要求1所述的面向安卓应用的崩溃信息线上分析系统,其特征是通过模式匹配和不一致性分析对结构化崩溃信息进行去重,并将其异常堆栈哈希向量化,再采用支持向量机和朴素贝叶斯分类算法训练分类模型以预测崩溃类别。
4.据权利要求1所述的面向安卓应用的崩溃信息线上分析系统,其特征是从页面、应用版本、机型等多个不同维度分析并展示可视化崩溃报告,并详细分析展示各类别崩溃页面路径跟踪、崩溃截图以及监控崩溃上报趋势。
5.据权利要求1所述的面向安卓应用的崩溃信息线上分析系统,其特征是针对崩溃类别提供参考解决建议,并支持用户添加和点赞第三方解决建议,智能推荐高赞同类别崩溃第三方解决建议。
CN202111471664.2A 2021-11-30 2021-11-30 一种面向安卓应用的崩溃信息线上分析方法 Pending CN114138537A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202111471664.2A CN114138537A (zh) 2021-11-30 2021-11-30 一种面向安卓应用的崩溃信息线上分析方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202111471664.2A CN114138537A (zh) 2021-11-30 2021-11-30 一种面向安卓应用的崩溃信息线上分析方法

Publications (1)

Publication Number Publication Date
CN114138537A true CN114138537A (zh) 2022-03-04

Family

ID=80387920

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202111471664.2A Pending CN114138537A (zh) 2021-11-30 2021-11-30 一种面向安卓应用的崩溃信息线上分析方法

Country Status (1)

Country Link
CN (1) CN114138537A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114756400A (zh) * 2022-06-15 2022-07-15 四川新网银行股份有限公司 一种基于安卓系统的应用程序异常处理方法及系统

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114756400A (zh) * 2022-06-15 2022-07-15 四川新网银行股份有限公司 一种基于安卓系统的应用程序异常处理方法及系统
CN114756400B (zh) * 2022-06-15 2022-08-26 四川新网银行股份有限公司 一种基于安卓系统的应用程序异常处理方法及系统

Similar Documents

Publication Publication Date Title
Wehaibi et al. Examining the impact of self-admitted technical debt on software quality
Da Costa et al. A framework for evaluating the results of the szz approach for identifying bug-introducing changes
Li et al. Which log level should developers choose for a new logging statement?
Li et al. Towards just-in-time suggestions for log changes
US10102113B2 (en) Software test automation systems and methods
D'Ambros et al. On the relationship between change coupling and software defects
Wu et al. Changelocator: locate crash-inducing changes based on crash reports
Zampetti et al. Recommending when design technical debt should be self-admitted
CN112486557A (zh) 基于Devops的完整生命周期管理平台及方法
CN111108481B (zh) 故障分析方法及相关设备
Perry et al. An empirical study of software interface faults
Caglayan et al. Predicting defective modules in different test phases
CN112433948A (zh) 一种基于网络数据分析的仿真测试系统及方法
CN110765007A (zh) 一种面向安卓应用的崩溃信息线上分析方法
CN115952081A (zh) 一种软件测试方法、装置、存储介质及设备
Gholamian et al. A comprehensive survey of logging in software: From logging statements automation to log mining and analysis
CN111353304B (zh) 一种众包测试报告聚合和摘要的方法
CN114138537A (zh) 一种面向安卓应用的崩溃信息线上分析方法
CN113535538A (zh) 应用全链路自动化测试方法、装置、电子设备和存储介质
Yan et al. Revisiting the correlation between alerts and software defects: A case study on myfaces, camel, and cxf
CN112783763B (zh) 软件质量检测方法、装置、电子设备以及存储介质
Panchal An Empirical Study of Runtime Files Attached to Crash Reports
Puspaningrum et al. Vulnerable Source Code Detection using SonarCloud Code Analysis
US11755454B2 (en) Defect resolution
Wang et al. A systematic mapping study of bug reproduction and localization

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