跳到主要内容

测试方法

[TOC]

测试方法

By:weimenghua
Date:2022.08.17
Description:测试方法

一、定位前后端问题

在测试的时候,有时候会遇到一些问题,如何进行快速的定位,判断是前端还是后端问题?

  1. 抓包
    按 F12,查看调试界面,或者用 whistle 或者 Fiddler 进行抓包。以按 F12为例,进入调试界面,选择 Network 界面,这里的 Headers 可以看到前端请求地址和请求参数,Respons 可以看到后端返回数据。
    举个例子,一个列表查询有三个状态:全部,成功,失败,筛选全部,但是只展示成功的数据。通过查看请求,前端传参是【全部】,并且后端返回了全部的数据,那基本上是前端的问题了。如果前端传参是【全部】,后端只返回成功的数据,那么基本上是后端的问题了。

  2. 查看后端日志
    当在前端页面操作时弹出异常,如果后端日志没有报错,则考虑是前端的问题;如果后端有日志报错,则考虑是后端的问题,通过查看日志找到报错的位置,如果是系统 A调用系统 B出现异常,则通过日志流水号找到系统 B的日志,再从 controller 层到 service 层进行分析,可以看下具体是哪行代码出错,结合 sql 日志和数据库数据进行分析。

  3. 查看数据库
    梳理各个模块对应的数据表,表字段是否符合要求,表设计是否合理,有没有索引,有没有唯一键,表与表之间如何联系,表数据量过大时是否考虑分库分表,新增或者修改字段,是否会影响存量数据。

二、埋点测试

埋点测试只是数据采集的一种术语,而数据采集是提供给运营工作人员去了解手机 app 对于某些模块、场景的用户使用情况,进行的一个触发埋点,将埋点采集到的数据到的数据进行上报的过程。采集数据只是起点,将数据进行分析、整理、汇总以及报表展示,最终得出用户对 app 普遍对使用行为,从而实现 app 面向用户的改良才是目的,为了产品更好符合用户需求体验才是终点。

三、灰度测试

  1. 蓝绿部署
    蓝绿色部署是一种通过运行两个相同的称为 BLUE 和 GREEN 的生产环境来减少停机时间和降低风险的技术。
    蓝绿部署,以颜色命名,简单的理解就是,线上有两套集群环境,在架构图中,一套标记成蓝色,称为蓝色集群 BLUE;一套标记为绿色,称为绿色集群 GREEN。通过将流量引入两个集群,完成系统升级切换。

  2. 金丝雀发布(灰度发布)
    金丝雀发布,与蓝绿部署不同的是,它不是非黑即白的部署方式,所以又称为灰度发布。它能够缓慢的将修改推广到一小部分用户,验证没有问题后,再推广到全部用户,以降低生产环境引入新功能带来的风险。

  3. AB 测试
    AB 测试和上面两种发布方式不是一个范围的概念,它是为了进行效果验证的手段,其他两种是为了实现线上平稳发布的手段,这里把他们放在一起说,是因为这三个概念很容易弄混。
    AB 测试是线上同时运行多个不同版本的服务,这些服务更多的是用户侧的体验不同,比如页面布局、按钮颜色,交互方式等,通常底层业务逻辑还是一样的,也就是通常说的换汤不换药。

  4. 滚动部署
    滚动部署(rolling deployment)是指从服务器集群中选择一个或多个服务单元,停止服务后执行版本更新,再重新将其投入使用。如此循环往复,直至在集群中所有的服务实例都更新到最新版本。它和蓝绿部署的方式相比,更加节省资源,而不需要准备两套一模一样的服务运行环境。因此,在同样业务量的情况下,这种部署方式所需服务器的数量会比蓝绿部署少一半。
    当然,少的资源投入可能会存在功能的局限性。滚动部署无法像蓝绿部署那样只要直接通过控制流量切换的负载均衡器的动态设置来实现动态的环境切换。滚动部署所采取的回滚方式只能是针对特定服务器从新版本回退到旧版本。

四、TDD 和BDD

TDD:测试驱动开发(Test-Driven Development)
BDD:行为驱动开发(Behavior Driven Development)