单元测试与集成测试
一、题外
现在AI形式愈盛,对程序员来说,要找工作只会越来越难,本人现在入职一家公司,已经要求是一个全栈了(前端+后端+测试)
二、概述
单元测试和集成测试不过都是测试的一种,其目的是将整个测试流程,自底向上地拆分开。
从一个小的,不可拆分的模块开始测试,在测试完毕之后,能够保证这个模块不会出错;再把多个小的模块组合在一起,一起测试,保证这些模块的组合不会出错;
前者就是单元测试,而后者就是集成测试。
三、单元测试
对于单元测试来讲,每个单元都需要保证是个不可拆分的模块。
如果测试的对象,是一个前端+后端的系统,那么我们的单元测试对象就应该是前端中的某个模块,或者后端中的某个模块。
单元测试中:
-
前端需要测试的可能是某个组件,比如:这个输入框是否做了输入范围的限制;这个按钮点击后的是否会弹出弹窗;提交表单时,是否会成功组装数据等等。
-
后端需要测试的则会是某个服务,比如:将参数按照要求的格式给到service层的函数,是否会运行成功;或是对参数校验,抛出异常。
不管是在前端还是后端,在单元测试的过程中,不应该出现任何调用相关的情况,如果代码中依赖其他的组件,可以通过模拟数据的方式进行替代,这也是为什么测试的时候,通常需要新开一个测试分支。
四、集成测试
在单元测试结束之后,我们便能够保证每个模块都能单独运行成功,但是这并不能保证整个系统就能衔接顺畅,所以,接下来需要进行集成测试。
1. 前端
对于前端来讲,页面之间的逻辑跳转,以及不同组件之间的数据传递都属于这一部分。
举个例子:
A页面 -> B页面 -> A页面
(点击跳转B页面) (点击返回)
这时,我们需要关注的是,页面是否能够成功跳转,如果有数据传递,传递的数据有没有生效
2. 后端
对于后端来讲,整个测试的脉络会非常清晰
比如,参数从Controller层一直到Repository层,能否传递成功,是否会出现数据映射的错误
又或者,使用Client的时候,是否会出现数据格式转换的问题
3. 前后端联调
在分别测试完毕前端和后端之后,便需要前后端联合测试,查看数据在前后端之间流通时,是否会出现问题
即时到了这一步,也应该遵循自底向上的原则,从小的模块开始测试,然后测试拥有模块间依赖的组合
五、文档
不管是单元测试还是集成测试,都应该书写对应的文档,以记录自己哪些是需要测试的,哪些是测试过程中发生错误的
按照自底向上的逻辑,可以把整个测试流程变成很多层
在测试的过程中也应该按照:书写该层文档 -> 测试该层 -> 出现问题记录在文档中 -> 修改bug -> 修改文档
尽量在测试的过程中,不要修改bug,而是应该在测试完毕之后,集中修改。
这样可以有效防止在前一个bug修改完毕之后,发现后面因为自己的修改,出现了更大的问题。

浙公网安备 33010602011771号