UNPKG

dsh-qa-skills

Version:

DeepSeek Harness (dsh) plugin: 10 testing skills (requirement analysis, test strategy, case writing/review, E2E/API automation, exploratory, regression, bug analysis) + shared core knowledge base — a full QA pipeline as agent skills.

58 lines (42 loc) 3.03 kB
# 边界值与输入校验方法(boundary) > 输入输出型功能的用例设计方法(何时选它见 `../testing-principles.md` 第 2 节)。 > > **定位(2026-08-23 R5):本文件是方法参考,不是执行点。**强制执行的边界纪律已内联到 > test-case-writing 阶段三「维度核对」第 2 条(每条时间类规则至少 1 条双侧边界用例) > 与第 3 条(负向底数);数值类边界的七点公式与等价类划分按本文件加深,供强模型/高价值项目选用。 > (依据:评测轮实测 2/2 任务边界维度零增益——注入本知识文件不改变弱模型行为, > 约束必须在生成路径内联才生效。) ## 1. 等价类划分 每条输入规则先划**有效等价类****无效等价类**,每个等价类至少一条用例: ```text 规则示例:单笔提现金额为 10–50000 元整数 有效类:10(最小)、50000(最大)、1000(常规) 无效类:9、50001、0、-5、0.5(小数)、"abc"、空、超大数(1e10) ``` ## 2. 边界值取值公式 对每个数值/长度/数量边界,取七点: ```text 空 / 最小值 / 最小-1 / 最小+1 / 最大值 / 最大+1 / 超大值 ``` 字符串长度、列表条数、文件大小、分页页码同理。**边界依据**必须来自文档或代码(常量、校验规则所在 `文件:行`,落附录),不得凭通用经验猜边界。 ## 3. 校验规则 × 写入路径(二阶交叉,高发 bug 区) 同一条校验规则必须在**每条写入路径**上分别验证——校验常只挂在创建,编辑/重提路径绕过校验是最高发的真实 bug: ```text 写入路径:创建 / 编辑 / 重新提交 / 导入 / 批量修改 / API 直调 校验规则:每条规则一行 逐格问:这条规则在这条路径上验过吗? ``` ## 4. 常见边界清单(逐项过一遍,适用则配用例) | 类别 | 检查点 | |------|--------| | 数值 | 0 / 负数 / 小数位 / 进制 / 单位(分 vs 元)/ 溢出 | | 字符串 | 空串 / 纯空格 / 超长 / 特殊字符(emoji、引号、`<script>`)/ 全半角 / 不可见字符 | | 时间 | 时区 / 跨天 / 闰年 2-29 / 结束早于开始 / 1970 / 2038 / 未来超远日期 | | 集合 | 空列表 / 单元素 / 去重 / 排序稳定性 / 重复元素 | | 文件 | 0 字节 / 超大 / 类型伪装(改后缀)/ 损坏内容 | | 编码 | UTF-8 中文 / 生僻字 / 组合字符 / 不同换行符 | ## 5. 校验用例写法要点 - **拦截类用例**预期结果必须写具体:提示文案(或文案关键字)、拦截后表单数据是否保留、拦截后能否修改重提 - **边界值用例**逐值一条,不合并("输入 0 和 -5 均报错"是两条用例) - 拦截之后配**重试恢复**用例(拦截 → 改正 → 提交成功),见 `../testing-principles.md` 第 3 节 - 服务端校验与前端校验分别验证:前端绕过(直接调 API / 改请求)时服务端仍应拦截——前端拦了不代表后端拦了