android 测试 大赛,轻量级android应用自动测试工具-2017全国大学生软件测试大赛.pdf...

轻量级android应用自动测试工具-2017全国大学生软件测试大赛

DroidBot: A Lightweight Android App Testing Bot

轻量级Android应用自动测试工具

李元春

liyuanchun@

2017全国大学生软件测试大赛总决赛

Can robots beat human?

Android 自动测试输入生成

•理想:

• 计算机自动生成测试输入

• 自动生成的输入能快速、准确地发现bug

关于“Android 自动测试输入生成”的研究

•近百篇相关论文发表在软件工程领域学术会议

• 代表性工作:DynoDroid, A3E, PUMA, ACTEve, Gator等

•现有研究主要关注

• 分析代码,构造应用模型,生成能触发问题代码的输入

•主要问题

• 受制于代码分析的难度

• 较高的使用要求(需要插桩系统、应用等)

绝大多数自动测试工具的覆盖率及覆盖速度不如Monkey

(图源:Automated Test Input Generation for Android: Are We There Yet? Choudhary et al. ASE 2015)

工具名称 不需要插桩系统 不需要插桩应用 不需要源代码

Monkey   

DynoDroid   

GUIRipper   

PUMA   

A3E   

ACTEve   

JPF-Android   

绝大多数自动测试工具需要插桩系统、插桩应用、或需要源码

(数据源:Automated Test Input Generation for Android: Are We There Yet? Choudhary et al. ASE 2015)

Android 自动测试输入生成

•现实

• 大量的测试用例需要人工编写

• 随机测试工具(Monkey)速度慢、覆盖率低、不可复现

• 云测试、众包测试

• 无测试……

关于DroidBot

• 开源/honeynet/droidbot

1

• 起初为The Honeynet Project 的一部分,用于恶意应用识别

• 现在是一个通用的应用自动测试框架

• 广泛用于各种应用动态分析研究

1 The Honeynet Project是一个专注于信息安全相关研究的非营利性组织。

DroidBot的设计思想

轻量级 可扩展

• 无需插桩系统、应用 • 生成应用UI转换模型

• 无需源代码 • 提供基于模型的测试策略

• 适用于绝大多数测试场景 • 支持自定义测试策略

DroidBot架构

•Adapter: 与设备及应用I/O

• 读取UI、进程等相关信息

• 发送UI交互、Intent、传感器等输入

• Brain: 构造应用模型并决策

• 模型:UI状态转换图(UTG)

获取App状态信息

• UI结构及内容:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值