在软件测试过程当中,大多数缺陷怎么定位都可以采用分层测试解决。
所谓的分层测试就是我们会根据一个case的覆盖范围将测试分成不同的种类。
一个测试用例覆盖范围最广的是系统测试,覆盖最窄的是单元测试。虽然在学术界对他们有非常清晰的定义,但是在实际的工作过程当中并没有明显的界限。从上到下可以分为系统测试,集成测试,组件测试,单元测试等等。
我们平时接触的比较多的可能就是系统测试,也就是我们常说的点点点功能。但是这种方式是不利于问题的定位的。
而越到后面因为一个测试覆盖的范围越小,所以更能精准的定位到问题的所在。
如何定位是前端问题还是后端问题?基本上介于集成测试和组件测试之间,我们可以把测试范围分成前端和后端。
对后端直接设计接口层面的测试用例,也就是我们常说的接口测试,而前端问题我们直接设计对应的UI测试用例。
从这个层面来说,首先可以对你的系统进行一轮接口测试,在接口测试过程当中出现的问题一般就是定义成后端的问题。
接下来,你可以选择进行整个系统测试,如果一个问题在接口当中没有发现,但是在系统测试中发现了,那么它很有可能就是一个前端出现的问题。
当然你也可以直接对系统进行UI端的界面测试,那这里面发现的问题基本上可以判断为前端问题。
从系统测试到集成测试,到组件测试再到单元测试这种从上到下的测试方法,越到下一层,测试的效率更高,成本更低,发现的问题也更精准,当然他也要求我们对业务进行更有效的拆分。
同时也要求我们直接隔离其他的环境,也就是我们常说的mock或者其他的testdouble手段,对我们测试的技术手段要求会更高。
这种测试方法被总结成了一个非常经典的模型,叫作测试金字塔,最早应该是有著名的软件效能专家马丁弗勒提出来的。
从这个经典的模型当中衍生出来了很多其他的模型,包括橄榄球模型以及倒金字塔模型等等,有兴趣的话呢,也可以去了解一下。
总之定位前端问题或者是还是后端问题,我们可以采用抓包或者是其他的接口测试手段先对接口进行接口分析。这个分析过程当中找出来的缺陷,那就是后端问题。如果在接口分析当中没有找出来的问题,大概率是前端问题。
如果定位问题需要比前端或者后端更加精确,那么我们就需要使用更底层的测试手段,包括组件测试以及单元测试。