学术文化网:本站代理期刊可作为职称及学位评审依据;并代写(职称、本科、硕士、博士)论文,代写代发论文一条龙服务;保证原创,保证质量,100%通过,保密服务

学术文化网

重点推荐省级国家级期刊、北大中文核心、CSSCI、EI、SCI发表,稳妥操作,速度快,包发表。有意向联系客服咨询。
论文代写:十年专业服务品质,全部由期刊编辑、硕士、博士撰写;保证原创、版权归您;保证通过、否则全额退款。代写论文申请表
论文发表:与百家优秀期刊合作,代理审核组稿,论文发表涵盖所有专业领域,全部正刊,保证出刊,否则全额退款。代写代发论文申请表
业务合作:因业务发展需要,诚招优秀写手合作,要求硕士以上学历,不限专业,另诚征优秀期刊代理合作,具体详谈。QQ:415835425 代写论文写手申请表
当前位置: 主页 > 工科论文

Android应用自动化动态测试工具的研究及实现(2)


 形布局结构,布局结构及应用程序界面如图2所示:
图2 应用程序界面及布局结构树图
Fig. 2 Application interface and layout structure tree 150
图2的左下角是应用程序界面的截图,对应该界面,布局结构中的每个节点代表当前界面的一个元素。“短信发送”程序界面的根节点为PhoneWidow$DecorView,表示屏幕的整个窗口,其子节点LinerLayout表示线性布局,LinerLayout又有两个子节点FrameLayout,这两个子节点表示界面分为标题和主体内容两大矩形块,以此类推,直到TextView、EditText、Button等叶子节点。 155
界面解析的关键技术是获取叶子节点控件的绝对XY坐标值,以供脚本生成模块生成并执行Python脚本,让程序模拟点击控件,达到自动化测试目的。对于布局结构树,采用树的深度优先遍历算法,获取叶子节点控件的绝对XY坐标值。由于子节点所在的矩形区域嵌套在父节点所在的矩形区域中,而叶子节点的相对坐标基于父节点左上角坐标值,父节点还有它自己的父节点,通过深度遍历迭代算法找到最原始的根节点PhoneWidow$DecorView相160 对于屏幕的XY坐标值,所有叶子节点控件的XY坐标值便可以得到,核心算法如下:
p = node.parent;
while (p 存在) {
x += p节点左上角X坐标;
y += p节点左上角Y坐标; 165
p = p的父节点;
}
2.4 脚本生成
脚本生成利用Monkeyrunner的API动态生成Python脚本,主要有安装脚本、启动脚本、触摸脚本、截图脚本、卸载脚本,其中触摸脚本是核心,通过接收界面解析模块获取到的控170 件的绝对XY坐标值,利用touch API来生成Python脚本,模拟用户向设备发送按钮点击事件。若图2中“发送”按钮的XY坐标值为(200,300),则动态生成的触摸脚本为:
from com.android.monkeyrunner import MonkeyRunner, MonkeyDevice, MonkeyImage
device = MonkeyRunner.waitForConnection()
device.touch(200,300,DOWN_AND_UP) 175
 2.5 运行测试
运行测试是工具的核心部分,该模块在预处理、界面解析、脚本生成的支撑下,负责应用程序的安装、启动、遍历测试、卸载。工具首先调用Monkeyrunner执行安装、启动脚本,启动程序主界面。应用程序安装、启动后,需要依次遍历各层界面,从而才能模拟点击应用程序页面的各个按钮控件。应用程序的各个界面可以组织成如图3所示的树形结构图: 180
图3 应用程序界面层次结构图
Fig. 3 Application interface hierarchy
图3中每个节点代表一个界面,系统采用树的先根遍历算法遍历各个界面。应用程序的Activity唯一的标志一个界面,当启动MainActivity后,应用程序进入主界面,标志该界面185 为根界面,点击根界面的一个控件进入另外一个Activity标志的界面,称为第二层界面,该界面是根界面的子界面。点击第二层界面的控件,进入第三层界面,以此类推。当第二层界面上的所有控件都遍历测试完毕,返回根界面,再依次遍历测试根界面的其他控件。图3中的各个界面遍历次序为:ABEFCD。工具调用Monkeyrunner执行脚本生成模块生成的触摸脚本,对界面的各个控件发送触摸事件流。对于每一个界面,工具同时调用Monkeyrunner190 执行截图脚本,对设备当前界面截图并保存图片文件。当所有界面控件都遍历完毕,测试结束,工具执行卸载脚本卸载应用程序,同时将所有图片最终生成word报表展示给用户。
运行测试的实质在于遍历应用程序的各个界面,让其动态运行,以便触发应用程序运行时潜在的恶意行为,比如后台偷发短信、联网扣费、隐私窃取等行为,从而让其它终端安全监控工具捕获,同时将运行测试过程中各个界面截图保存,供测试人员审核。 195
3 测试结果分析
我们分别用自动化动态测试工具和人工静态分析方法对搜集到的10款Android恶意应用程序进行测试验证。首先在终端设备上安装360安全监测软件,然后在PC端运行动态测试工具,导入Android应用程序,在无人工干预的情况下按顺序运行测试这10款应用。测试完毕,查看截图文档。截图文档记录了应用安装、启动、遍历测试中的界面,截图记录200 360软件对捕获到的动态恶意行为的安全威胁提示以及广告插件。通过对截图文档的整理,得到结果分析数据如表2所示:
表2 自动化动态测试结果分析
Tab. 2 Analysis of automated dynamic testing results
应用
人工静态分析结果
动态测试结果
测试时间/min
手动
自动
3D星空动态壁纸
自动发送短信
安装完毕,后台发送短信
 中国科技论文在线
