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

开篇词 | 做性价比最高的自动化测试

讲述:柳胜大小:13.97M时长:15:18
你好,我是柳胜。很高兴通过这个专栏和你探讨自动化测试。
先简单介绍一下我自己,我在摩托罗拉和甲骨文做过开发工程师、测试工程师、测试经理和高级开发经理。从 B 端的企业应用测试到 C 端的云计算开发,我都做过。在甲骨文工作的 13 年时间里,我带领团队设计、开发了 Automation Center 框架,补全了视频会议二十多年来的自动化测试解决方案空白。
相比开发,我在自动化测试领域里得到的收获最多,教训也最多。因此,我把这些踩坑的血泪史总结沉淀,期待通过专栏的形式分享给你,帮助你在自动化测试的职业工作中,建立全局思维,找准工作的焦点,让手中的测试项目事半功倍。

自动化测试的终点是什么?

刚入门的自动化测试工程师,很容易陷入到工具和框架的汪洋大海里。的确,从代码静态扫描到单元测试、API 测试、系统测试、性能测试,每个细分领域的工具都不少。
但是,工具之后呢?
从普通开发到架构师,软件开发的职业体系清晰可见。测试则不然,我观察过业界自动化测试人员的职业发展路线,有的公司有自动化测试架构师这个职位,有的公司设立了测试架构师,自动化架构算作测试架构师的职责之一,更多的公司根本就没有自动化测试的高级角色,各个产品线测试和开发混在一起玩。
我也问过测试业界不少朋友,你的公司为什么要自动化测试?预期的效果是什么?
答案是五花八门,有的说是节省手工开支,有的说是业界趋势,还有的说我们研发领导非常重视,干就是了。在团队中,基本认识都出现了这么大的差别,后面的乱象就出来了,项目投入不稳定,可多可少跟着感觉走。自动化测试人员严重缺乏表达自己工作价值的话语权,被迫和开发人员一起内卷技术工具。
经历了这些,你甚至怀疑自动化测试工作的尽头就是工具,随后一边“内卷”,一边在忙碌中更加迷茫。其实,要想成为高手,就必须要看到并解决更有价值的问题,对更高的结果负责,对应的职位和收入会随后而至,它可能叫自动化架构师,也可能叫测试专家,或什么 ABC。
既然说到“更高的结果”,我们就有必要以终为始,先想想自动化测试的最终结果是什么?换个问法,自动化测试的最终交付价值是什么?
是自动化跑起来么?这个要求太初级了。
是领导满意么?我见过很多案例,一个自动化测试项目因一个领导的支持而发起,但成也萧何,败也萧何,往往也因为换了一个领导,项目就半途而废。
是 100% 自动化么?理想很丰满,现实很骨感,高度自动化并不会一定带来高质量,我也见过开发人员为了达到 100% 单元覆盖率,就写一个 Test 函数,把程序运行起来了事,有的连一个检查点都不做。
所有这一切,都让我深深意识到,无法清晰认知自动化测试的价值,测试工作就会举步维艰。在我看来,自动化测试项目的最终交付价值是它产生的效益,也就是投入回报率比 ROI。一个成功的自动化测试项目必然是获得了高 ROI 的收益自动化测试高手就是要做出成功的自动化测试项目。

怎样成为高手?

