• 移动自动化测试落地的典型困惑,你遇到过吗?


    移动自动化测试、持续测试已经成为大部分互联网企业对研发团队的必然要求。但理想很丰满,现实却骨感。在实施自动化测试过程中,在技术、业务、人力、管理等维度都会遇到不少难题和挑战。

    下面两个真实的问题反馈,你们团队遇到过吗?

    @测试K同学

    在我实施移动应用自动化测试的过程当中,我思考最多的倒不是技术实现上面的问题,而是:

    1. 面对迭代周期短的应用,自动化的开发维护成本实在太高,那是否还有必要做自动化? ****

    2. UI 自动化测试的产出是很少的,发现不了什么问题,那 UI 测试自动化还有什么价值? ****

    我目前的想法是:前端 UI 和功能的测试全部手工执行,接口的测试实行自动化。

    @测试M同学

    关于移动自动化测试,我想大家想法都一样: 不赚钱的买卖没有必要做! ****

    说说我们的经历吧。公司技术背景是:一个传统软件做 UI 层面的自动化测试,之前没有 CI,手工打包,没有UT,JQuery 4 个版本混用...

    开始做自动化测试,前先花了三个月左右(中间还有其他事情)的时间,使用 Jenkins+Ant 实现自动打包,不能算
    CI,然后一个月左右开始给大领导和其他利益相关群体做“洗脑”工作。半个月之后,得到结果开始执行,但是必须要有可量化的指标:

    1. 自动化测试覆盖率 = 自动化测试覆盖的手工测试用例/手工测试用例总数 ** **

    这其中有很大的问题,之前的用例根本就不是良好的用例。没有上下文,没有数据。

    2. 自动化测试的价值 = 自动化测试执行的时间/自动化测试代替手工测试的时间

    这个还算客观,但是它依赖前一个指标。

    好了,终于可以开始做自动化测试,又遇到一连串的挑战:

    第一个难题: 没有环境

    怎么办?折腾以前淘汰的机器定制环境(然后统一升级 Windos 系统)

    第二个难题: 环境不能自动部署

    工程是跟 TomCat 耦合在一起的;而且 Linux 部署还不成功!汗!折腾 Autoit,实现 Windows 上的自动更新,自动部署(后台跟
    WebQQ 做关联,QQ 上发个消息就能自动部署了,还能查询状态和系统信息)。

    第三个难题: 没有测试用例,也没有可使用的数据,这是一个大坑

    又花了接近三个月的时间,才梳理出来一个关键模块的测试用例(基于 BDD
    的)跟它的数据。中间还返工了一次,因为版本更新,用例重构了。然后陆陆续续花费了接近两个月的时间才准备好了相关数据。制定了以后数据准备的方案。

    第四个难题: 人员能力差

    这个问题从开始就很明显!没办法,招人,一边独自做,一边招人,来来回回折腾了5个人,最后一个人稳定了两年多。中间做了不下十次培训,文档写了至少三遍。

    第五个难题: 版本也在更新,前台重构,对应的底层控件经常出妖怪问题

    这些问题,有产品自身的可测性问题;也有 WebDriver
    的妖怪问题。导致我们架构重构了两次,并分别做了针对不同版本的适配(主要是前台控件的操作适配)。

    其他难题
    :简单来说,遇到的技术问题是以上这些。但除此之外,还有很多其他与利益相关体的扯皮等挑战(你懂得,有人的地方就有江湖)。这样一晃接近两年就过去了。

    最终我们达到一个什么效果呢,不到 20% 的覆盖率,但是效果很明显。最先实现的那个模块(功能逻辑相对固定),从两年前开始到现在都是bug最少的!

    现在虽然换个团队,换个产品,以互联网的方式设计产品,设计架构。但是考虑到成本问题,毅然决然的抛弃了
    UI。到目前为止只做接口测试。啰啰嗦嗦写了不少,目的只有一个,别做收益不够的投资!

    **

    听听资深测试大咖的看法

    **

    @思寒 ,资深测试架构师,霍格沃兹测试学院校长

    以上同学写的很好,都是非常实用的经验。这里简单说一下我的个人意见,仅供参考。

    1. 分层自动化 ****

    • 把接口测试做好,这个可以很好的保证后端质量。而且最不易变,自动化价值高。

    • UT 单测交给研发,监督他们搞好,保证一定的覆盖率。

    • UI 测试小部分业务要自动化,保证质量还是有用的。大部分是易变的,手工测试即可。

    2. 充分利用云服务 ****

    • 兼容性测试(有第三方服务厂商)

    • 众测服务(花钱也不多,值得尝试,发众测任务,比如把游戏打通 N 关,注册 N 个帐号之类的,发动少量群众可以发现更多问题)

    • 安全测试(类似乌云,可能稍贵,测试行业暂时还没有这种服务)

    • 性能测试(云服务目前还有待完善,主要还得靠自己)

    3. 降低自动化的维护成本 ****

    • 比如录制回放技术,不过这个录制回放工具的好坏很大程度决定了效率和成本。

    • 和研发约定规则,自动生成自动化测试用例。

    • 改善自动化的架构,比如使用关键词驱动框架来维护。这样贴近业务,而且业务是基本不变的,

    • 成本太大的话不走自动化也是一条路。

    必备指南|移动端自动化测试实战

    编者按 :看了思寒的回复,是否顿时就有了执行步骤了呢?

    自动化测试落地有几大难点 ****

    • 自动化测试技术学习本身拥有一定的门槛;

    • 技能点繁多,缺乏高效清晰的成长路径指南;

    • 最大的难点是:结合业务落地,背后需要大量的实战经验;

    不少初中级测试工程师在跨过基础门槛,比如掌握了基本的编程与自动化测试框架 API
    后,往往会认为自己已经掌握了自动化测试,便开始投入到实际开发中,却又掉进各种各样的技术债和经验债里,痛苦不堪。比如,遇到框架稳定性与适用范围、用例稳定性、用例可复用性等问题。

    其实, 最高效的路径只有一个 ——
    找到领域专家,在巨人的肩膀上学习最佳实践和避坑经验,并能结合公司业务落地,在实践中积累经验,持续提升。所谓方向对了,路就不会遥远。

    在这里推荐思寒在极客时间的新课程-《移动端自动化测试实战》。

    思寒在测试领域工作十余年,先后在阿里巴巴、百度、雪球等公司任职,担任过测试工程师、测试开发工程师和测试架构师等,很早就开始折腾
    Appium,甚至自己做了一个开源项目 自动遍历测试工具 AppCrawler (Google
    也在近年推出了类似的同名应用),有丰富的自动化测试项目实战经验。

    在这个视频课程里,思寒把从业十余年的测试心得都分享给你,由浅入深、实战驱动,带你一步步掌握 Android 自动化测试、iOS
    自动化测试、微信小程序自动化测试、手机浏览器自动化测试、Page Object 设计模式等等,解决工作中遇到的所有痛点问题。

    点击上图免费试看结算时,输入社区专属的优惠口令 TESTERHOM 再减¥10 ,到手价¥89,仅限前200名
    这个课程,是以 图文、场景、原理、实践 相结合的方式,把思寒所积累下的移动端自动化测试相关的知识点揉碎了给你讲出来。 图文结合 图文结合

    **思寒会如何讲解「自动化测试」?

    **

    主要分为3个进阶阶段:

    第一阶段:讲解 App 的结构分析, **带你了解以 Android 系统为代表的手机系统自动化测试概念与技术体系。

    ** 第二阶段: 以 Appium 为代表的自动化测试框架
    ,通过基本的知识讲解、课题演练、源代码剖析与二次封装定制,让初学者掌握扎实的自动化测试技术基本功。

    第三阶段: 以某款 App 的自动化测试实战为例 ,教你以最成熟的 Page Object
    模式设计自动化测试用例,并结合持续集成把自动化测试纳入公司的持续交付与 DevOps 流水线中。

    最后,他也希望这门课程 既能授之以鱼,也能授之以渔 ,不仅传授自动化测试技能,更能 深度解读 卓越工程师的成长机密
    ,帮你掌握正确的学习方法,合理解决问题的思路,规划好测试人生职业发展规划, 获得全方位的提升。 花一分钟看目录,快速了解课程的知识体系。

    现在购买有什么福利?

    1. 原价 ¥129, 早鸟限时优惠 ¥99 ,。2. 结算时 记得 输入社区专属优惠口令「 TESTERHOM 」, 再减 ¥10,到手价 ¥89 ,仅限前 200 人。 点击下图,订阅

    上新最低价,抓紧抢购!

    课程信息 Tips: 1. 学习方式:录播视频(每周更新+答疑) 2. 测试职业发展:请参看往期精华文章
    思寒:

    测试职业发展漫谈

    来霍格沃兹测试开发学社,学习更多软件测试与测试开发的进阶技术,知识点涵盖web自动化测试 app自动化测试、接口自动化测试、测试框架、性能测试、安全测试、持续集成/持续交付/DevOps,测试左移、测试右移、精准测试、测试平台开发、测试管理等内容,课程技术涵盖bash、pytest、junit、selenium、appium、postman、requests、httprunner、jmeter、jenkins、docker、k8s、elk、sonarqube、jacoco、jvm-sandbox等相关技术,全面提升测试开发工程师的技术实力

    点击获取更多信息

  • 相关阅读:
    oracle递归层级查询 start with connect by prior
    C 常量指针和指针常量
    C 字符串常量和字符串变量定义和区别
    C 指针改变变量值
    UITableViewCell的高度与UILabel自适应
    手动开启ARC
    SWIFT模糊效果
    SWIFT中使用AFNetwroking访问网络数据
    MAC机中安装RUBY环境
    CocoaPods安装和使用教程
  • 原文地址:https://www.cnblogs.com/hogwarts/p/15984663.html
Copyright © 2020-2023  润新知