数独
自动发送短信
安装完毕,后台发送短信
5 8
今日中国
启动GPRS进行定位
测试运行时,后台联网
5 8
chompSMS
连接固定网站
启动后,后台联网
5 7
商务管家
自动发送短信
启动后,后台发送短信
6 7
埃及魔石探秘
连接固定网站
启动后,后台发送短信,联网
8 10
shopsavvy
连接固定网站
启动后,后台联网,发送短信,同时存在手机广告
6 9
手机大头

运行时,发送短信,收费提示隐蔽,联网
5 8
主题管家

安装成功,启动失败
3 5
horoscope

运行时,收费提示隐蔽,运行过程出现异常终止
7 9
205
上述人工静态分析方法通过人工检测敏感API来捕获恶意行为,表2中的测试结果表明: (1) 自动化动态测试工具查出了所有的预期恶意行为,包括后台发送短信和自动联网,而且能告知是在那个阶段捕获的,比如安装完毕、启动、测试运行时。 (2) “埃及魔石探秘”、“shopsavvy”、“手机大头”的测试结果显示,对于针对“后210 台发送短信”的同一恶意行为,静态检测存在着漏报,因为针对不同的应用可以有不同的恶意代码形式,代码样本库不能保证涵盖所有恶意规则。
(3) “主题管家”、“horoscope”测试结果显示,对于应用由于内存泄露或者并发错误导致的无法安装、启动、运行终止问题,由于静态分析无法虚拟化执行部分程序,需要动态工具执行程序才能重现。 215 (4) 动态测试工具的平均执行时间远低于人工分析时间,节省了大量的测试时间和人力资源,自动化程度较高。截图报告以安装、启动、运行、卸载的逻辑顺序展示各个阶段的运行测试情况,精确直观地展示了恶意行为以及该行为发生的阶段。
4 结论
自动化测试是目的是为了提高测试效率及质量,大量Android恶意应用涌现的背景下,220 自动化测试显的极为重要,但是传统的人工测试效率低下,现有的Monkey及Monkeyrunner工具存在着无法自定义扩展和测试不连续的局限性,本文在Monkeyrunner的基础上研究实现了一种自动化动态测试工具。该工具能批量自动安装、启动、测试并截图,同时配合其它安全监控软件记录应用运行中的恶意行为。测试结果表明,自动化动态测试工具的检测效率高,人工依赖性低,是一种比较可行的技术。 225
[参考文献] (References)
[1] 蔡罗成. Android后台监听实现机制浅析思路[J]. 信息安全与通信保密,2010,(6):39-41. [2] McAfee:Android恶意软件增长了1200%[OL]. [2012-05-24]. http://pcedu.pconline.com.cn/android/1205/2799864.html [3] 管铭. 基于程序分析的软件安全漏洞检测技术研究[D]. 西安:西北工业大学,2007. 230 [4] Android自动测试之Monkey工具[OL]. [2011-03-10]. http://www.cnblogs.com/yyangblog/archive/2011/03/10/1980068.html [5] 王向辉,张国印,沈洁. Android应用程序开发[M]. 北京:清华大学出版社,2010. [6] 赵亮,张维. 基于Android技术的界面设计与研究[J]. 电脑知识与技术,2009,5(29):8183-8185. 235
学术论文网Tag:代写硕士论文 代写论文 代写代发论文 代发论文
本站郑重声明:
  1、我们与数十所知名高校博士强强联手,保持常年稳定合作关系,论文质量更有保证;;
  2、写作领域涉及所有专业,实力操作,出稿更快,质量更高,通过率100%;
  3、所有代写文章,全部原创,包检测,保证质量,后续免费修改,保证通过;
  4、信誉实力服务,专业代写毕业论文,职称论文,硕博士论文,留学生论文,成熟操作;
------分隔线----------------------------
栏目列表
联系我们
服务承诺
推荐内容