软件测试52讲
茹炳晟
eBay中国研发中心,测试基础架构技术主管
立即订阅
13425 人已学习
课程目录
已完结 63 讲
0/4登录后,你可以任选4讲全文学习。
开篇词 (1讲)
开篇词 | 从“小工”到“专家”,我的软件测试修炼之道
免费
测试基础知识篇 (11讲)
01 | 你真的懂测试吗?从“用户登录”测试谈起
02 | 如何设计一个“好的”测试用例?
03 | 什么是单元测试?如何做好单元测试?
04 | 为什么要做自动化测试?什么样的项目适合做自动化测试?
05 | 你知道软件开发各阶段都有哪些自动化测试技术吗?
06 | 你真的懂测试覆盖率吗?
07 | 如何高效填写软件缺陷报告?
08 | 以终为始,如何才能做好测试计划?
09 | 软件测试工程师的核心竞争力是什么?
10 | 软件测试工程师需要掌握的非测试知识有哪些?
11 | 互联网产品的测试策略应该如何设计?
GUI自动化测试篇 (10讲)
12 | 从0到1:你的第一个GUI自动化测试
13 | 效率为王:脚本与数据的解耦 + Page Object模型
14 | 更接近业务的抽象:让自动化测试脚本更好地描述业务
15 | 过不了的坎:聊聊GUI自动化过程中的测试数据
16 | 脑洞大开:GUI测试还能这么玩(Page Code Gen + Data Gen + Headless)?
17 | 精益求精:聊聊提高GUI测试稳定性的关键技术
18 | 眼前一亮:带你玩转GUI自动化的测试报告
19 | 真实的战场:如何在大型项目中设计GUI自动化测试策略
20 | 与时俱进:浅谈移动应用测试方法与思路
21 | 移动测试神器:带你玩转Appium
API自动化测试篇 (3讲)
22 | 从0到1:API测试怎么做?常用API测试工具简介
23 | 知其然知其所以然:聊聊API自动化测试框架的前世今生
24 | 紧跟时代步伐:微服务模式下API测试要怎么做?
代码测试篇 (3讲)
25 | 不破不立:掌握代码级测试的基本理念与方法
26 | 深入浅出之静态测试方法
27 | 深入浅出之动态测试方法
性能测试篇 (7讲)
28 | 带你一起解读不同视角的软件性能与性能指标
29 | 聊聊性能测试的基本方法与应用领域
30 | 工欲善其事必先利其器:后端性能测试工具原理与行业常用工具简介
31 | 工欲善其事必先利其器:前端性能测试工具原理与行业常用工具简介
32 | 无实例无真相:基于LoadRunner实现企业级服务器端性能测试的实践(上)
33 | 无实例无真相:基于LoadRunner实现企业级服务器端性能测试的实践(下)
34 | 站在巨人的肩膀:企业级实际性能测试案例与经验分享
测试数据准备篇 (4讲)
35 | 如何准备测试数据?
36 | 浅谈测试数据的痛点
37 | 测试数据的“银弹”- 统一测试数据平台(上)
38 | 测试数据的“银弹”- 统一测试数据平台(下)
测试基础架构篇 (4讲)
39 | 从小作坊到工厂:什么是Selenium Grid?如何搭建Selenium Grid?
40 | 从小工到专家:聊聊测试执行环境的架构设计(上)
41 | 从小工到专家:聊聊测试执行环境的架构设计(下)
42 | 实战:大型全球化电商的测试基础架构设计
测试新技术篇 (5讲)
43 | 发挥人的潜能:探索式测试
44 | 测试先行:测试驱动开发(TDD)
45 | 打蛇打七寸:精准测试
46 | 安全第一:渗透测试
47 | 用机器设计测试用例:基于模型的测试
测试人员的互联网架构核心知识篇 (5讲)
48 | 优秀的测试工程师为什么要懂大型网站的架构设计?
49 | 深入浅出网站高性能架构设计
50 | 深入浅出网站高可用架构设计
51 | 深入浅出网站伸缩性架构设计
52 | 深入浅出网站可扩展性架构设计
特别放送篇 (8讲)
测试专栏特别放送 | 答疑解惑第一期
测试专栏特别放送 | 答疑解惑第二期
测试专栏特别放送 | 答疑解惑第三期
测试专栏特别放送 | 答疑解惑第四期
测试专栏特别放送 | 答疑解惑第五期
测试专栏特别放送 | 答疑解惑第六期
测试专栏特别放送 | 答疑解惑第七期
测试专栏特别放送 | 浅谈全链路压测
测一测 (1讲)
测一测 | 这些软件测试题目,你都掌握了吗?
结束语 (1讲)
结束语 | 不是结束,而是开始
软件测试52讲
登录|注册

