9月24日,由魅族与msup联合主办的第五期魅族技术开放日“构建适合你的自动化测试体系”在深圳弈投咖啡举行。魅族测试部技术开发组组长王照辉、原惠普中国自动化测试工程师高焰、腾讯架构平台部质量工具体系负责人刘卓夫进行自动化测试的分享,与现场听众共同探讨自动化框架的演进以及自动化测试发展过程中曾遇到的问题和解决方案。

《魅族自动化测试架构之路》
活动当天共分为3堂课程,首先由魅族测试部技术开发组组长王照辉对魅族测试框架、魅族自动化发展阶段以及魅族ATS平台进行介绍分享。

魅族测试部技术开发组组长王照辉

魅族测试的两个主要框架
魅族主要使用UIAutomator和Monkey两个框架进行自动化测试,两个框架均为系统原生支持的框架,不需要对系统修改或安装其他应用。
UIAutomator主要用于回归测试和冒烟测试,如验证APP的功能是否正常,流畅度和待机耗电等情况,Monkey用于做长时间的压测,如检查7*24小时的压测是否出现崩溃的情况。

魅族自动化测试发展的5个阶段
魅族自动化测试第一阶段通过守护APP+WEB的形式实现了人性化的报告输出、错误的监控和与缺陷平台的无缝对接,方便测试人员查看与分享报告并简便的追溯Bug来源。具体实现方式是由自动化脚本提供操作步骤、期望、结果,然后由守护APP提供录制、截图以及对崩溃、ANR和Log的收集,最后到平台上做结果展示,对于自动化过程中出现的异常与缺陷平台数据相关联。
第二阶段通过一些审核、预编译这样的操作来打包依赖并提高脚本的稳定性。首先规范了整个编译的描述文件并打包依赖资源,由Gerrit服务器进行代码的审核,审核通过后由Jenkins负责打包编译并将JAR包上传至平台,运行时通过守护APP拉取这些脚本,最终调用执行。
第三阶段主要通过一些模块的配置来解决不同机型和版本之间的依赖问题,通过参数扩展脚本的适应性,在这个阶段之后,已经不需要在脚本中做逻辑判断来适应机型或是不同的固件版本。
第四阶段的解决方案,比较抽象的提出了“设备池”的概念,实现了完全无人工干预的自动化。
第五阶段提出了任务类型的概念,主要做专项的测试,如稳定性测试、性能测试、升级测试、安全测试等。能够有效的补充UI自动化的不足,从不同角度检查包括性能、流畅度和安全方面是否存在问题,进而在不同的维度阐述产品的质量。

魅族的ATS平台
在自动化测试研究过程中,魅族的测试团队遇到了各式各样的问题,如最开始的初始条件和脚本稳定性,后来需要集中资源,再后来需要专项测试,希望有一个统一测试的平台解决此类问题,由此,魅族开发了ATS平台。ATS平台整合了固件的UI自动化的测试并包含了压力、性能、安全等各方面的专项测试。
ATS平台主要由在线列表、任务管理、报告查看等功能组成,测试体系人员都可以通过平台对一些特定的APP进行特定场景的测试,比如UI测试、稳定性测试和性能测试等等。
王照辉认为,一个比较理想的自动化,就像一个全自动的黑盒子,为上游提供接口、为下游产出有意义的报告。

《基于Cucumber的BDD的自动化测试平台》
在王照辉的分享中,不断提到UI测试的难点,而在本期技术开放日的第二场分享中,原惠普中国自动化测试工程师高焰带来了针对UI自动化方面的分享,主要讲解基于Cucumber的BDD的自动化测试平台。

原惠普中国自动化测试工程师高焰

高焰提到,代码、用例、脚本和测试数据的关系、维护等是自动化测试的几大难点,除此以外,平台越来越多、技术越来越多,每一个都要学,每一个都要去维护。
BDD现在对Cucumber的官方解释是行为驱动开发,讲师喜欢将其理解成业务驱动开发,它是站在业务的层面。Cucumber的自动化脚本看起来像一段文字描述,维护相对容易。Cucumber分为技术和业务层,相互之间有映射关系,让技术人员有更多的精力覆盖业务点。
在讲师的分享中,对Cucumber的特点、工作原理、能够解决的问题以及应用案例等方面进行了讲解,Cucumber平台可以实现对测试脚本、业务场景及功能点的集中化管理,使用中文来编写脚本易于维护和理解,并且可以降低后期脚本的维护成本。

