12 | 测试也是程序员的事吗?
12 | 测试也是程序员的事吗?
讲述:郑晔
时长13:11大小12.08M
谁要做测试?
自动化测试
测试模型:蛋卷与金字塔
当测试金字塔遇到持续集成
总结时刻
赞 27
提建议
精选留言(41)
- 西西弗与卡夫卡2019-01-25我有个执念,不愿主动写测试代码的程序员,不太可能是优秀的程序员
作者回复: 我认同你的说法
共 3 条评论68 - Nemo2019-02-13能不能手把手教一下如何写一个完整,优秀的单元测试?
作者回复: 好建议,我可以考虑加餐。
共 2 条评论38 - jacky2019-01-25团队认知,开发周期,软件和生命财产关系不大,是单元测试的拦路虎
作者回复: 还有一点是,知识,很多人不愿意写测试的原因是不会写测试。
共 3 条评论24 - 苦行僧2019-03-29最近深有感触 单元测试写的越多 越能反思自己的代码 内建质量也能一步步建立起来 多写单元测试真是会产生蜕变的
作者回复: 小病不治,会生大病的。
16 - helloworld2019-02-26老师我有几个疑问:1. 单元测试是不是也要随着业务流程的变化而要持续维护?2. 对于变动非常频繁的业务流程是不是可以不写单元测试?因为考虑到时间的问题。3. 所有的大公司重要的项目(例如淘宝,京东等平台)是不是都有严格的单元测试编写或者执行规范?谢谢老师啦。
作者回复: 1和2,本质上是一个问题。其实,很多人担心写测试会影响写代码,但实际上,写测试,尤其是单元会帮助写代码,否则,你用的手工测试或系统测试的方式来保证系统的正确性。如果你不花练习写测试,你永远学不会写测试,写测试在你看来就是浪费时间。 这背后其实还隐藏着另外一个问题,为什么会变化快?因为一方面,前期的工作做得少,这是我们前面讲的内容要解决的,另一方面,设计做的不好,变化都是大变化,设计不做好,那就到处是问题,这是我们后面要讲的内容。 3,国内公司在工程上做得都不够好,如果想看好榜样,可以看看国外的公司,比如,Google,它要求100%测试覆盖率。
15 - Johnsen 2019-01-25像前端项目主要以UI为主,版本迭代速度又很快的情况下怎么进行单元测试的编写
作者回复: 首先,迭代速度快慢与是否写测试没关系,取决于工作是否完成是前面提到的 DoD。其次,前端之所以能够在今天成为一个独立的项目,在于它有大量的逻辑需要写,如今 JavaScript 相关的测试框架已经发展得很完整了,就按照正常的方式去写测试就好了。
12 - escray2020-06-04我之所以回来重读《10X程序员工作法》,一方面是因为新专栏的更新,另一方面就是在写单元测试的时候,发现自己不会任务分解,所以写不出来。 在我看来,程序员去写单元测试,而且尽可能的保持高的代码覆盖率(同时还有代码风格检查)都是不需要讨论的事情。从敏捷编程被介绍到国内,一直到现在,似乎也没有多少开发团队能够做到。不知道国外的情况怎么样? 看了文中提供的关于软件变更成本的链接,那四张图片,应该可以用来说服开发团队和领导。但是,有自驱力,愿意提高自己编程技艺的程序员可能没有那么多。 我对于测试驱动开发和单元测试都是认可的,但是一来是没有太多机会实践,二来就是真的不不会写。现在可能好一点,但是仍旧需要多练习。 准备重读 Kent Beck 的《解析极限编程》和《测试驱动开发》。展开8
- 学习2021-12-16非常认同之前听到的一句话,单元测试不是为公司写的,而是为自己写的。 在公司都不写单元测试的情况,你写了,差距就产生了,你进步得越快,就能越早脱离不好的公司,至少我认为,单元测试都不愿意写的公司绝对不是好公司
作者回复: 为自己写测试,好棒!
7 - 🌲树根🌲2019-02-02我的想法可以在复杂度高,重要核心的模块先开始写单元测试。特别是公用、底层的,因为这些靠功能测试很难覆盖。 单元测试难以推行主要是没有碰到质量的痛点,通常都依靠测试工程师来保证质量。我们之前就在遇到过质量崩塌,倒逼着我们去做,以保证质量。
作者回复: 很多人不知道质量问题是一环套一环累积起来的。
7 - 布衣骇客2019-01-30从一个以前基本不写j测试代码的我,不过基本都有自动化测试以及测试人员,现在也开始写自己的代码的那部分测试,最开始的不情愿,到现在一直写,并且我会一直写下去,觉得这个是一种验证,每次看到自己写的代码再用自己写的测试通过之后信心满满呐
作者回复: 坚持是蜕变的基础,加油!
共 2 条评论6 - 苦行僧2019-03-11单元测试不好写 基本可以断定业务代码和通用代码纠结在一起了 需要重构
作者回复: 耦合是肯定的
5 - 肉墩儿快跑2019-01-26看绩效了,只要价钱足够高,就能保证了
作者回复: 经济学告诉我们,没有足够高的价钱。
共 2 条评论5 - 草原上的奔跑2019-01-26作为一个程序员,怎么保证自己写出来的程序是好的,答案是写测试,只有自己通过了单元测试、集成测试、系统测试,那么提测的时候我们才会有底气,而不是时刻准备着测试出问题去改。但是,很不幸的是,团队内部成员没有写测试的意识,让他们写,以不会写、时间不够为借口,就是不写,不知道郑老师对这种情况有没有好的解决办法。
作者回复: 很多不喜欢写测试的真实原因是,不会写。他们先要知道写测试是怎么回事,可以把我这个系列学完之后,分享给他们。
共 2 条评论5 - wesleydeng2019-06-17现在单元测试有很多涉及到资源(比如db)的测试,这种情况下往往有依赖spring,导致了两个问题: 1.spring启动慢 2.dao测试不能跨环境,导致竟然因为有dao用了junit,不方便批量运行 junit这两个问题怎么破?
作者回复: 首先,涉及到Spring启动,这是集成测试,不是单元测试。 其次,Spring提供了数据库的测试方案,测试之后,可以回滚,测试之间彼此不影响。用spring和test作为关键字可以搜到。 再次,我个人推荐使用Spring Data,自己少写数据库逻辑。
4 - 奕超2019-02-01实际情况是:很多时候,项目时间很紧,经常会提测后,再补,或者直接code review,测试就不写了;
作者回复: 项目永远很紧,时间永远不够,你打算永远这样吗?
4 - 马以2021-05-13把写单元测试成为一种习惯…….
作者回复: 加油!
3 - 苦行僧2019-03-08多写基于方法级别的单元测试3
- 巫山老妖2019-01-27测试没有银弹,主要看大家对测试这件事情的认知是否一致,现在都在推崇测试左移,尽可能玩发现问题,这就对程序员提出更高的要求。
作者回复: 优秀程序员总是少数的,会写测试就已经上了一级台阶,能在写代码之前思考测试,就会再上一级台阶。
3 - 行与修2019-01-25团队开发人员的编程功力不够,即使想写单元测试也是奢望。那种前后台代码不分,用着先进的设计模式但写着落后方式实现的代码的,一旦开始了单元测试,估计大部分时间不是在实现上而是在频繁修改单元测试代码上了。
作者回复: 说得有道理,不过,在接下来的几篇,我们先把关于测试的理念梳理顺了,知道问题出在哪,以后才好进行改进。
共 2 条评论3 - Better me2020-11-29从高内聚低耦合的设计角度来理解测试金字塔: 单元测试更符合高内聚低耦合,一般是单个方法 服务测试一般是多个方法的组合 UI测试一般是多个服务功能的组合 系统的耦合强度越来越大,对于问题的定位也越来越难2