开篇词 | 从“小工”到“专家”,我的软件测试修炼之道

茹炳晟 2018-06-25
00:00
08:41
讲述:茹炳晟 大小:4.00M
你好,我是茹炳晟。我从 2002 年开始做软件开发,2005 年时转型成为测试工程师,算起来已经在这个行业摸爬滚打了 16 年。2005 年的时候,软件测试还停留在重复性手工测试的阶段,而且受重视程度远不如软件开发,所以当时我就像是一个“小工”。
可是,我很快就意识到,要真正把测试这件事做透做精,并不是那么容易,这中间有太多技术需要去研究和探索。
很多人第一印象会觉得做测试比做开发简单很多,但是我想说,在这个世界上,你想把任何一件事做好、做到极致都没那么容易,都需要付出比别人更多的努力。不管是一万小时定律还是厚积薄发,当你把知识积累到一定程度的时候就会发现,原来软件测试的世界这么有意思。
我是国内最早一批从事测试自动化的工程师,并经历了软件测试技术从“原始社会”向“现代文明”发展的整个历程,也经历了从“测试不受重视”到“测试和开发同等重要”的行业理念转变。目前我正在探索由 Google 等一线互联网巨头主导的“去 QE,开发自己测试”的全新模式,也有了很多的感悟和思考。
在这期间,我经历了自动化测试用例设计与开发、测试框架选型、测试框架自行研发、测试基础架构设计以及最新的测试服务化(Test as a Service,TaaS)等一系列技术的变革与发展。
我带领过的测试项目也几乎涵盖了所有种类,包括嵌入式系统测试、金融平台单元测试、平台 SDK 测试、轨道交通安全软件测试、Web Service 测试、大型电商网站 GUI 自动化以及性能全链路压测等。
由此,我个人也完成了从“小工”到“专家”的蜕变,成为了一名资深的测试架构师。
之所以要写这个专栏,我也是希望能把这么多年积累的经验和教训,通过极客时间这个平台,分享给你,让你能够用最短的时间了解整个软件测试行业技术发展的脉络,以“知其然知其所以然”的方式深入理解目前主流的测试技术,不仅知道应该怎么做,更明白为什么要这么做。
同时,在循序渐进的专栏学习过程中,我希望你能够学以致用,将所学应用到你所在企业的实际项目中,帮助企业提高测试质量以及测试效率,同时也为自己的职场晋升之路打好基础。
面对势不可挡的 ABC(AI + Big Data + Cloud)技术浪潮,无论是从被测对象本身的复杂性、多样性和规模性来讲,还是从测试技术以及测试基础架构从无到有的发展来讲,都需要测试工程师的知识面、测试设计能力、测试开发能力和测试平台化抽象能力有质的提升。对此,我结合趋势总结了以下三点。
第一,自动化测试在软件质量工程中的地位发生了质的变化,从原本的“以自动化测试为辅”变成了“以自动化测试为主”。
所以,你不仅需要从业务本身出发来对软件进行手工测试验证,还需要掌握完整的自动化测试开发技术来设计自动化测试用例。
第二,传统软件企业的产品发布通常以“月”为单位,因此,测试执行总时间不会成为关键问题。但是,对于互联网企业,尤其是大型电商网站,产品上线周期通常都是以“天”甚至是以“小时”为单位,留给测试的时间非常有限,这也就对测试执行总时间提出了极大的挑战。为了解决这个难题,你需要一套完善的高并发测试执行基础架构的支持。
所以,作为测试工程师,你就必须掌握设计开发测试基础架构的关键技术。
第三,随着自动化测试的规模化,测试数据准备的各种问题被逐渐暴露并不断放大,成为影响自动化测试效率以及稳定性的“拦路虎”。早期的传统测试数据准备方法,无论是从测试数据准备的时间成本,还是从测试数据的稳定性和测试数据创建的便利性上看,都已经很难适应大规模自动化测试的要求。
所以,你必须系统性地思考如何才能将测试数据的准备工具化,服务化,最终实现平台化。
通过这个专栏的学习,我希望你能够对这些趋势与挑战应对自如,并能时刻紧跟测试技术发展的新趋势。
理想是美好的,但道路往往是曲折的,因为你和我都非常清楚,技术人想要“一口吃成胖子”几乎是不可能的。但是,不要气馁,我在这个专栏里根据多年的从业经验,给你总结了下面这个“三步走”的策略,助你破茧成蝶。
第一步,成为互联网时代合格的测试工程师。
如果你是入行不满 3 年的测试工程师,一定对此有迫切需求。此时,你必须具有快速学习的能力,能迅速掌握被测软件的业务功能与内部架构,并在此基础上运用各种测试方法,尽可能多地发现潜在缺陷,并能够在已知缺陷的基础上进一步发现相关的连带缺陷。
从知识体系上看,你需要有比开发人员更全面的计算机基础知识,还需要了解互联网的基础架构、安全攻击、软件性能、用户体验和常见缺陷等知识。从测试技术上看,你需要能够使用常见的测试框架或者工具,需要具有一定的自动化测试脚本的开发能力,这可以把你从大量重复的工作中解放出来,然后你才能有时间去做更有意思的工作。
第二步,成为互联网时代优秀的测试工程师。
如果你想从“合格”变为“优秀”,那必须先认识到两者的差距在哪里。
首先,合格的测试工程师关注的是纯粹的测试,而优秀的测试工程师关注更多的是软件整体的质量,需要根据业务风险以及影响来制定测试策略,有效控制测试的时间和成本,并且能够对测试框架以及工具做出适合项目需求的选型。
以新房装修为例,合格的测试工程师就是各个工序的装修师傅,他们只管按照设计要求做好自己的工序,而优秀的测试工程师更像是个包工头,他们关心的是整体交付的质量。
其次,优秀的测试工程师不仅可以娴熟地运用各类测试工具,还非常清楚这些测试工具背后的实现原理,以及多个同类测试工具各自的优缺点和适用场景。
在遇到问题时,你还需要能够通过二次开发解决工具和框架层面的问题,对于没有合适可用工具的场景,可以自行设计开发一些小工具来更好地展开测试工作。
当然这个阶段,你很有可能会接触到一些代码级的测试,这就要求你具有一定的开发背景,并能够很好地理解代码级的测试技术。
最后,随着自动化测试用例的不断增长,自动化测试的关注点也从原本的“如何把手工测试步骤用自动化脚本实现”变成了“如何构建低维护成本,可以灵活组装的自动化脚本”,这就要求你理解自动化脚本的分层设计、页面对象模型以及业务流程模型,并且能够把这些设计应用到你的测试框架里。
第三步,成为互联网时代的测试架构师。
当你经历了各种类型的测试项目,就会发现这些项目本身虽然差异巨大,但是有很多东西是相通的。
比如,面对大量测试用例的执行,无论是 GUI 还是 API,都需要一套高效的能够支持高并发的测试执行基础架构;再比如,面对测试过程中的大量差异性数据要求,需要统一的测试数据准备平台;再比如,为了可以更方便地和持续集成与发布系统(CI/CD)以解耦的形式做集成,需要统一发起测试执行的接口。
这样的例子还有很多,如果你已经能够站在这样的高度看待软件测试,那么恭喜你,你已经具备了测试架构师的视野。当然,你还必须对一些前沿的测试方法和技术有自己的理解,并能够在恰当的时候、因地制宜地把它们应用到实际项目中。
这就是我给你总结的“三步走”进阶策略了。千里之行始于足下,接下来我会从测试基础知识讲起,结合实际案例,由浅入深地带你温故知新,提升自己的软件测试技能。
未来的四个月,我将和你一起探讨交流测试世界里各种有意思的技术,也希望四个月后,你我都能遇见更好的自己。
取消
完成
0/1000字
划线
笔记
复制
© 版权归极客邦科技所有,未经许可不得传播售卖。 页面已增加防盗追踪,如有侵权极客邦将依法追究其法律责任。
该试读文章来自付费专栏《软件测试52讲》,如需阅读全部文章,
请订阅文章所属专栏。
立即订阅
登录 后留言

