什么是异常测试?

异常测试就是检测被测对象对异常情况(异常输入、异常操作、异常场景)的处理(能否正常处理,而不是出现错误)

为什么要做异常测试?

出现异常后,希望系统的表现符合我们的预期。异常测试可以保障系统的可靠性和稳定性。
如果不做异常测试会发生什么:

  1. 业务操作异常
  2. 服务崩溃
    。。。

异常场景分类

业务操作异常(幂等、并发、回退、取消)

指基于用户使用场景设计的异常,比如重复购买、重复支付(幂等);大批量用户同时并发购买;超时未支付;支付失败

客户端(前端)异常(异常中断、第三方依赖异常、权限、缓存、页面)

操作过程中前后台切换,被其他应用打断;跳转支付宝失败;本地缓存被清;地理位置未授权;页面连续连接、快速滑动;不同屏幕尺寸、字体;客户端内存不足;接口返回异常(空数据等)

接口异常(异常输入、接口超时、接口越权、接口异常返回)

用a的用户信息操作b的订单(越权);接口返回空值;返回字段缺失等

依赖服务异常(第三方异常)

系统资源异常(系统组件如数据库、中间件异常、cpu、内存)

数据库超时;消息堆积;资源占用过大;故障

网络异常(无网、弱网、网络切换、网络未授权)

安全漏洞(ddos、http访问、敏感信息收集、敏感权限获取、隐私信息返回、非授权漏洞风险、越权漏洞风险、sql注入)

dos攻击;使用http访问;敏感权限、接口是否返回隐私信息;未登陆账号访问订单;

异常场景是测试中比较难考虑到的,特别是黑盒测试。所以在测试过程中要不断完善我们的异常场景用例集,尽可能的实现异常测试的工具化甚至自动化。很多隐藏较深的异常只能在线上发现,所以我们需要对线上问题进行分析并补充异常用例。