《现网拨测 -- 自动化测试后移实践》
在高焰老师的分享之后,由腾讯架构平台部质量工具体系负责人刘卓夫带来了本期开放式的第三场分享:关于腾讯视频直播业务的自动化测试实践。

腾讯架构平台部质量工具体系负责人刘卓夫

2016年,音视频行业呈现爆发式的增长,刘老师所带领的团队需要从传统存储业务的测试快速过渡到音视频业务。在应对挑战的过程中,刘老师产生了一些新的思路,由此产生了本期开放日分享的主题《现网拨测 -- 自动化测试后移实践》。
腾讯视频的点播有一个内容分发系统,所有点播的片源会从这个分发系统逐级分发,全国都有接入点,所有媒体文件都逐级分发到每一个接入点,我们也可以从就近的接入点做访问。面对成千上万台现网设备的拨测,先从全网调度系统里面去拉取全网正在做服务的列表,以最新的列表作为测试的测试源。对于某一台单机,我们也不是从一个结点去测,而是通过多个结点测试出现问题才认为是单机出了故障。
刘老师通过花屏、卡顿、VOIP等场景列举了腾讯自动化测试的方法,整体设计思路分前台和后台两个部分,前台主要是通过Django和nginx、uwsgl和mysql来做。后台通过执行器进行自动化测试,主要包括资源加载、资源分配、拨测逻辑和结果统计四个扩展点。

以上为本期魅族技术开放日讲师分享的摘要内容,3位讲师从自身对自动化测试的经历与认知出发,解读自动化测试的工具、方法和演进过程。这是魅族技术开放日的第五期,也是魅族与msup合作举办的第三次技术开放日活动。魅族与msup都希望能够以开放的心态,让更多人参与到技术分享的活动中来,融入技术大家庭,打造国内技术人员的交流分享平台。

开放与分享逐渐成为国内技术开放日的主流心态,msup主办的第5届TOP100全球软件案例研究峰会将于12月9日在北京国家会议中心举行,目前已有Twitter、微博等国内外多家互联网企业提交了年度案例。TOP100全球软件案例研究峰会是是一场开放分享的盛会,互联网从业者可自主提交软件研发案例,入选后即可与近万名参会者分享。msup希望通过开放的技术盛会发现更多的优秀互联网研发案例,通过交流与分享,与技术从业者共同进步。

第五届TOP100summit全球案例研究峰会案例征集中,如果在您心目中有非常合适的演讲人选或优秀的软件研发案例,欢迎向组委会推荐。请发邮件至speaker@top100summit.com。

