自动化测试高手课
柳胜
原甲骨文高级开发经理
16849 人已学习
新⼈⾸单¥59
登录后,你可以任选4讲全文学习
课程目录
已完结/共 34 讲
开篇词 (1讲)
自动化测试高手课
15
15
1.0x
00:00/00:00
登录|注册

04|脚本复用:什么样的代码才值得写?

你好,我是柳胜。
开发和测试团队我都带过,现在测试人员的代码能力越来越强了,已经接近开发人员,我看过一些测试牛人设计的测试模块和代码:MVC 实现测试控制台、分布式多测试节点管理、Proxy 对测试 Interface 默认实现……这些用到的技术栈和开发不相上下。
聊下来,很多的反馈是“能做起来,很庆幸有一个对测试技术很支持的领导”。这就是一个让人困惑的问题,为了开发自动化测试案例,你写了那么多代码,那每一行代码就应该存在它的价值,这个价值是客观的,而不是依赖主观的某个人的认知。不是么?
所以这一讲要关注的问题是,你写的每一行代码都有自动化测试的价值么?你能把它说出来,说清楚么?想清楚这些,你自然也会明白给定一个自动化测试的项目,哪些工作是 overwork(过度工作),哪些是 underwork(工作得还不够)。

哪些代码值得写?

在开始之前,我们再回顾一下自动化测试 ROI 模型。
一个案例转化成自动化测试后,我们的目标是它的投资回报率越高越好,在 ROI 公式里,回报也就是分子越高越好,成本也就是分母越低越好。
在第一讲我讲到过,n 是自动化测试案例运行的次数,在回归测试里,n 是回归迭代的次数,回归次数越高,n 也就越大,这是从时间的角度上来看 n。在这一讲,我们换个角度,从空间来看,也就是代码的复用率,我们有没有办法让代码的复用率升高?
确认放弃笔记?
放弃后所记笔记将不保留。
新功能上线,你的历史笔记已初始化为私密笔记,是否一键批量公开?
批量公开的笔记不会为你同步至部落
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
  • 深入了解
  • 翻译
    • 英语
    • 中文简体
    • 中文繁体
    • 法语
    • 德语
    • 日语
    • 韩语
    • 俄语
    • 西班牙语
    • 阿拉伯语
  • 解释
  • 总结

本文介绍了如何提高自动化测试代码的价值和复用。作者通过具体的代码示例和实际场景说明,探讨了代码的空间复用率,即如何让一份代码在不同的测试场景中多次运行。作者以一个登录脚本为例,展示了如何提高代码的复用率。他提出了一份代码兼容多个浏览器的最佳实践,以及一份代码兼容多组测试数据的方法,进一步提高了测试案例的运行次数。此外,他还提出了一份代码兼容多个环境的最佳实践,通过举例说明了如何实现一份代码在不同环境下运行,从而进一步提高了测试案例的运行次数。文章还探讨了维护工作量的不确定性和诊断自动化测试的工作量,提出了一些提高诊断速度的方法。总之,文章强调了任何能够提高ROI的代码都是有价值的,同时也提出了降低维护成本的方法。这篇文章对于开发和测试人员来说具有一定的参考价值,能够帮助他们更好地理解自动化测试代码的编写和优化。

仅可试看部分内容,如需阅读全部内容,请付费购买文章所属专栏
《自动化测试高手课》
新⼈⾸单¥59
立即购买
登录 后留言

全部留言(13)

  • 最新
  • 精选
  • Evan
    置顶
    现在回头看自己刚开始写的自动化框架和脚本,就是一大块垃圾。虽然做到模块化处理,但只学到了皮毛没学到了精髓。 接来下打算抽时间出来根据老师的ROI思维完全重构之前写的代码!感谢!

    作者回复: 是的!咱们入门的时候,容易把自动化测试理解为规模越大越好,代码写得越多越好,从数量到质量,是粗放到精细,这是一个必然的发展规律!

    2022-07-06归属地:日本
    2
  • Sarah
    从多个维度提升自动化脚本是一个好的思路👍 有另一个视角的问题,不知道老师怎么看 在这几个不同维度里面的测试可否使用交叉来降低一些执行成本,加快执行时间?比如不同的输入参数组合跟浏览器之间进行交叉覆盖即可?

    作者回复: 非常聪明的想法!这个思路符合“用最小的成本,获得最大的覆盖”的目标!

    2022-04-19
    2
    3
  • swordman
    加快诊断速度,我们也是踩了很多坑才体会到的,由此开发了测试现场重放、本地制品验证等功能。看了这节课,才豁然开朗 —— 原来这就是降低自动化测试的维护工作量啊!这个ROI,果然是隐藏在自动化背后的本质。

    作者回复: 这个专栏就是帮打通任督二脉的!😄

    2022-04-06
    2
  • lisa
    写出好的自动化测试我们其实是为了提升自动化测试的可维护性以及可扩展性,降低m和d, 这里面的内容应该还挺多的:拆分到每一个环节:开发和维护,需要在层层进一步下钻,找出短板持续迭代优化,小到一个个case,大到自动化测试运行的平台建设以及自动化测试框架。

    作者回复: 重温到位!

    2022-05-30
    1
  • 派森
    同样是自动化测试,不同人写出来差异性很大

    作者回复: 谢谢,我当是夸奖啦。哈哈。

    2022-04-29
    1
  • 吃饼少年
    多版本请求参数都有变化,怎么做代码重复利用?

    作者回复: 我理解你的问题是说,代码在迭代过程中,导致API的参数发生变化,是这个意思么? 这是有关于ROI模型的分母问题, 也就是产品发生变化,测试代码也需要修改而带来的维护成本。 而本讲是ROI模型的分子,如何扩大测试代码的运行次数。

    2022-06-29
  • woJA1wCgAA3aj6p1ELWENTCq8KX2z...
    一份代码兼容多环境,还需要考虑代码中数据的处理,有可能是多代码了

    作者回复: 现实中确实会遇到各种困难。简单点说,评估产品代码质量的一个度量,duplicate code,也可以用在自动化测试代码中,能做到不写重复代码。

    2022-03-30
  • 太匆匆
    从目前自动化应用来看,少部分企业自动化测试人员的代码能力能够追评甚至超越开发人员(也不能说超越,因为自动化本身也是开发工作的一种),但大部分测试人员代码能力还是弱于测试人员的。 在这里有一个问题想问一下,比如兼容性测试,我们自动化测试结果是通过的,但是实际去看某一浏览器(比如火狐),去查看的时候发现被测截面的布局是有错位、或者页面不兼容的情况的(比如按照要求按钮的位置在A,但实际测试时发现位置却在B)。这种我们如何在自动化测试中去识别呢?

    作者回复: 谢谢分享!在第二模块UI测试一讲中会讲到Layout测试!

    2022-03-28
    2
  • IT蜗壳-Tango
    打卡。 现在APP测试的框架是underwork的,但是小程序的测试框架是overwork的。这个也是我接下来准备优化的地方。

    作者回复: 很好的习惯!现在每讲我们都见面!

    2022-03-28
    2
  • RONG
    前两天试看了一下前几章,老师提到的ROI对我有所启发,过来感谢一下老师。我做的自动化项目已经运行一年多了,数据复用,环境复用啥的之前都做了。看了课程让我想做一个用例执行统计的功能,然后研究了几天pytest hook,排除了引入并发加入的坑,最后做了出来。这样后面就可以拿数据说话了。感谢
    2023-01-05归属地:江苏
    1
收起评论
显示
设置
留言
13
收藏
沉浸
阅读
分享
手机端
快捷键
回顶部