明确了目标,我们还需要找到高效的实现路径。
我对自动化测试架构师的定义是,不仅仅是写代码让自动化测试跑起来,而且能够超脱于工具框架的层面,对测试需求和自动化 ROI 一起抽象建模,对自动化测试项目的最终 ROI 负责。
为了达到这个目标,有两种学习路径。
第一是升级打怪型。
先是提高代码能力,学习编程、操作系统和数据库。这个的确很重要,尤其对于刚入门的朋友,首先搞一个 Hello World 程序,有个感官的体验,后面再逐步深入。
然后是工具能力,使用各种工具和框架,Xunit 系列、API 测试框架、系统测试工具,编写自动化测试案例,运行、出报告,之后和 DevOps pipeline 集成。
最后是架构能力,熟悉测试需求和技术架构,设计自动化测试整体方案和技术路线,能够选型工具和框架,搭建测试基础设施。
学习路径1:升级打怪型
这是我们熟知的自底向上学习路线,是认知方法的归纳法。见过的鱼多了,就知道鱼是什么了,逐渐积累捕鱼的经验。这个方法的优点是门槛低,缺点是耗时,周期长。
第二种是航海指南型。
和第一种方法相对应,另外一种认知学习方法是自顶向下,属于认知方法中的演绎法。从道术器三个层面从高到低推进,每一步都有自己的逻辑。
知道什么是鱼和它的游动规律,就相当于带着导航去捕鱼,甚至你还可以发明新的捕鱼工具。这个方法优点是速度快,但需要你自带脑袋瓜,跟着我一起思考。
学习路径2:航海指南型
专栏中我们采取的学习方法是以自顶向下为主,自底向上为辅。通过整个专栏的学习,你将系统了解自动化测试的道、术、器,同时收获一种颠覆性的认知,跳出工具和框架的层面重新审视自动化测试设计,知道自己想要什么样的自动化测试架构。
自动化测试道的部分,主要是逻辑和常识,你不需要有工作经验和技术,也能听得懂,我期望你会和我一起演绎思考,就是说,这些方法如果应用到我的工作,会怎么样。
术的部分会涉及度量数据分析、代码逻辑和 Job 建模,这个也对应着软件开发里的数据、算法和建模。我会在 GitHub 上创建一个repo(随课程进展陆续更新),放入专栏所讲到的整体代码和相关文件,希望你能动脑思考,动手运行代码。手脑结合,学习效果会更好。
器,也就是工具和框架。在第三讲里会列出业界主流工具框架以及选择策略和落地实践。在每个模块里也会穿插一些具体的落地案例,介绍相应的工具和代码相关例子。
不过,本专栏里具体工具和代码的篇幅不会超过 20%。我这样克制,是因为这些东西网上搜搜也能免费获取。我会在最后附上全栈自动化测试工具列表,从单元测试到性能测试相关的网站地址。相信你通过自学,就能掌握个七七八八。
授之以鱼,不如授之以渔。我不希望你一下子扑到工具技术的茫茫大海里,等过几年之后,有一种学不完、学不精、用不好的绝望,这都是我曾经历过的。如果能再来一次,我更愿意早点了解鱼的规律,带着导航驶入大海,有方法地探索,最后满载而归。

这门课如何安排

