美文网首页《重构》读书笔记
《重构》学习笔记(03)-- 构建测试体系

《重构》学习笔记(03)-- 构建测试体系

作者: 若隐爱读书 | 来源:发表于2019-05-26 13:14 被阅读0次

如果你想进行重构,首先的前提就是拥有一个可靠的测试环境。就算是自动进行重构的工具,也需要测试来保证代码的完整性与可靠性。

为什么需要单元测试?

  • 保证质量:随着迭代的过程,开发人员很难记清所有的功能点。功能点的新增和删除在代码改变后,进行回归测试时,依靠手工测试很容易出错遗漏。
  • 自动化:测试用例有一次编写,无限使用的特点。相对于人工测试,单元测试几乎无需交接,并在QA进行测试时可以反复使用。
  • 特性文档:单元测试可以作为描述和记录代码所实现的所有需求,有时候可以作为文档来使用,了解一个项目可以通过阅读测试用例比看需求文档更清晰。
  • 驱动开发,指导设计:代码被测试的前提是代码本身的可测试性,那么要保证代码的可测试性,就需要在开发中注意API的设计,TDD将测试前移就是起到这么一个作用。

怎样进行单元测试?

书中介绍的JUnit是针对JAVA开发的一款简洁高效的测试框架,但笔者目前从事前端开发工作,因此本段不做详细介绍。从事JQuery开发的同学可以使用QUnit进行单元测试,参考QUnit入门教程

要做什么单元测试?

单元测试任务包括:1 模块[接口测试];2 模块局部数据结构测试;3 模块边界条件测试;4 模块中所有独立执行通路测试;5 模块的各条错误处理通路测试。

正常输入。例如字符串的Trim函数,功能是将字符串前后的空格去除,那么正常的输入可以有四类:前面有空格;后面有空格;前后均有空格;前后均无空格。
边界输入。上例中空字符串可以看作是边界输入。再如一个表示年龄的参数,它的有效范围是0-100,那么边界输入有两个:0和100。
非法输入。非法输入是正常取值范围以外的数据,或使代码不能完成正常功能的输入,如上例中表示年龄的参数,小于0或大于100都是非法输入,再如一个进行文件操作的函数,非法输入有这么几类:文件不存在;目录不存在;文件正在被其他程序打开;权限错误。

但是“任何测试都不能证明一个程序没有bug”。因此单元测试不必做到大而全,应该集中在可能出错的地方。总之,引入测试的目的就是"花合理的时间抓出大多数bug",而不是"穷尽一生抓出所有的bug"。

相关文章

  • 《重构》学习笔记(03)-- 构建测试体系

    如果你想进行重构,首先的前提就是拥有一个可靠的测试环境。就算是自动进行重构的工具,也需要测试来保证代码的完整性与可...

  • 共享服务体系搭建原则

    2020-03-03学习笔记 ▍P2共享服务体系搭建 共享服务中心建设原则 中台战略成功落地的关键:如何构建稳定可...

  • 重构

    重构要结合测试, 单元测试以及集成测试。 重构 依赖于测试: 我们是否引入了bug。 构建测试机制: 这个是很重要...

  • 统整课程听后感

    未来教育首先是课程的重构,其次才是学习环境、学习技术、学习方法的创新,为学习者构建统整式项目课程体系,让学生进行开...

  • 知识管理 | 印象笔记体系构建v4.0

    一、序言 本文是个人在探索笔记体系构建过程中的心路历程,包含对已有笔记体系的反思、新笔记体系的思考、一些构建技巧 ...

  • 摩拜&OFO

    1.逐步重构构建的社会信任体系。如果说支付宝的芝麻信用构建的是线上的信用体系。那么共享单车就再在完善线下的社会信任...

  • 用Onenote构建自己的笔记体系

    用Onenote构建自己的笔记体系 (一)构建笔记体系极为重要 不管是在职场,还是在读书,onenote都是一个十...

  • 如何构建自己的学习体系?

    为什么要构建学习体系?回答怎么构建学习体系之前,应该回答什么是学习体系?学习体系是一个骨架,像建房子一样,构...

  • 【日更】阅读笔记(68)规划个人启發学习体系的内容探讨

    【日更】阅读笔记(68)规划个人启發学习体系的内容探讨 在构建一套自我启發的学习体系上,设计逻辑主要有三种方向,分...

  • 函数相关的重构方法

    构筑测试体系 可靠的测试环境是重构的前提,因为debug在我们的开发中占据了大多数时间。 自动化测试对于增量开发非...

网友评论

    本文标题:《重构》学习笔记(03)-- 构建测试体系

    本文链接:https://www.haomeiwen.com/subject/ofpxtctx.html