程序员的测试课
郑晔
前火币网首席架构师,前Thoughtworks首席咨询师
新⼈⾸单¥59.9
1103 人已学习
课程目录
已更新 17 讲 / 共 20 讲
0/2登录后,你可以任选2讲全文学习。
开篇词 (1讲)
开篇词 | 为什么写测试是程序员的本职工作?
基础篇 (11讲)
01 | 实战:实现一个 ToDo 的应用(上)
02 | 实战:实现一个 ToDo 的应用(下)
03 | 程序员的测试与测试人员的测试有什么不同?
04 | 自动化测试:为什么程序员做测试其实是有优势的?
05 | 一个好的自动化测试长什么样?
06 | 测试不好做,为什么会和设计有关系?
07 | Mock 框架:怎么让测试变得可控?
08 | 单元测试应该怎么写?
09 | 测试覆盖率:如何找出没有测试到的代码?
10 | 为什么 100% 的测试覆盖率是可以做到的?
11 | 集成测试:单元测试可以解决所有问题吗?
应用篇 (5讲)
12 | 实战:将 ToDo 应用扩展为一个 REST 服务
13 | 在 Spring 项目中如何进行单元测试?
14 | 在 Spring 项目如何进行集成测试?
15 | 测试应该怎么配比?
16 | 怎么在遗留系统上写测试?
程序员的测试课
15
15
1.0x
00:00/00:00
登录|注册

16 | 怎么在遗留系统上写测试?

你好,我是郑晔!
迄今为止,我们讨论的话题主要是围绕着如何在一个新项目上写测试。但在真实世界中,很多人更有可能面对的是一个问题重重的遗留系统。相比于新项目,在一个遗留系统上,无论是写代码还是写测试,都是一件有难度的事。
在讨论如何在遗留系统上写测试前,我们首先要弄清楚一件事:什么样的系统算是遗留系统。在各种遗留系统的定义中,Michael Feathers 在《修改代码的艺术》(Working Effectively with Legacy Code)中给出的定义让我印象最为深刻——遗留系统就是没有测试的系统。
根据这个定义你会发现,即便是新写出来的系统,因为没有测试,它就是遗留系统。由此可见测试同遗留系统之间关系之密切。想要让一个遗留系统转变成为一个正常的系统,关键点就是写测试。

给遗留系统写测试

众所周知,给遗留系统写测试是一件很困难的事情。但你有没有想过,为什么给遗留系统写测试很困难呢?
如果代码都写得设计合理、结构清晰,即便是补测试也困难不到哪去。但大部分情况下,我们面对的遗留系统都是代码冗长、耦合紧密。你会不会一想到给遗留系统写测试就头皮发麻?因为实在是太麻烦了。由此我们知道,给遗留系统写测试,难点不在于测试,而在于它的代码。
确认放弃笔记?
放弃后所记笔记将不保留。
新功能上线,你的历史笔记已初始化为私密笔记,是否一键批量公开?
批量公开的笔记不会为你同步至部落
公开
同步至部落
取消
完成
0/1000字
划线
笔记
复制
该试读文章来自付费专栏《程序员的测试课》,如需阅读全部文章,
请订阅文章所属专栏新⼈⾸单¥59.9
立即订阅
登录 后留言

精选留言(1)

  • 闻人
    要让项目易于测试,写代码要注重隔离,实现与接口隔离,业务与外部组件隔离 #收纳盒 #极客时间

    作者回复: 其实就是做好设计

    2021-09-08
收起评论
1
返回
顶部