程序员的测试课

程序员的测试课 / 掌握测试,写好高质量代码

郑晔 前火币网首席架构师,前Thoughtworks首席咨询师
  • 课程目录
  • 课程介绍
  • 开篇词 | 为什么写测试是程序员的本职工作?

    程序员写测试就是为了编写高质量的代码,让我们一起写好测试,编写出高质量代码!

  • 01 | 实战:实现一个 ToDo 的应用(上)

    我在开篇词里说过,很多程序员之所以不写测试,一个重要的原因是不会写测试。所以,我们不玩虚的,第一节课直接带你上手实战。

  • 02 | 实战:实现一个 ToDo 的应用(下)

    这一讲,我们继续实现这个 ToDo 应用,把欠缺的部分都补上。

  • 03 | 程序员的测试与测试人员的测试有什么不同?

    有了实践的根基后,我们还需要对如何编写测试有一个更全面地理解,以便日后能够更好地应对各种场景。

  • 04 | 自动化测试:为什么程序员做测试其实是有优势的?

    其实,程序员的主要工作就是打造各种自动化工具,无论是为了业务的支撑,或者是对于开发过程本身的支持。

  • 05 | 一个好的自动化测试长什么样?

    之所以测试会出现这样那样的问题,一个重要的原因是这些测试不够好。

  • 06 | 测试不好做,为什么会和设计有关系?

    不好测实际上是一个结果。那造成这个结果的原因是什么呢?答案就是我们今天要讨论的话题:软件设计。

  • 07 | Mock 框架:怎么让测试变得可控?

    不依赖于细节,那我们的测试总需要有一个实现出现在所需组件的位置上吧?或许你已经想到答案了,没错,这就是我们这一讲要讲的 Mock 框架。

  • 08 | 单元测试应该怎么写?

    只有通过单元测试保证了每个组件的正确性,我们才拥有了构建系统的一块块稳定的基石。

  • 09 | 测试覆盖率:如何找出没有测试到的代码?

    如何尽可能消除预期之外的行为,让代码尽在掌控之中呢?这一讲,我们就来讲讲如何查缺补漏,找到那些测试没有覆盖到的代码。

  • 10 | 为什么 100% 的测试覆盖率是可以做到的?

    这一讲我们就来说说怎样向着 100%的测试覆盖率迈进。

  • 11 | 集成测试:单元测试可以解决所有问题吗?

    各个单元能够很好地协同,我们也不能靠预期,而是要靠集成测试。这一讲,我们就来讨论一下集成测试。

  • 12 | 实战:将 ToDo 应用扩展为一个 REST 服务

    这一讲,我们就把前面已经写好的 ToDo 应用扩展一下,让它变成一个 REST 服务。

  • 13 | 在 Spring 项目中如何进行单元测试?

    在接下来的两讲,我们就把注意力从一个具体的项目上挪开,放到 Spring 框架本身,看看它对开发效率提升的支持。

  • 14 | 在 Spring 项目如何进行集成测试?

    正如前面所说,Spring 要尽可能让你在不依赖于容器的情况下进行测试。Spring 的做法就是提供一套自己的方案,替代掉对于容器的依赖。 这一讲,我们就来看看采用 Spring 的项目如何做集成测试。

  • 15 | 测试应该怎么配比?

    有一些内容用单元测试覆盖可以,用集成测试覆盖也可以,如果只写单元测试总有些不放心,如果同时用单元测试和集成测试去覆盖,工作量似乎又会增大,不同的测试应该怎样配比呢?这就是我们这一讲要讨论的内容。

  • 16 | 怎么在遗留系统上写测试?

    即便是新写出来的系统,因为没有测试,它就是遗留系统。由此可见测试同遗留系统之间关系之密切。想要让一个遗留系统转变成为一个正常的系统,关键点就是写测试。

  • 17 | TDD 就是先写测试后写代码吗?

    在最后的扩展篇,我将给你介绍 TDD 和 BDD 两项实践。在你学有余力的情况下,可以挑战一下,让自己再向前走一步。这一讲,我们先来说说 TDD,也就是测试驱动开发(Test Drvien Development)。

  • 在线阅读:18 | BDD 是什么东西?

    当 JUnit 带来的自动化测试框架风潮迅速席卷了整个开发者社区,成了行业的事实标准,就开始有人基于测试框架的模型进行延伸了。各种探索中,最有影响力的就是 BDD。

  • 答疑解惑 | 那些东西怎么测?

    有不少同学在专栏的问了一些非常典型的问题,引发了我的一些思考。所以,我准备了这期加餐,把我的这些延伸思考分享给你。

  • 结束语 | 对代码的信心要从测试里来

    如果整个专栏你只能记住一件事,那请记住:写代码时问问自己,这段代码应该怎么测。

21讲

你将获得

  • 实战导向,深入剖析测试本质
  • 一套实用的自动化测试使用手册
  • 从测试角度理解代码质量
  • 高频测试问题及解决方案

讲师介绍


课程介绍

保证代码的正确性,是每个程序员口中的目标,但是否真的落实到了程序员的行动上,我们得打一个问号。

程序员圈子流传着一个关于测试的段子:“每个程序员在修改代码时都希望有测试,而在写代码时,都不想写测试。”很多团队并没有对编写测试有硬性的要求。为什么团队不要求?一个很可悲的答案是,大多数程序员不会写测试。对于不会做的事情,人们自然的反应就是少做或者不做。

对于今天的程序员来说,写测试就是程序员本职工作的一部分,但测试并不是光知道 xUnit 框架就能够很好完成的。基于此,郑晔老师将带你从实战入手,深入剖析测试的本质,解除你对测试的误解,帮你把“一个程序员在日常工作中如何编写自动化测试”的相关知识梳理一遍。更进一步,为你展现高频测试问题并提供解决方案,助你编写出高质量代码。

课程模块设计

课程主体划分为以下3大模块。

  • 基础篇:从实战出发,为你讲解关于测试的基础知识。在这个实战中你会学习到怎么样用带测试的方式编写一段代码,在一个新项目里如何去做测试。在这个部分你还会学习到“程序员的测试和测试人员的测试有什么不同”“测试不好做,为什么会和设计有关系”等测试痛点问题。
  • 应用篇:同样以实战开始,为你介绍在一个后端项目中可以怎样做测试。对后端项目来说,Spring 框架有两大优势,一方面,它的使用非常广泛;另一方面,它对测试提供了非常好的支持。所以在这个部分主要讲解使用 Spring 框架如何做测试。
  • 扩展篇:为你介绍 TDD 和 BDD 两项开发实践,拉近这两项实践和你的距离。很多人之所以不用这两种实践,思维习惯是一方面,还有一方面就是欠缺测试的基础。当你掌握了基础篇和应用篇的内容后,再来看这些实践,你会有认知上的更新。

课程目录


特别放送

免费领取福利


限时活动推荐


订阅须知

随机推荐

马骑顿儿童套装评测结果好吗?亲身评测体验诉说?

秋田满满婴幼儿调味品好用吗?深度爆料评测?

ZMIQB818实际效果怎样?评测报告来告诉你?

魔幻厨房烘焙模具好不好?达人专业评测?

法丽兹饼干-膨化值得买吗?图文评测,一目了然!

康夫F9用户口碑怎么样?使用感受!