自动化测试发展变革——第五期魅族技术开放日现场精彩回顾相关推荐

  1. 数据洞察——第八期魅族技术开放日现场纪实

     5月6日,第八期魅族技术开放日"数据洞察"在成都举行,本期开放日由魅族科技和麦思博(msup)有限公司联合主办,来自魅族.平安科技.九鼎瑞信.大眼科技等企业的5位技术专家就大数据 ...

  2. 构建自动化运维——第十期魅族技术开放日现场纪实

    9月23日,麦思博与魅族联合主办的第十期技术开放日:构建自动化运维,在上海成功举行.最近几年,从数据库等基础架构到云计算等应用领域,从MVC到微服务等开发模式,从laas.Paas到Faas,运维技术 ...

  3. 智能运维实践——魅族技术开放日第十三期现场纪实

    10 月 20 日,由魅族科技联合Flyme.麦思博(msup)有限公司.百度云主办的第十三期魅族技术开放日"智能运维实践"在深圳虚拟大学园触梦社区顺利召开,近200位运维从业者齐 ...

  4. 7月7日易用性SIG技术分享活动精彩回顾

    易用性SIG 技术分享 精彩回顾 2022年7月7日,MindSpore易用性SIG举行了第3次线上技术分享活动,主题是<MindSpore在CV领域的应用案例>,共有150+位开发者朋友 ...

  5. 广州站 | 云原生 Serverless 技术实践营精彩回顾

    12月2日,由阿里云 Serverless 团队主办的「云原生 Serverless 技术实践营」在广州顺利举行,本次活动面向所有企业技术人员,主打"沉浸式沙龙体验,6 小时搞定 Serve ...

  6. 横跨2017-2018,云效Work Like Alibaba系列直播第五期盛大开启

    摘要: 横跨2017-2018年直播,晚上20:00在云栖社区直播间和阿里巴巴技术专家一起,探讨像阿里巴巴一样高效跨企业项目协作,像阿里巴巴一样保障软件研发质量. 阿里巴巴内部是如何高效协同工作的?有 ...

  7. 魅族技术晚场回顾,算法、架构、AI之外,还要考虑未来

    很多技术人应该都参加过InfoQ举办的技术晚场,这是一种相对open且轻松的技术交流活动. \\ 根据提前设置好的技术话题方向,请预先邀请好的小组组长带领小组成员进行讨论,基本上,每个愿意交流的成员都 ...

  8. OPPO技术开放日第二期启动,聚焦碎片化场景下的流量探索

    继首期OPPO技术开放日的成功举办,得到广大开发者的热烈反响,OPPO 技术开放日系列沙龙第二期正在紧锣密鼓地筹备中,并将于2018年8月10日下午,在北京Mee Park隆重举行. 届时,众多行业大 ...

  9. 黑芝麻智能举行媒体技术开放日 展示交流“芯”科技

    XEV研究所消息(文/唐伟)9月14日,全球自动驾驶计算芯片引领者黑芝麻智能在北京举办技术开放日暨媒体沟通会,通过全面展示黑芝麻智能的"芯"科技和面对面交流,让更多主流媒体深入了解 ...

最新文章

  1. JavaScript学习(十三)---RegExp对象
  2. 没有bug队——加贝——Python 55,56
  3. 30天敏捷结果(15):让自己处于宁静状态
  4. RabbitMQ 中的 7 种队列模式,写得太好了!
  5. linux下导入mysql数据库命令
  6. 上海航芯 | 智能网联汽车终端T-BOX应用方案
  7. 短视频源码应该优化的六个方面
  8. mysql 获取月初_mysql中,如何写语句来查询本月从月初到现在,经过了几个礼拜二?...
  9. 漂亮的HTML网站赞助打赏单页源码
  10. ACRANSAC之我见
  11. 国产三维CAD华天软件STNOVATION 几何造型内核CRUX IV 解析
  12. 《Google软件工程》读书笔记
  13. Python math.perm() 方法
  14. 计算机维修基本技能考试试题,高级计算机维修工操作技能考核试卷
  15. 可微可导连续可积的关系
  16. TortoiseSVN教程级别指南
  17. 51单片机学习——PWM
  18. Cannot change network to bridged: There are no un-bridged host network adapters解决方法
  19. 我个人整理的AD/2000技巧,各位收藏吧!60多个。 转贴
  20. uctf信息安全_UCTF2016 twi Writeup

热门文章

  1. python求乘积_Python实现求笛卡尔乘积的方法
  2. TensorFlow在Windows 7上的详细安装步骤
  3. 江西旅游商贸职业学院计算机题目,2019年江西旅游商贸职业学院发布单独招生计算机专业实操考试方案Windows基础部分、IE基础(50分)...
  4. 获取小米手环的信息前期准备
  5. 如何运用JAXB定时读取解析xml文件?
  6. 计算机专业就业方向分析
  7. 让别人的app变成自己的app系列 -- 拦截网络请求后进行网址或ip替换
  8. 刘建平Pinard的博客配套代码
  9. 用python实现数字图片识别神经网络--启动网络的自我训练流程,展示网络数字图片识别效果
  10. 野火霸道开发板 STM32 keil5 报错:flash download failed-cortex M3解决方法