课程一共分成了四大模块,分别是:价值篇、策略篇、设计篇与度量篇,自动化测试的道、术、器会贯穿其中。
专栏模块设计
第一模块价值篇会带你重新审视自动化测试的基本概念和规律,掌握自动化测试效益的量化思维方法——投入产出比 ROI 模型。它是自动化测试项目成长的 DNA,也是隐藏的命脉,在工作中紧紧抓住它,效果就来了:自动化测试使用的场景越来越丰富,越来越稳定和可信,交付发布的速度越来越快。
这些都可以帮你在述职报告中,用 ROI 的方式表达业绩,比如:“老板,我做的自动化测试案例,去年一年被 n 个场景使用,重复运行 x 次,发现 bug y 个,节省手工工作量 z 人月”。
ROI 如何落地呢?我们会从立项、设计、代码、运营各个阶段逐步深入解读。
四测试阶段ROI落地示意图
通过这个模块的学习,你会获得一个新的思维角度,用它来审视自动测试项目,判断项目中哪些是过度工作,哪些是工作做得还不够。同时你也掌握了一门和管理者和团队沟通的语言,在述职、评审等交流环节,能把自己工作的价值表达清楚。
到了第二模块策略篇,我们会从一个订餐系统的例子出发,从单体应用升级到微服务集群,来观察测试需求的变化。针对微服务集群关系复杂、依赖多的挑战,建立起多层测试策略:单元测试、集成测试、接口测试、契约测试、UI 测试和验收测试,通过逐层测试来全面验证需求。
每一种测试策略,我会用一讲的篇幅来讲述它的方法论和工具,能做什么、不能做什么,如何设计自动化测试案例。
第三模块设计篇,我们一起推演模型设计。像开发的设计模式一样,自动化测试设计也应该有自己的方法论。
这里我提出的微测试 Job 模型,也是业界首创,会让你耳目一新。在这个 Job 模型里,没有 TestSuite 和 TestCase 的概念,也没有具体工具和框架的依赖,而是面向测试需求和自动化测试 ROI 要求设计。它可以帮你厘清测试的场景、工作流、需要代码实现的案例原子,同时内建自动化测试 ROI 需求,这正是自动化测试设计阶段需要关注和要做的事情,对吗?
基于 Job 模型的设计产出是一个 XML 的树形结构文档,描述了我们的自动化测试任务,基于这个需求,我们的工具选型就会更加科学。一个测试案例,A 工具和 B 工具都能做自动化,那它们都可以去实现需求,将来它们被替换成 C 工具,对其他案例没有影响,我们的自动化测试设计也依然保持不变。这就保证自动化测试项目有了持续重构优化的能力,而不是走向腐化。
同时,我给出了 3 个案例,分别针对领域业务型金融交易自动化测试设计,DevOps 型持续集成 pipeline 设计,分布式型的复杂场景视频会议系统自动化测试设计,帮助你理解怎么使用 Job 模型来设计不同的自动化测试场景。
掌握了怎么把一个自动化测试项目送入到它的运行轨道,就可以坐享 ROI 的红利了么?不,还不够,你还要考虑怎么让这个项目始终可观测、可控,有反馈,这样就能保证这个项目始终在预定轨道上推进,即使有偏离,也能第一时间发现纠正回来。在第四模块度量篇,我还会提供一些度量模型和驱动改进的流程样例,供你参考实践。
另外,本专栏提出了不少新的方法论,3KU 测试金字塔(第二讲),Job 模型(第十七讲),而且是业界第一次出现,你刚看到不一定会很快适应。有时可以多看几遍,我相信你每次看都会有不同的收获。
马斯克最近说过一句话,我对此很有感触,也分享给你:
死亡对我们来说很重要,因为大多数时候人们不会改变主意,他们只是死去。如果人们长生不老,我们可能会成为一个非常僵化的社会,导致新想法无法成功。
我思故我在,思维的碰撞是痛苦的,也是快乐的。期待你加入我的自动化测试专栏,一起扬帆探索自动化测试的深海区!
确认放弃笔记?
放弃后所记笔记将不保留。
新功能上线,你的历史笔记已初始化为私密笔记,是否一键批量公开?
批量公开的笔记不会为你同步至部落
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
  • 深入了解
  • 翻译
    • 英语
    • 中文简体
    • 中文繁体
    • 法语
    • 德语
    • 日语
    • 韩语
    • 俄语
    • 西班牙语
    • 阿拉伯语
  • 解释
  • 总结

柳胜在本文中分享了关于自动化测试的见解和经验。他强调了自动化测试的终点不仅仅是让测试跑起来,而是要产生高ROI的效益。为了成为自动化测试高手,他提出了两种学习路径:升级打怪型和航海指南型。他强调了自顶向下的认知学习方法,并表示专栏将系统介绍自动化测试的道、术、器,帮助读者重新审视自动化测试设计。文章内容涉及了自动化测试的目标、学习路径和方法,旨在帮助读者建立全局思维,找准工作的焦点,提高自动化测试的效率和价值。 文章分为四大模块,分别是价值篇、策略篇、设计篇与度量篇,自动化测试的道、术、器会贯穿其中。第一模块价值篇重新审视自动化测试的基本概念和规律,掌握自动化测试效益的量化思维方法——投入产出比ROI模型。第二模块策略篇从一个订餐系统的例子出发,观察测试需求的变化,建立多层测试策略。第三模块设计篇推演模型设计,提出了微测试Job模型,并给出了不同的自动化测试场景案例。第四模块度量篇提供了度量模型和驱动改进的流程样例。此外,专栏还提出了不少新的方法论,如3KU测试金字塔和Job模型。 柳胜鼓励读者加入他的自动化测试专栏,一起探索自动化测试的深海区。整体而言,本文内容丰富,涵盖了自动化测试的各个方面,为读者提供了系统的学习路径和方法,帮助他们在自动化测试领域取得更大的成就。

