在接口测试过程中,最关键的是对参数的各种情况进行测试。
随机测试是指随机选择一些参数值来测。
结对测试是指parewise算法生成较高“性价比”的组合情况来测。
随机测试存在的问题
随机,这两个字本身说明了不确定性,由于不确定,测试结果就存在风险。
有风险,测试覆盖率就无法保证。
合理设计用例
结对测试,最重要的就是,如何设置用于产生参数组合的参数值。
个人认为,还是得采用经典的用例设计方法,即等价类划分+边界值。
需要分析业务和程序,去判断当前参数的值是同一等价类,还是需要分成多个等价类。
对于同一等价类,可以随机参数值。
对于不同等价类,则都需要参与结对。
同时,参数值的边界,也需要参与结对。
对于参数有依赖的接口,要避免设计冗余用例。
如果接口B的参数由接口A提供,那么不能把每次接口A的响应结果数据,都传给接口B,来测试接口B。
这样会造成接口B的冗余用例。而应该根据接口B的参数的等价类划分+边界值来设计接口B的用例。
实践
公司某接口功能是传入模型参数给后台,计算返回结果。
随机测试
6个模型,参数五花八门。 每个模型随机5次不同参数值。 共调用接口30次。 全部测试通过。
结对测试
6个模型,参数五花八门。 根据等价类划分+边界值设计参数数据。 parewise生成不同参数值组合。 共调用接口467次。 发现9个bug。
结对测试覆盖率是随机测试的467/30≈15.6倍,多发现了9个隐藏bug!
此方法用于接口开发过程中的测试比较合适。
在回归阶段,如果不忙,也可以针对性测下。
但是上线后冒烟,需要考虑接口调用过多是否导致测试耗时较长,避免无意义的工作等待。