这篇文章简单总结下我是如何设计接口测试用例的。
今天在帮同事review代码的时候,发现他的代码遗漏了一些场景的处理,就顺便跟他多聊了些为对这个话题的看法。
在这里假设一个接口设计如下:
UserInfoDTO listUserInfoByUserIds(UserInfoQueryParam param);
其中UserInfoQueryParam的定义如下:
public class UserInfoQueryParam {
//省略序列化ID
List<Long> userIds;
//...省略其他字段
}
边界值测试
这种方法,一般用于测试一个接口的健壮性;针对userIds这个属性,我会构建如下测试用例:
- userIds=null
- userIds=EmptyList
- userIds的size等于批量接口的限定值
- userIds的size大于批量接口的限定值
- userIds中的元素有null的情况
- userIds中的元素全部为null的情况
- userIds中的元素有0(或负数)的情况
- userIds中的元素全部为0(或负数)的情况
组合条件测试
这种方法,一般用于测试不同情况下的业务处理逻辑是否符合预期。在这个例子中,userIds可能有两种类型,但是我们这个接口需要支持这两种类型,因此测试用例设计如下:
- userIds中为纯粹的类型1的数据
- userIds中为纯粹的类型2的数据
- userIds中为类型1和类型2中的数据的混合情况
以上就是我在构建一个接口的测试用例时候思路,欢迎大家讨论。
本号专注于后端技术、JVM问题排查和优化、Java面试题、个人成长和自我管理等主题,为读者提供一线开发者的工作和成长经验,期待你能在这里有所收获。