1. 模块做异常测试考虑点

作者: Shirley_奋进中的虾米 | 来源:发表于2017-03-18 11:51 被阅读132次

###关于异常测试###

异常测试就是人为地构造异常场景,观察服务在异常场景下的表现是否符合预期。

常见异常测试类型有接口入参异常、模块异常、底层依赖异常、资源异常(cpu,内存,带宽,io,端口)、压力异常(比如流量突增情况)

###对于单模块做异常测试###

1. 重要接口模拟异常,前提是熟悉接口协议(pb协议?macpack?)

    1)接口字段是否有required和optional之分,重点是required字段

          a)required字段缺失,接口如何表现?

          b)注意字段数据类型,修改值大小(结合边界值考虑)或替换数据类型或字段过长

          c)optional字段缺失,接口如何表现?

     2)修改接口返回值(比如包含特殊字符或缺少某些字段或返回数据为空),看上游接口表现

     3)接口之间是否有超时,超时后是否有重查机制

     4)对于异常捕捉是否优雅处理,不要时不时地吐个core

     5)发送数据大包?

2. 模块启动或运行过程中加载本地文件需求(不一定指配置文件)

    1)文件不存在,是否优雅捕捉异常并报相关warning日志或直接启动失败

    2)文件内容为空,模块加载&解析过程是否正常运行

    3)对文件破坏,比如使内容乱码或格式异常(比如不是json格式?json格式多字段或少字段?),模块是否能正常解析

    4)文件内容特别大,超出模块可用buffer

    5)文件是在启动时加载的,如果在模块运行过程中把该文件删了,会有什么表现?

3. 模块与模块之间通信,其实也是接口通信,可参考第1点

    1)连接模式

         a)长连接或短连接,连接池大小设计,主要考虑若一个模块流量突增时对后端模块的影响;

         b)是否有主动关闭连接,这个主要是为了不出现泄露的考虑

    2)接口不兼容

    3)接口字段内容非法

    4)是否有心跳探活机制,多久发送心跳包,若发现没有收到心跳包会怎么表现

    5)模拟网络抖动,对于超时如何处理,是否有重查机制,重查次数

    6)将一个模块所在的机器带宽打满,观察是否影响跟其他模块的通信

###机器资源做异常测试###

1. 模拟CPU受限

    1)写个程序循环占用机器cpu,观察模块表现,最直观表现就是处理请求的时延托大了

2. 模拟内存受限

   1)写个程序不停malloc机器的free内存来构造场景

3.  模拟带宽异常

   1)模拟带宽打满

   2)模拟网络抖动(参考iptables或tc工具)

4. 模拟io异常

    1)磁盘异常,比如将挂载的磁盘摘了

    2)磁盘满了,是否影响落日志和数据

    3)磁盘坏了

    4)模拟io打满,ioutil=100%

5. 端口异常

    1)从端口入/出数据包,加延时模拟端口慢(iptables或tc工具)

    2)限制从端口入/出数据包大小(tc工具)

    3)模拟丢包(tc工具)

相关文章

  • 1. 模块做异常测试考虑点

    ###关于异常测试### 异常测试就是人为地构造异常场景,观察服务在异常场景下的表现是否符合预期。 常见异常测试类...

  • 软件测试-面试总结

    1.测试过程中需要考虑哪些异常情况下的测试(原问题是如何登录界面的异常测试) 测试时需要考虑的通用异常有: 网络环...

  • 上线前的疯狂测试

    每完一个功能模块后,少不了各种各样的测试。开发经验越丰富,越会提前考虑各种异常情况。测试时,即使出现异常情况,也能...

  • 接口测试

    1.在线http测试:接口在线测试 模块接口测试和web接口测试: 模块接口测试是单元测试的基础。它主要测试模块的...

  • 异常测试考虑测试点

    一、业务需求 1、特殊业务流程测试 测试软件不按照正规的流程,而是按照可能的但非正规的业务流程运行,是否会生成错误...

  • 小工具之崩溃模拟工具

    本文章转载于搜狗测试 在功能测试的过程中,我们可能会有一类这样的测试需求:测试被测软件的异常处理模块,确保异常处理...

  • 基于Moya + RxSwift + ReactorKit 框架

    在这个架构下我们主要讨论两个模块的单元测试,一个是网络模块,一个Reactor模块。 1.网络层单元测试 做网络请...

  • day10-异常处理和pygame显示

    一、异常处理 1.模块 导入模块(自定义模块,第三方模块)import 模块 ---->模块.内容from 模块 ...

  • 2.爬虫 urlib库讲解 异常处理、URL解析、分析Robot

    1.异常处理 URLError类来自urllib库的error模块,它继承自OSError类,是error异常模块...

  • log.error()输出的异常栈没有“关键”信息解决方案

    1. 测试代码 测试代码: 2. 直接抛出异常: 异常信息: lombok的@Data注解用在异常子类,导致堆栈没...

网友评论

    本文标题:1. 模块做异常测试考虑点

    本文链接:https://www.haomeiwen.com/subject/dwjunttx.html