前后端分离测试

 

为什么要做前后端分离测试

  • 无法清晰知道开发的实现逻辑,以需求规格为标准开展测试,测试不充分,受限于需求规格的高度(经常有一句话需求)

  • 开发偷偷上代码或者修改后给出的影响面不足导致测试范围不足

  • 前后端联调时,测试无法开始功能测试

  • 前端修改逻辑,需要造数据去验收,有可能造数据的时间远远大于测试时间

  • 前端页面一些异常情况功能测试难覆盖,如:接口超时,504,接口响应某些字段缺失

  • ...

后端测试/白盒测试

后端测试/白盒测试可以实现精准测试,一句话概括就是:测试用例和代码之间的追溯

提高效率,提高覆盖度,明确问题归属方。测试场景充分

提效:

  • 测试时间前移:在联调期间介入后端测试,早发现早解决

  • 发现后端bug可以定位原因,减少开发修改bug的时间(一个Bug开发修改很多次都没改好,因为开发不知道具体什么原因导致的)

  • 知道代码改动点和影响范围,减少解决bug后非必要的功能回归,精准回归

提高覆盖度:

  • 后端可以覆盖到设计中不详尽的部分,如 各场景下的sql、sql是否使用索引

  • 确认所有代码都是测试过的

其他场景测试更充分:

  • 性能问题(SQL索引,深分页问题)

  • 定时任务

  • MQ消费

  • 多线程问题

  • 锁问题

  • ...

白盒测试和单元测试

单元测试特点

  • 开发代码与需求不符或遗漏了功能,单元测试的时候就不会去设计对应的测试用例,这样也就会造成测试盲区。

  • 紧密耦合的代码难以隔离。

  • 桩代码、mock代码量大,占用开发时间。

  • 代码量大,代码本身的可测试性较差,通常代码的可测试性和代码规模成正比。

  • 代码覆盖率越往后越难提高。

白盒测试与单元测试的区别

  • 白盒测试由测试执行,单元测试由开发执行,执行人不同。

  • 开发做单元测试是针对代码的测试,测试做白盒测试是做需求+代码的测试。

  • 如果开发的代码与需求不符,或者遗漏了某些功能,开发就不会去设计对应的测试用例,单元测试就不能发现此类问题,造成测试盲区。而测试主导的白盒测试可以避免此问题。

前端测试

熟悉业务逻辑后,

  • 通过抓包工具mock接口返回值测试前端页面的业务逻辑,

  • 通过抓包工具Mock接口的异常情况,超时。504等

抓包工具如:charles的breakpoint ,map local,map remote功能

 

怎么做白盒测试

静态测试

简单的代码,可以直接通过静态阅读代码了解实现逻辑。

动态测试

本地跑一下代码测试,虽然代码可能看着没问题,但是谁也保不准会看漏掉,代码只有跑一下才知道有没有问题

开发基础知识准备

1、charles熟练使用

2、JAVA基础

3、springboot、springcloud、Mybatis等开发基础

4、mq了解

5、postman

6、redis

7、git

8、maven

难点

1、在联调期间介入后端测试,通过接口串联业务流程,需要熟悉需求的业务流程,

测试代码实现是否满足需求,所以在进行白盒测试前,我们依然需要写功能用例,然后在进行白盒测试时带着我们的功能用例去进行测试,同时考虑代码实现合理性和功能问题;切记不要太沉入到开发的代码中而忘记我们本来的功能用例

2、后端业务代码量大,通读代码需要时间

3、敏捷迭代,前后端分离项目适用

4、需要通读后端代码,有一定学习成本,上手慢

 

 

posted @ 2024-10-15 19:21  hjy1995  阅读(6)  评论(0编辑  收藏  举报