CN110765007A - 一种面向安卓应用的崩溃信息线上分析方法 - Google Patents
一种面向安卓应用的崩溃信息线上分析方法 Download PDFInfo
- Publication number
- CN110765007A CN110765007A CN201910952058.9A CN201910952058A CN110765007A CN 110765007 A CN110765007 A CN 110765007A CN 201910952058 A CN201910952058 A CN 201910952058A CN 110765007 A CN110765007 A CN 110765007A
- 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
Links
- 238000004458 analytical method Methods 0.000 title claims abstract description 23
- 238000009826 distribution Methods 0.000 claims abstract description 17
- 238000012706 support-vector machine Methods 0.000 claims abstract description 8
- 230000000007 visual effect Effects 0.000 claims abstract description 7
- 238000007635 classification algorithm Methods 0.000 claims abstract description 6
- 238000000034 method Methods 0.000 claims description 16
- 238000012544 monitoring process Methods 0.000 claims description 12
- 230000000694 effects Effects 0.000 claims description 7
- 230000008439 repair process Effects 0.000 claims description 7
- 230000002159 abnormal effect Effects 0.000 claims description 4
- 238000004422 calculation algorithm Methods 0.000 claims description 3
- 238000013145 classification model Methods 0.000 claims description 3
- 230000010354 integration Effects 0.000 claims description 2
- 239000000243 solution Substances 0.000 claims 4
- 239000012088 reference solution Substances 0.000 claims 1
- 238000012800 visualization Methods 0.000 abstract description 2
- 230000007547 defect Effects 0.000 description 8
- 238000012360 testing method Methods 0.000 description 5
- 230000015556 catabolic process Effects 0.000 description 3
- 238000000605 extraction Methods 0.000 description 3
- 238000001914 filtration Methods 0.000 description 3
- 238000007781 pre-processing Methods 0.000 description 3
- 238000013522 software testing Methods 0.000 description 2
- 238000012549 training Methods 0.000 description 2
- 230000005856 abnormality Effects 0.000 description 1
- 230000004931 aggregating effect Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000007405 data analysis Methods 0.000 description 1
- 238000011156 evaluation Methods 0.000 description 1
- 230000003203 everyday effect Effects 0.000 description 1
- 238000013467 fragmentation Methods 0.000 description 1
- 238000006062 fragmentation reaction Methods 0.000 description 1
- 238000002372 labelling Methods 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/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
本发明提出了一种面向安卓应用的崩溃信息线上分析方法,用于自动捕捉移动应用运行时的崩溃并提供多维可视化崩溃报告,该发明的主要创新在于(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所述的面向安卓应用的崩溃信息线上分析系统,其特征是针对崩溃类别提供参考解决建议,并支持用户添加和点赞第三方解决建议,智能推荐高赞同类别崩溃第三方解决建议。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910952058.9A CN110765007A (zh) | 2019-09-29 | 2019-09-29 | 一种面向安卓应用的崩溃信息线上分析方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910952058.9A CN110765007A (zh) | 2019-09-29 | 2019-09-29 | 一种面向安卓应用的崩溃信息线上分析方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN110765007A true CN110765007A (zh) | 2020-02-07 |
Family
ID=69331169
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910952058.9A Pending CN110765007A (zh) | 2019-09-29 | 2019-09-29 | 一种面向安卓应用的崩溃信息线上分析方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110765007A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113238960A (zh) * | 2021-06-07 | 2021-08-10 | 上海识装信息科技有限公司 | 一种自动指派的Bug治理的方法、装置及电子设备 |
CN113836540A (zh) * | 2021-09-02 | 2021-12-24 | 青岛海信移动通信技术股份有限公司 | 管理应用权限的方法、设备、存储介质和程序产品 |
CN113900851A (zh) * | 2021-10-29 | 2022-01-07 | 广州品唯软件有限公司 | 一种安卓应用软件控制方法及装置 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107305522A (zh) * | 2016-04-21 | 2017-10-31 | 富士通株式会社 | 用于对应用程序的重复崩溃进行检测的装置和方法 |
CN107491383A (zh) * | 2017-08-17 | 2017-12-19 | 杭州师范大学 | 应用崩溃操作日志的捕获方法、装置及移动终端 |
US20190294607A1 (en) * | 2015-02-26 | 2019-09-26 | International Business Machines Corporation | Database query execution tracing and data generation for diagnosing execution issues |
-
2019
- 2019-09-29 CN CN201910952058.9A patent/CN110765007A/zh active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20190294607A1 (en) * | 2015-02-26 | 2019-09-26 | International Business Machines Corporation | Database query execution tracing and data generation for diagnosing execution issues |
CN107305522A (zh) * | 2016-04-21 | 2017-10-31 | 富士通株式会社 | 用于对应用程序的重复崩溃进行检测的装置和方法 |
CN107491383A (zh) * | 2017-08-17 | 2017-12-19 | 杭州师范大学 | 应用崩溃操作日志的捕获方法、装置及移动终端 |
Non-Patent Citations (1)
Title |
---|
李秋婷: "面向安卓应用的崩溃信息线上分析系统的设计与实现", 《中国优秀硕士论文全文数据库信息科技辑》 * |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113238960A (zh) * | 2021-06-07 | 2021-08-10 | 上海识装信息科技有限公司 | 一种自动指派的Bug治理的方法、装置及电子设备 |
CN113836540A (zh) * | 2021-09-02 | 2021-12-24 | 青岛海信移动通信技术股份有限公司 | 管理应用权限的方法、设备、存储介质和程序产品 |
CN113900851A (zh) * | 2021-10-29 | 2022-01-07 | 广州品唯软件有限公司 | 一种安卓应用软件控制方法及装置 |
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 | |
US8745572B2 (en) | Software development automated analytics | |
Zampetti et al. | Recommending when design technical debt should be self-admitted | |
US7757125B2 (en) | Defect resolution methodology and data defects quality/risk metric model extension | |
CN111108481B (zh) | 故障分析方法及相关设备 | |
CN112486557A (zh) | 基于Devops的完整生命周期管理平台及方法 | |
CN110765007A (zh) | 一种面向安卓应用的崩溃信息线上分析方法 | |
US9489379B1 (en) | Predicting data unavailability and data loss events in large database systems | |
Bigonha et al. | The usefulness of software metric thresholds for detection of bad smells and fault prediction | |
CN112433948A (zh) | 一种基于网络数据分析的仿真测试系统及方法 | |
CN113535538A (zh) | 应用全链路自动化测试方法、装置、电子设备和存储介质 | |
CN115391082A (zh) | 一种异常数据诊断方法、系统及存储介质 | |
CN115952081A (zh) | 一种软件测试方法、装置、存储介质及设备 | |
CN111353304B (zh) | 一种众包测试报告聚合和摘要的方法 | |
CN114138537A (zh) | 一种面向安卓应用的崩溃信息线上分析方法 | |
CN115543838A (zh) | 代码扫描规则的处理方法及装置、存储介质、电子设备 | |
CN116016270A (zh) | 一种交换机测试管理方法、装置、电子设备和存储介质 | |
Yan et al. | Revisiting the correlation between alerts and software defects: A case study on myfaces, camel, and cxf | |
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 | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20200207 |
|
WD01 | Invention patent application deemed withdrawn after publication |