一切从测试开始--《测试驱动开发》读后感

这是我第二次读《测试驱动开发》这本书,第一次读的时候,我刚刚从TWU回来,书里有着太多我刚刚学到的东西,我看完了之后很神奇的,没有对TDD有更深的感悟,反而对JAVA的继承有了一些新的理解。由于十一之前出了一段时间的bug,凯峰老师推荐我再去读一读这本书,读完之后,对TDD有了一些感悟。

首先先简单的介绍一下这本书中主要的概念:测试驱动开发。

测试驱动开发

这里的测试这个概念主要是指自动化测试中的单元测试。单元测试的意义在于,它可以快速的运行,使开发可以快速的获得反馈。而且单元测试越多,覆盖的功能越全,可以极大的增强开发对于代码的信心。测试驱动开发是以测试为优先,先进行测试代码的编写,以通过测试为目的进行开发。

测试驱动开发这件事,在我接触这件事之前,是完全无法想象的。在我学编程的时候,我从来没有想过写测试,编写代码更多的时候是一件一气呵成的事,但是之后手动测试的时候层出不穷的bug、反复的调试是一件极其痛苦的事情。花一晚上写代码,但是花两天的调试简直是常事。

在我接触到测试驱动开发了之后,很多时候也是补测试,就是倒过来的DDT(Development Driven Test)。这是一件很奇怪的事,在TWU的时候,大家学习TDD,将DDT当作一个笑话讲出来,但是回到了工作中,DDT确是常态。有的时候我甚至是恐惧写测试。

《测试驱动开发》这本书里很常见的一句话是,测试可以增强你的信心。在我没接触过自动化测试甚至是接触了一段时间内,我都不知道测试的意义是什么,只是大家说要这样做,我就这样做。但是有一天,我参加一个比赛,碍于时间,我没有写测试,这让我想起了曾经被调试支配的恐惧。那个时候我无比的怀念每天陪伴我的这些测试。

单就测试而不是驱动开发来说,就是让重构变成一件简单的事。每当我做了一点改变的时候,我很恐惧引入bug,所以我跑了一遍测试,测试完好地通过了,我就会稍微安心一些的进行接下来的工作。所以那些没有被测试覆盖的功能让我恐惧,所以每当我不想写测试时,回想一下那些反反复复的调试,我会觉得还是写测试让我更加舒服。

说回测试驱动开发,我有一个很神奇的毛病,当我看一本书的时候,这里边的概念会在一定的时间的深深地影响到我。所以在我看《测试驱动开发》的这段日子,我迎来了一个新功能的代码,新功能不复杂,复杂的是需要与之前的代码进行集成,而且之前的代码还很多,有点乱。我脑子中有一点想法,但是又不知道如何入手。
所以我理所当然的想到了先写一个简单的测试。

我要做的新功能是这样的,我需要调用一个api,这个api会返回给我一系列的response,我根据这些response中的某一个字段来进行状态判断并且存到数据库中。所以对于我来说,最简单的场景就是,我调用api失败了,我没有得到期望的response,我应该存一个有问题的状态进数据库。我只需要添加一小点代码,这个测试就顺利的通过了。这之后我写了一个最常见的happy path的测试场景:我成功的获取了response,并且response的值都是我期待的值,我应该存储一个好的状态进入数据库。根据这个测试,我加入了一定的逻辑进去。这之后我又列举了各种bad path作为测试场景,这些场景驱动我完善了我的代码。代码完成之后的使用真实数据的手动测试也非常的顺利,时间在我看来花费的比想象的要少,而且完成后没有很烧脑很累的感觉。

在我完成这个之后,再回过头来看TDD,才开始明白TDD对于一个开发来说它的魅力何在,我也对以通过测试为目的进行开发有了一点新的理解。对于我来说,一个功能有各种场景,一开始就想全想好是一个很烧脑的过程,在写好代码之后回忆代码都实现了哪些场景,然后编写单元测试也很累,而且还可能会漏掉某些场景。但是先写好测试场景,是一个很好的让我梳理应用场景的过程,并且可以很好的引导我的思维。每添加一个测试,我要做的就只是做一点改变,然后让这个测试通过即可,每次我只需要关注很小的一部分就够了。

让一切从测试开始,这是一个很好的实践。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,362评论 5 477
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,330评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,247评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,560评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,580评论 5 365
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,569评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,929评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,587评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,840评论 1 297
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,596评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,678评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,366评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,945评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,929评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,165评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 43,271评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,403评论 2 342

推荐阅读更多精彩内容