如何设计接口的测试用例

这篇文章简单总结下我是如何设计接口测试用例的。

今天在帮同事review代码的时候,发现他的代码遗漏了一些场景的处理,就顺便跟他多聊了些为对这个话题的看法。

在这里假设一个接口设计如下:

1
UserInfoDTO listUserInfoByUserIds(UserInfoQueryParam param);

其中UserInfoQueryParam的定义如下:

1
2
3
4
5
public class UserInfoQueryParam {
//省略序列化ID
List<Long> userIds;
//...省略其他字段
}

边界值测试

这种方法,一般用于测试一个接口的健壮性;针对userIds这个属性,我会构建如下测试用例:

  1. userIds=null
  2. userIds=EmptyList
  3. userIds的size等于批量接口的限定值
  4. userIds的size大于批量接口的限定值
  5. userIds中的元素有null的情况
  6. userIds中的元素全部为null的情况
  7. userIds中的元素有0(或负数)的情况
  8. userIds中的元素全部为0(或负数)的情况

组合条件测试

这种方法,一般用于测试不同情况下的业务处理逻辑是否符合预期。在这个例子中,userIds可能有两种类型,但是我们这个接口需要支持这两种类型,因此测试用例设计如下:

  1. userIds中为纯粹的类型1的数据
  2. userIds中为纯粹的类型2的数据
  3. userIds中为类型1和类型2中的数据的混合情况

以上就是我在构建一个接口的测试用例时候思路,欢迎大家讨论。