2022-03-2137人觉得很赞给文章提建议

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

全部留言(15)

  • 最新
  • 精选
  • 闲不住的令狐冲
    置顶
    难得有一篇看完序章就买的专栏。我做了11年开发,大大小小的应用、架构也基本熟悉,刚转型测试1年多,正在思考如何帮身边的测试小伙伴们走出职业困境。 作者的设计思想跟我理念很契合,我一直认为吃技术饭的人,要想进阶,必须真正领悟的设计思维。开发人员在这方面会稍微好一些,而且也有先天优势,但测试人员,特别是只做过测试的同学,就明显要欠缺的多。

    作者回复: 难得知己,希望也能听到你的分享!😄

    2022-04-21
    2
    6
  • 高楼(Zee)
    开篇就有写出天花板的姿态,必须得支持。😁

    作者回复: 高老师串门了,谢谢支持!

    2022-03-30
    2
    7
  • 李慧文
    老师这两个方法是您提出来的吗? 3KU 测试金字塔(第二讲),Job 模型(第十七讲)

    作者回复: 是的,珍藏了多年的经验,通过本专栏首次提出。除了这2个,还有其他新的方法论,在合适的章节知识点中提出。谢谢关注,共同讨论!

    2022-03-21
    5
  • 清风明月
    老师讲得很好,很期待您接下来的课程! 我做过很多年的测试,也做了一段时间的开发,总的来说测试行业需要学习很多很多知识,而且要深入学习,很多测试人员只知道发现问题,并不去思考问题的原因以及问题的解决方案,这是很可怕的! 现在很多测试人员都学习应用层上面的工具,很少从底层和架构上面思考问题,就导致只能写一些自动化脚本跑,但是无法了解问题本身的原因,特别是性能问题,很多测试人员都只知道加压跑起来,却不知道系统,网络,应用之间的关系。 个人认为:高大上的测试工具或代码会一两种就好了,底层,架构以及被测app工作原理也是比较重要的! 不知道我的总结是否正确,请老师指正!

    作者回复: 说得好!不要把自己框在一个测试工程师里!

    2022-03-23
    3
  • 🐑 🐑 得意
    每张图都好好看,老师分析得也很透彻!追更~

    作者回复: 谢谢关注,共同讨论!

    2022-03-21
    2
  • Geek_c6a445
    基于(单元测试、接口测试、UI测试)自动生成代码,自动生成数据如何实现呢?期望能有实战落地的方案

    作者回复: 自动生成数据,在微信群里已经分享过了。加我微信,我们在群里讨论具体细节!

    2022-08-23归属地:日本
    4
  • 可观测性无声笛
    目前在做可观测性工具,目前测试工具很丰富,但是缺少可观测性工具

    作者回复: 希望有机会听到你在可观测性工具的见解和经验分享!

    2022-06-13
  • CarolShen
    老师亲自播讲,必须赞一下

    作者回复: 谢谢关注!

    2022-05-23
  • IT蜗壳-Tango
    打卡学习

    编辑回复: 加油,可以定个自己的学习目标,2个月后回来检验flag~

    2022-03-23
  • distdev
    柳老师好 我是王旭恩 没搞错的话 我们曾经是同事

    作者回复: 王旭恩老兄,我们失散了有10多年呀,真是缘分呀。加个微信吧,sunshinelius

    2022-03-23
收起评论
大纲
固定大纲
自动化测试的终点是什么?
怎样成为高手?
这门课如何安排
显示
设置
留言
15
收藏
65
沉浸
阅读
分享
手机端
快捷键
回顶部