圈里有这样一个关于测试的段子:每个程序员在修改代码时都希望有测试,但在写代码时,都不想写测试。
希望有测试,是因为测试可以给我们带来安全感。不想写测试,一方面,很多人会觉得麻烦,另一方面,也是更重要的,团队没要求。那为什么很多团队不要求程序员都写测试呢?这里有一个很可悲的答案,是因为大部分程序员根本都不会写测试。
为什么这么说?
有次培训,我问大家每次代码提交之前,对自己编写的代码有信心的举手,不少程序员骄傲地举起了手。“你在提交之前,会验证一下吗?”大部分人的手还是高高地举着。“你是验证了这次编写的代码呢?还是验证所有的代码呢?”,所有人一脸茫然。
很多人包括你,是不是都认为只要保证自己的代码没问题,就不用去测试所有的代码了,而且有没有破坏已有的代码那是测试的事儿,与我无关。但事实却是因为功能太多,测试也力不从心,最终没人去验证系统中所有的功能。
这才是大多数团队在实际开发中的真相。
团队的放任,加上我们总是对自己编写的代码有种凭空的自信,让我们无法准确判断自己每次提交的代码最终会带来什么样的影响。所以,我们总能看到在生产环境中出了问题,定位半天最后发现只是一个简单的错误,浪费了大量时间和精力。
但其实只需要做个简单的自动化测试,这就能轻松避免。在当下的大环境,测试,尤其是自动化测试,更应该成为你我技术能力中的“标配”。
这里我们要先走出一个误区,一般你想到的测试,大都集中在下图中“已知的未知”这个象限,比如使用不熟悉的库带来未知,然后程序员通过在测试中调用和观察结果来消除未知等。
然而,仅仅关注未知是不够的,我们还得关注已知。在已知的时间和资源中,如何通过测试在成本和获得安全的保障之间取得平衡;如何通过测试技术改进使原本难以挽回的决定变得不那么昂贵等,这些都很重要。
上面这张图出自郑晔,他曾任职火币网担任首席架构师、ThoughtWorks 首席咨询师。沉浸在软件行业近二十年,之前就读过他的很多专栏,干货巨多很实用,我都是边画思维导图边消化,最近,他在极客时间再次推出了新的专栏《程序员的测试课》。
在专栏中,郑晔系统的梳理了程序员在日常工作中需要如何编写自动化测试,不玩虚的,直接用案例实战带你上手,将所有东西串联起来,使测试的知识成为一个整体。
早鸟秒杀+口令「ceshi9999」
到手仅 ¥69,立省 ¥30
怎么样才能算是会写测试呢?最好的办法是跟着会写测试的人一起写一段时间,但整体行业的环境决定能提供这样机会的公司少之又少。大部分人学习测试,还是要通过阅读。专栏从三大部分教会你一些上手可用的方法。
基础篇,为你讲解关于测试的基础知识。每节课我都将从实例直接入手,带你用测试的方式编写一段代码,告诉你一个新项目如何去做测试。当我们有了对于编写测试一个直观的认识之后,再来了解具体的测试知识,就可以有更深刻的体验了。
应用篇,为你介绍在一个后端项目中可以怎样做测试。在这个部分,主要讲解使用Spring 框架如何做测试。之所以选择 Spring 框架,一方面,它的使用非常广泛;另一方面,它对测试提供了非常好的支持。
扩展篇,为你介绍 TDD 和 BDD 两项开发实践。这两项实践离很多人的实际工作是有距离的,之所以大多数人不采用这样的工作方式,思维习惯是一方面,还有一方面就是欠缺测试的基础。当经过专栏前部分测试的基础铺垫后,再来看这些实践,你会有不一样的感受。
还有很多具体内容,可以看看课程目录。
争取到了粉丝专属福利:
到手仅 ¥69,原价 ¥99
早鸟秒杀+口令「ceshi9999」立省 ¥30
订阅后生成海报发给好友,
每成功邀请 1 位好友,可得 ¥20 返现。
???? 点击「阅读原文」
输入优惠口令 「ceshi9999」
立省 ¥30 入手,仅限 前 50 人