《2016TOP100summit-魅族终端自动化测试探索之路》由会员分享,可在线阅读,更多相关《2016TOP100summit-魅族终端自动化测试探索之路(40页珍藏版)》请在金锄头文库上搜索。
1、魅族终端自动化测试探索之路朱锦鹏 测试开发经理 魅族摘要MEIZU Android自动化测试系统通过对测试框架的反思扩展和对测试流程的提炼优化,用平台打破了固件、设备(手机测试仪器)、测试脚本、测试报告 等各项资源间的隔离,构建了一个完整、易扩展、可配置的自动化测试体系。 在方便自动化测试的同时,也为其他非测试人员提供了一个了解项目质量概况的捷径,为自动化测试在整个部门的普及与规范节约了大量的成本。魅族终端自动化测试案例特点一套完整的自动化测试系统,MEIZU全机型自动化测试覆盖。UiAutomation、Instrumentation、Monkey稳定性测试、OTA升级、RECOVERY互刷
2、、单元测试自动调度、固件基础性能、安全扫描和专项测试。WIFI / USB / 串口等方式调度任务。云测平台(ATS)打通了与终端的通讯、提供了报告的收集与整合、测试代码的质量管控,以及提供了内部众测的问题反馈渠道和项目管理等功能。成果ATSUIpm众测专项MonkeyOTA安全Recovery单元测试Case 覆盖低CASE 质量差固件迭代快机型多缺少统一调度任务类型多无专项自动化固件升级引入案例来源业界有没有解决的方法业界有很多出色的云测 平台,但是魅族需要的是适 合手机厂商、适合自身业务 和测试流程的整套测试系统。业界的办法不适用业界提供的云测服务更多 聚焦在应用方面,而魅族的自 动化测
3、试是从应用到固件全覆 盖的。而且定制化需求高,机 型信息需要保密等原因。引入案例来源测试框架平台开发Android源码Java、PythonJavaScript、 C+Android结合业务平台化产品化培训技术支持优化怎么做到的 测试场景未恢复,影响其他脚本 容错性差,不稳定,执行效果差 造了太多轮子(各自实现了一系列通用操作) 部分前置条件需要手工构造 依赖USB连接 原始的测试log简陋,缺少操作步骤、预期结果 没有捕获CRASH、ANR、无响应等异常脚本质量测试报告那些年踩过的坑 不同机型需要多份代码或大量逻辑判断,维护成本高 需要人工升级固件,然后才能进行自动化测试 需要人工启动守护A
4、PP,选择模块进行自动化测试 需要人工确认失败用例那些年踩过的坑配置化自动化测试任务类型多,脚本类型多样,调度复杂固件迭代快,编译周期不固定,需要及时自动执行那些年踩过的坑任务化实践三实践三实践一实践二实践三规范脚本整合报告 配置化 自动化实践四先定个小目标 任务化 项目管理守护APP监控运行时异常跟业务确定字段、格式Gerrit,Jenkins注解对接缺陷平台实践 1规范脚本 & 整合报告规范报告审核、构建规范脚本异常捕获,合入报告报告对接缺陷管理平台规范Ant & Gradle打包资源Review & 版本控制/merge/abandonLINT扫描 &编译打包 & case 信息入库拉取
5、脚本 & 选择模块执行 & 异常监控守护 APP代码GERRITJENKINS守护APPWEB实践 1规范脚本 & 整合报告整合并上传结果 & 展示报告自动化脚本守护守护APPWEB1.步骤2.期望1.调用脚本 2.GIF截图 3.CRASH 4.ANR 5.无响应 6. MEIZU重启 7.FLYME 重启 8.全局LOG1.存储结果2.页面显示3.缺陷对接实践 1规范脚本 & 整合报告测试报告GERRIT进行代码审核、Jenkins 统一构建、Case信息入库要求脚本结束有效清理资源(账户、设置、黑白名单等)由守护APP调用脚本 ( 脱离USB执行 )脚本通过注解提供操作步骤、期望等信息实
6、践 1规范脚本 & 整合报告对操作过程GIF录制截图监控CRASH、ANR、无响应等异常,并收集运行时L无须人工干预的自动化(任务调度计划)统一汇总测试资源通过模块配置适配不同机型 不同类型固件模块配置抽象设备池平台调度实践 2配置化 & 自动化实践 2配置化 & 自动化仓库Flyme5 Flyme6Flyme5模块B模块C模块A联通版公开版电信版实践 2配置化 & 自动化模块引入“仓库”概念,对应一个模块集抽象设备池,集中资源(物理式集中局域网集中)守护APP添加推送功能,做任务分发、固件升级、用例执行实践 2配置化 & 自动化自动错例重跑通过模块化、配置化 提高脚本的健壮性和兼容性WEB端
7、从一个单纯的报告展示改造为任务中心,推送任务Drozer改造漏洞case化串口开发固件层面Monkey改造专项测试任务升级测试任务性能测试任务稳定性测试任务安全测试任务实践3-任务化调度仪器设备APP 探针应用稳定性 固件稳定性指定时长 指定机器 种子执行CRASH ANR MEIZU重启 FLYME 重启 NORESPONSE基本性能监控Monkey实践3-任务化稳定性测试实践3-任务化稳定性测试实践3-任务化稳定性测试固件的大小趋势监控开机启动线程数监控应用启动时间性能测试实践3-任务化监控Native/Persistent/ System/Cached/Foreground 等分类内存的
8、新增/减少开机时间 开机内存实践3-任务化性能测试升降 交叉升级校验升级测试图表检查整包/增量固件 质量固件升级历史测试 结果对比校验升级前后基带 /recovery/kernel是 否正确,评估升级 时间实践3-任务化不同RECOVERY 互刷升级实践3任务化升级测试扫描Activity/Service组件暴露同步安全信息至缺陷平台构造Intent检查组件安全性云测平台ATS自动安全复测Text in hereText in here实践3-任务化扫描ContentProvider/ BroadCastReceiver组件暴露安全测试实践3任务化安全测试专项测试(非仪器)专项测试(非仪器)U
9、I卡顿onCreate onStart onResume Layout Handler网络请求内存泄露电量WebViewNavigation timing Resource timing JS errors实践3任务化依据不同的任务类型在守护APP端执行不同的逻辑专项测试主要采用动态代理技术 hook关键API仪器调度生成各个任务类型报告上传服务端展示从调度层次增加任务类型概念统计各数据项并生成图表实践3-任务化实践小结终端管理功能内部众测功能VCC管理功能实践4-项目管理试用、反馈、绩效机型项目进度管理独立应用进度管理测试执行可以自动化,测试管理也可以自动化用平台方式解决项目管理过程复杂,信
10、息滞后不同步的问题实践4-项目管理实践小结帮助各VCC负责人,测试项目经理和PMO团队简化工作流程减少沟通成本,提高工作效率目标实现了 合理分配资源,保证设备池高效利用 减少和降低自动化的使用限制,提高自动化效率和覆盖率 魅族测试部团队500+,日常使用案例提供服务人数280+案例ROI分析案例启示、整合&强化测试框架,提高覆盖率、提供易用配置,增强脚本对不同设备、不同系统、不同应用版本和不同测 试任务类型适配,增强脚本的健壮性、“自动化”自动化、开放调度接口,提供调度支援(固件研发流程CI接入)5、技术落地,解决用户痛点6、先定个小目标,肯定能实现再定一个小目标Mock 测试平台化 和MEIZU 性能优化团队合作,完善Android的性能测试覆盖粒度。 和MEIZU 安全测试团队合作,完善Android的安全测试覆盖粒度。感谢以下赞助商对TOP100活动的大力支持!