为什么你测试上线的项目还是有一堆BUG?

989 阅读2分钟

当你听到上线之后的项目出BUG的时候,我想你的心情一定是这样的

image

测试应该怎么测?

作为一个不专业的测试,我也一直在思考一个问题,测试应该测什么?大佬Martin Fowler 有一篇非常著名的一篇文章《Test Pyramid》(测试金字塔)中,非常详细的描述了测试金字塔的结构。

image
马丁大佬把测试分为了三个层级,从下往上分别是单元测试,服务测试,UI测试。在金字塔从下往上的测试,越靠近底层,测试越稳定,测试效率越高,修改和维护的成本也越低。根据我们项目的情况,我来说一下我的理解。

单元测试

单元测试是位于测试金字塔的最底层,理论上我们应该投入最多的精力进行测试。单元测试通常是由后端开发的小伙伴完成的,我们在开发过程中基本上不可能有时间对开发的代码做全面的单元测试,但是我们还是有必要对于新创建的表中一些DAO层的方法,一些重要的业务逻辑,复杂的业务逻辑都要写单元测试。

接口测试

接口测试虽然位于测试金字塔的中间层,但依然相对稳定并且测试效率较高。实际上后端开发和测试小伙伴都要做接口测试,对于后端开发的小伙伴来说接口测试是对自己交付代码的“最终”测试。对于测试小伙伴来说,接口测试是能够接触到最底层的测试,也是测试效率最高的一层。

UI测试

UI测试是位于测试金字塔尖的测试,也是用户模拟度最高的测试。这层测试通常是由前端开发和测试小伙伴完成的,同时也是测试成本最高和测试效率最低的测试。在前端页面变化很小甚至不变的情况下,HTML中的属性,页面的样式代码、前端代码逻辑等等都有可能发生变化。我们把它放在最上层,做是一定要做的,但是我们要减轻这一层的比重。

其他互联网公司都是怎么测试的?

在互联网公司中测试通常采用“菱形模型”的测试方法,什么叫“菱形模型”呢?其实就是一种轻UI,重接口,部分覆盖单元测试的一种方式。

测试菱形模型.PNG