什么是异常测试?
异常测试就是检测被测对象对异常情况(异常输入、异常操作、异常场景)的处理(能否正常处理,而不是出现错误)
为什么要做异常测试?
出现异常后,希望系统的表现符合我们的预期。异常测试可以保障系统的可靠性和稳定性。
如果不做异常测试会发生什么:
- 业务操作异常
- 服务崩溃
。。。
异常场景分类
业务操作异常(幂等、并发、回退、取消)
指基于用户使用场景设计的异常,比如重复购买、重复支付(幂等);大批量用户同时并发购买;超时未支付;支付失败
客户端(前端)异常(异常中断、第三方依赖异常、权限、缓存、页面)
操作过程中前后台切换,被其他应用打断;跳转支付宝失败;本地缓存被清;地理位置未授权;页面连续连接、快速滑动;不同屏幕尺寸、字体;客户端内存不足;接口返回异常(空数据等)
接口异常(异常输入、接口超时、接口越权、接口异常返回)
用a的用户信息操作b的订单(越权);接口返回空值;返回字段缺失等
依赖服务异常(第三方异常)
系统资源异常(系统组件如数据库、中间件异常、cpu、内存)
数据库超时;消息堆积;资源占用过大;故障
网络异常(无网、弱网、网络切换、网络未授权)
安全漏洞(ddos、http访问、敏感信息收集、敏感权限获取、隐私信息返回、非授权漏洞风险、越权漏洞风险、sql注入)
dos攻击;使用http访问;敏感权限、接口是否返回隐私信息;未登陆账号访问订单;
异常场景是测试中比较难考虑到的,特别是黑盒测试。所以在测试过程中要不断完善我们的异常场景用例集,尽可能的实现异常测试的工具化甚至自动化。很多隐藏较深的异常只能在线上发现,所以我们需要对线上问题进行分析并补充异常用例。