接口测试用例设计
展开全部
接口测试发现的典型问题:
(1)传入参数处理不当,导致程序crash;
(2)类型溢出,导致数据读出和写入不一致;
(3)因对象权限未进行校验,可以访问其他用户敏感信息;
(4)状态处理不当,导致逻辑出现错乱;
(5)逻辑校验不完善,可利用漏洞获取非正当利益等。
用例设计:
1:入参类型:
数值型 :
如果参数规定了值的范围,则需要考虑等价类取值范围内、取值范围外,取值的边界,如有需要,可能会遍历取值范围内的各个值。
类型的特殊值:-1,0
数据类型的边界值:int的最小值最大值;
特殊值处理不当导致程序异常退出;
类型边界溢出
取值范围外值未返回正确的错误信息等
字符串型:
字符串型的参数,主要考虑字符串的长度和内容:
特殊值:空字符;
边界值:String的最大长度;
字符串内容可考虑类型:数字,非数字;
特殊字符。
超长字符未进行处理,导致存储、显示等异常
数组或链表类型
参数类型为数组或链表时,用例可以考虑:
例如批量提交任务的接口submitTask(int[] taskID),参数用例设计考虑:
正常取值:1-5个权限,范围外:6个权限;
边界值:1-35的边界值,请求允许最大最小值;
特殊值:0个;
合法ID和不合法的;
重复的ID等。
可能存在的问题和风险:
0个item时程序异常退出;
重复的item处理时未去重导致结果异常等。
2:针对逻辑设计
约束条件分析
(1)数值限制:分数限制、金币限制、等级限制等等。
例如:兑换Q币活动要求积分>50才可参与。
(2)状态限制:登录状态等。
例如:同步用户信息需要先登录账号。
(3)关系限制:绑定的关系,好友关系等。
例如:帮家人防骗功能只能查询绑定家人的来电信息。
(4)权限限制:管理员等。
3: 针对输出结果
接口处理正确的结果可能只有一个,但是错误异常返回结果有很多情况很多值。如果知道返回结果有很多种,就可以针对不同结果设计用例。例如提交积分任务的时候我们通常能想到的是返回正确和错误,错误可能想到:无效任务,无效登录态,但是不一定能否完全覆盖所有错误码,而接口返回定义的返回码可以设计更多用例:
覆盖返回码也是用例设计的一种思路。
常见问题和风险:
(1)错误前端处理不足,导致前端异常;
(2)错误提示处理不当,导致用户看到晦涩的错误码;
(3)错误提示不当,导致用户不知道哪里出了问题,如何解决。
4:接口超时
( 1)未进行超时处理,导致整个流程阻塞
(2)超时后又收到接口返回,导致逻辑出现错乱
(1)传入参数处理不当,导致程序crash;
(2)类型溢出,导致数据读出和写入不一致;
(3)因对象权限未进行校验,可以访问其他用户敏感信息;
(4)状态处理不当,导致逻辑出现错乱;
(5)逻辑校验不完善,可利用漏洞获取非正当利益等。
用例设计:
1:入参类型:
数值型 :
如果参数规定了值的范围,则需要考虑等价类取值范围内、取值范围外,取值的边界,如有需要,可能会遍历取值范围内的各个值。
类型的特殊值:-1,0
数据类型的边界值:int的最小值最大值;
特殊值处理不当导致程序异常退出;
类型边界溢出
取值范围外值未返回正确的错误信息等
字符串型:
字符串型的参数,主要考虑字符串的长度和内容:
特殊值:空字符;
边界值:String的最大长度;
字符串内容可考虑类型:数字,非数字;
特殊字符。
超长字符未进行处理,导致存储、显示等异常
数组或链表类型
参数类型为数组或链表时,用例可以考虑:
例如批量提交任务的接口submitTask(int[] taskID),参数用例设计考虑:
正常取值:1-5个权限,范围外:6个权限;
边界值:1-35的边界值,请求允许最大最小值;
特殊值:0个;
合法ID和不合法的;
重复的ID等。
可能存在的问题和风险:
0个item时程序异常退出;
重复的item处理时未去重导致结果异常等。
2:针对逻辑设计
约束条件分析
(1)数值限制:分数限制、金币限制、等级限制等等。
例如:兑换Q币活动要求积分>50才可参与。
(2)状态限制:登录状态等。
例如:同步用户信息需要先登录账号。
(3)关系限制:绑定的关系,好友关系等。
例如:帮家人防骗功能只能查询绑定家人的来电信息。
(4)权限限制:管理员等。
3: 针对输出结果
接口处理正确的结果可能只有一个,但是错误异常返回结果有很多情况很多值。如果知道返回结果有很多种,就可以针对不同结果设计用例。例如提交积分任务的时候我们通常能想到的是返回正确和错误,错误可能想到:无效任务,无效登录态,但是不一定能否完全覆盖所有错误码,而接口返回定义的返回码可以设计更多用例:
覆盖返回码也是用例设计的一种思路。
常见问题和风险:
(1)错误前端处理不足,导致前端异常;
(2)错误提示处理不当,导致用户看到晦涩的错误码;
(3)错误提示不当,导致用户不知道哪里出了问题,如何解决。
4:接口超时
( 1)未进行超时处理,导致整个流程阻塞
(2)超时后又收到接口返回,导致逻辑出现错乱
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询