精选留言(123)

  • 郭蕾 置顶
    周五开始更新。

    作者回复: 嗯嗯,明天第一篇会正式上线

    2018-06-27
    13
  • 春天里的大狗
    太期待了 30岁高龄文科生即将转行进入测试行业😝

    作者回复: 哈,相信这个专栏一定可以帮到你

    2018-06-25
    1
    21
  • 哈哈哈,你才是笨蛋
    期待!

    作者回复: 明天第一篇上线

    2018-06-25
    15
  • 夏洛克的救赎
    作为开发人员 也有必要学习测试知识。 软件工程师理应将测试看做软件工程不可或缺的一部分。

    看了目录,果断下单,期待😀

    作者回复: 你说的太对了,开发需要有测试的思维,测试也需要有开发的技能,两者本来就应该是互通有无的

    2018-06-26
    9
  • Tomandy
    混迹测试行业多年,期待能学到东西!

    作者回复: 嗯嗯,必须要学到东西,花钱是小事,但是花时间是大事,必须不让你失望

    2018-06-26
    8
  • bestpeng
    期待,转测试半年多,编程能力弱,工作中没人带,自我摸索,迷茫中

    作者回复: 相信通过这个专栏一定可以让你拨开云雾见青天

    2018-06-26
    1
    6
  • 何大小姐
    期待下一期,期待自己的成长

    作者回复: 然后我们一起共同成长

    2018-06-26
    6
  • 云学
    在讲解到工具和框架的时候希望有一些可以落地实践的经验分享

    作者回复: 我会结合实际案例来讲,这样也更好的帮助你理解,感谢支持

    2018-06-26
    4
  • gucs
    老师本人的声音充满了感情,以后先听音频再看文字😄

    作者回复: 哈哈,非常感谢你的认可,后续我继续保持

    2018-06-27
    3
  • 卫宣安
    作为传统行业的产品经理正在经历产品的手工测试向自动化测试转变,同时计划应用CI/CD实践,在这条路上自己有很多不懂的地方,希望能通过学习掌握一定的能力,同时也在寻求合适的技术人员进行实践。

    作者回复: 产品经理从需求验证的角度来说,其实是最好的测试人员。至于自动化测试和CI/CD之类的,这部分其实都是为了高效测试服务的,所以我一直在提测试既服务的架构,在课程的中段我会对这部分内容有更详细的解释

    2018-06-26
    3
  • 🌻嘿嘿...hey!🍂
    希望可以和前辈多学习,多沟通

    作者回复: 多多沟通,共同进步,感谢支持

    2018-06-26
    3
  • 期待

    作者回复: 感谢支持

    2018-06-26
    3
  • @伟
    已报名,期待会更好,视频版会不会好点呢

    作者回复: 我会尽量避免去讲工具的具体使用方法,因为对于这些内容,官方文档是第一选择。我会更多地去讲原理和思想方法,所以不是视频版本也没问题!希望不会让你失望

    2018-06-28
    2
  • 李岩
    期待老师的讲解

    作者回复: 感谢支持

    2018-06-27
    2
  • coco
    立个flag

    作者回复: 坚持就是胜利✌️

    2018-06-27
    2
  • C
    来学习

    作者回复: 感谢支持

    2018-06-27
    2
  • dhrbc
    感谢大家的支持

    作者回复: 今天开始正式更新了,后续每周三篇

    2018-06-27
    2
  • memary
    期待

    作者回复: 感谢支持

    2018-06-26
    2
  • 那天!
    多久更新一次啊

    作者回复: 明天周五更新第一篇,后续每周更新三篇,感谢支持

    2018-06-26
    2
  • jackey
    希望可以跟老师多学习,多交流。

    作者回复: 感谢支持

    2018-06-26
    2
收起评论
99+
99+
返回
顶部