测评样例:单接口
公开教程 · 无需登录

测评样例:单接口

一份接口验收表最难的不是列出测评点,而是先说清「什么算缺陷」。这一页给出判定口径:先确定本系统用哪一套信号,再用统一的词下结论。样例取自一份真实项目的单接口验收表,为教学做了删减,其中与具体项目绑定的阈值已换成示例值。

1这一页管什么

管判定依据,不管测评点清单。

  1. 管判定的依据与用词。先确定本系统用哪套信号,再规定「被当成成功」「被放行」「被误拒」「未处理故障」各自的含义。
  2. 不交由这一页。具体的测评点清单在后两页;用例怎么组织、放在哪里,写在测试规范页。
  3. 落法。口径写进测试规范与评审表。它是评审时共同的语言,不是某一个人的经验。
对应的课程知识点:软件测试中的故障(fault)与失效(failure)之分、错误猜测法与判定覆盖的差别、评审结论的可复现性。判定口径要解决的是同一个结果两个人判出两种结论——没有它,测试通过率说明不了任何问题。

2先确定用哪套信号

以被测系统为单位确定,测试之前写明它属于哪一种。

系统形态长什么样怎么判
已区分响应体里有独立于 HTTP 状态码的错误码,两者各走各的。典型情况是 HTTP 多为 200,成败与错误类别看响应体里的错误码。成败与错误类别只看错误码,加上数据有没有变化、有没有返回不该看的数据。不套用 HTTP 协议惯例——不要求「失败必须 4xx」「未登录必须 401」
未区分响应体里没有错误码,或者体里的 code / status 始终等于 HTTP 状态码,只是把它抄一遍。按接口文档写明的 HTTP 状态码判;文档没写这个场景时,才用下一节的兜底表
两处例外:已区分的系统里,网关或认证中间件直接拦截的响应(如 405、415、413,以及没有响应体的 204)按「未区分」处理;文档没写这个场景的错误码时,不套惯例也不自己编一个,按底线断言——错误码不是成功码、数据未变、没有越权数据,满足即通过,具体错误码另记待确认。

3四个判定词

这四个词写不进规范,「用例不通过」就无法说明是否存在缺陷。

判定词用在含义
被当成成功负向用例以下任一即构成缺陷:成功信号为成功;数据发生了约定外的变化;返回了不该返回的数据。仅 HTTP 2xx、错误码已拒绝、数据未变,不算被当成成功
被放行权限类负向用例拿到了不该拿到的数据,或写操作实际生效。仅 HTTP 2xx 且错误码已拒绝、数据未变,不算被放行
被误拒正向用例合法请求没有得到成功信号,或约定的副作用没有发生
未处理故障任意用例出现未捕获的异常、响应里带堆栈,或只返回「系统错误」这类无信息量的文案。通用系统错误码即使写在错误码表里,也算未处理故障;已区分的系统里 HTTP 500 本身不算
最容易判错的一句:「仅 HTTP 2xx、错误码已拒绝、数据未变」既不算被当成成功,也不算被放行。把协议层的成功当成业务层的成功,是误判的主要来源。

4HTTP 状态码兜底表

只在「未区分」且文档没写明时使用。

情形兜底
成功2xx(200 / 201 / 204)
参数不合法400 或 422
未登录401
无权限403;跨端令牌 401 或 403
他人数据、不属于本人的数据403 或 404
查无此数据404
数据冲突409
未处理故障500
错误类别以该接口错误码表里写明的错误码为准;表里把多种情况收成同一个错误码时,不算类别用错。没有错误码表时,按「文档没写这个场景」处理。