构筑测试体系

最近在读一本书《重构:改善既有代码的设计》,书中第4章讲的是:构筑测试体系。

开题谈到“如果你想进行重构,首要前提就是拥有一个可靠的测试环境。”

细细想来,作为一个软件工程师,到目前为止还没写过测试用例,更别提单元测试和功能测试了。

这是我的负债,技术人员的债务:技术债务,出来混,债必须是得还的。

在读完这章后,我开始学习关于Android开发中的编写测试相关的知识,并着手翻译Android Test的官方文档。计划将这些文档,连同相关的demo,一并共享出来。

对待自己犯的错误以及自己的欠缺,我一贯的做法:

  1. 承认它
  2. 寻找弥补方案,进行补救;
  3. 记录在案,分享出来:方便以后查阅同时可以帮助别人。

下面是我在读第四章的时候,自认为最有力量的文字,简称,金玉良言:

  • 编写优良的测试程序,可以极大提高我的编程速度。

  • 我们常常花费大量的时间来寻找错误,修复错误往往是比较快的,然而,寻找错误却是一场恶梦。

  • 类应该包含他们自己的测试代码:每个类都应该有一个测试函数,并以它来测试自己这个类。

  • 自我测试:确保所有测试都可以完全自动化,让他们检查自己的测试结果。

  • 构筑我的类能够自我测试,并频繁地运行他们,可以让他们拥有强大的侦错能力。

  • 不要等待每次增量结束,只要写好一点功能,就立即添加测试。

  • 一套测试就是一个强大的bug侦测器,能够大大缩减查找bug所需要的时间。

  • JUnit测试框架:除了捕捉失败(failures ,也就是断言结果为false),JUnit还可以捕捉错误(errors,意料外的异常)。区分失败和错误是很有用的,因为他们的出现形式不同,排除的过程也不同。

  • 单元测试和功能测试的差异:单元测试的目的是为了提高程序员的生产率。它是高度局部化的东西,每个测试类都隶属于单一包。它能够测试其它包的接口,除此之外她将假设其它包一切正常。功能测试:用来保证软件能够正常运作。它们从客户的角度保障质量,并不关心程序员的生产力。

  • 测试的要诀是:测试你最担心出错的部分。这样你就能从测试工作中得到最大利益。

  • 考虑可能出错额边界调节,把测试火力集中在那儿。

  • “寻找边界条件”:也包括寻找特殊的,可能导致测试失败的情况。考虑所有的可能的边界条件。

  • 我积极思考如何破坏代码,这种思维能够提高生产力——它纵容了我心智中比较促狭的那一部分。

  • 测试时,别忘记检查预期的错误是否如期出现。

  • 测试可以提高编程速度。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值