针对Android异常处理的插桩与动态执行方法开题报告
2022-12-31 13:06:41
1. 研究目的与意义
内容:针对android(安卓)程序中的异常处理代码,通过研究开源软件代码的异常处理代码及其修复代码,分析出执行路径中的异常抛出点,尤其是暴露外部资源可能发生的异常,设计出面向异常的插桩和动态执行工具。
需要建立虚拟机并实现自动化测试,测试需要与外部设备(或者相似的模拟设备)相关联,通过足够的测试用例可以覆盖针对外部资源的测试测试路径,记录抛出的异常类型,利用动态执行技术检测异常处理代码的缺陷,从而验证安卓程序的异常处理代码的正确性。
它能够分析出应用所有可能抛出异常的位置,并在这些位置进行插桩和配置,以支持对异常行为的检测。
2. 文献综述
1. 背景 随着移动智能终端的普及,android系统的市场范围在不断扩大,android应用程序的规模也在逐年扩大。
数据显示,目前仅在google play就有373万应用,并且以每个月数万个的速度增加,然而开发测试人员未具备有良好的异常测试意识,大部分应用未能通过较为完善的软件测试,导致用户在使用时出现崩溃,影响使用,其中涉及到外部资源的异常占一大部分,且较为严重 [1]。
2. 相关研究2.1异常机制异常处理(exception handling),是编程语言或计算机硬件里的一种机制,用于处理软件或信息系统中出现的异常状况(即超出程序正常执行流程的某些特殊条件)。
3. 设计方案和技术路线
搜集开源软件的bug报告及修复代码,列出所涉及的资源,收集应用程序可能抛出的异常类型,通过插桩暴露外部资源可能发生的异常,测试需要与外部设备(或者相似的模拟设备)相关联,并实现用户在使用过程中的有限的调用次数,并记录导致的故障,生成一个报告记录以下信息:(1)被模拟的资源API的类型(2)模拟模式,表示本次调用时执行正常调用还是抛出异常(3)目标API抛出的异常类型(4)抛出异常后的调用跟踪通过足够的测试用例可以覆盖针对外部资源的测试测试路径,需要建立虚拟机并实现自动化测试,记录抛出的异常类型,利用动态执行技术检测异常处理代码的缺陷。
4. 工作计划
2022.01.07--2022.02.17搜集软件异常报告及异常相关修复代码2022.02.18--2022.03.03 需求分析2022.03.04--2022.03.17工具详细设计,自动化测试脚本2022.03.182022.04.14 代码实现2022.04.212022.05.05 工具完善测试2022.05.06--2022.06 撰写论文,毕业答辩。
5. 难点与创新点
目前,国内研究Android异常处理的文献较少,而检测异常处理代码的缺陷的工作又不可缺,本文提出结合插桩与动态执行的方法能够较好地完成Android应用程序异常处理代码的检测,提高代码异常安全,减少内存泄露、存储数据混淆、无效的输出或应用崩溃等情况。