收益:
- 在人工智能的支持下,能够利用等价类、边界值分析和决策表等技术将需求和验收标准转化为综合测试用例
- 能够分别产生正向、负向和边缘情况场景,并利用产品信息补全人工智能遗漏的边缘情况
- 通过将测试用例与验收标准联系起来,能够建立可追溯性并消除覆盖范围差距和不必要的膨胀
测试人员的工作通常从这张白纸开始:他有一个要求(“用户必须能够重置他的密码”),他需要将这句话变成数十个具体的检查,以证明软件实际上可以正常工作。这种转变称为测试设计。了解测试场景(描述要测试的内容的高级目标,例如“应拒绝无效密码”)和测试用例(通过具体步骤、输入和预期结果详细说明该场景的可执行单元)之间的区别是关键。人工智能 (AI) 正是加速了这一空白时刻:在几秒钟内将一个需求转变为数十个草稿场景。但请记住——人工智能会复制你能想到的情况;您可以根据自己的产品知识来选择哪些情况真正重要。
在本单元中,您将逐步学习如何将需求转变为具有人工智能支持的全面但整洁的测试套件。
一步一步:从需求到测试集
第 1 步——明确要求。在向人工智能提供原始要求之前,收集验收标准(一项工作必须满足才能被视为“完成”的条件)。 “密码必须可重置”是不够的; “重置链接有效期30分钟”、“相同密码不能重复使用”等规则才是真实测试的根源。
第 2 步 — 实施测试技术。关于人工智能,不要只是说“写一个脚本”;按名称询问经典测试设计技术:
- 等价类(等价划分):将输入分为预期产生相同行为的组。例如,对于年龄字段,“有效范围”、“太小”、“太大”是类;测试每一类的一个示例就足够了。
- 边界值分析:根据边界处误差最多的事实来测试阈值。这就像分别测试17、18、19岁是否有18岁的年龄限制。
- 决策表:将多个条件的组合以及每个组合的预期结果制成表格。
- 状态转换:测试系统从一个状态到另一个状态的转换(例如订单:创建→付款→发货)和无效转换。
步骤 3 — 分离正态、负态和边缘态。要求进行正面测试(正确输入的预期结果)、负面测试(无效输入的正确错误)以及边缘情况 - 边缘或异常情况。人工智能通常强调积极的一面;除非您明确要求,否则负面情况和边缘情况是不完整的。
第 4 步 — 确定优先级并进行修剪。 AI可生成60种场景;它们并不都具有同等的价值。优先考虑高风险(金钱、安全、数据丢失)的内容,并将重复的内容合并起来。
提示:向 AI 发送单独的请求,说明“根据此要求生成 5 个难以想象的边缘情况”。人工智能最有价值的贡献是它经常提醒你忽略的特殊情况。
弱提示/强提示
弱项:“为密码重置编写测试用例。”
强:“使用以下验收标准为‘密码重置’功能生成测试用例:链接有效期 30 分钟、单次使用、最后 3 个密码不能重复使用、帐户在 5 次错误尝试后锁定 15 分钟。应用等价类和边界值分析。在单独的标题中给出正、负和边缘情况。对于每种情况:ID、先决条件、步骤、测试数据、预期结果、相关验收标准。突出显示安全/锁定场景。”
强大的提示功能;它给出了规则、技术、输出格式和优先顺序。因此,人工智能产生可执行且可追踪的测试用例,而不是装饰性的测试用例。
测试用例输出格式
寻求可以直接导入团队测试管理工具(例如 TestRail、Zephyr、Xray)的结构化格式。下表显示了一个好的测试用例的组成部分:
面积
描述
例子
身份证号
唯一ID
TC-PWD-014
标题
简要目的
过期链接将被拒绝
前提条件
测试前所需条件
重置链接是在 31 分钟前生成的
步骤
顺序动作
1. 单击链接 2. 输入新密码
测试数据
使用的具体值
旧链接,新密码“Abc!2345”
预期结果
行为待验证
“链接已过期”错误,密码未更改
验收标准
溯源链接
AK-3:链接有效期为 30 分钟
优先级
风险等级
高
四个可复制模板
1)基于技术的场景制作:
您的角色:高级测试设计师。为功能生成测试用例:[功能和验收标准]。应用:等价类、断点分析、决策表。提供 3 组输出:正/负/边缘情况。每种情况:ID、前提条件、步骤、测试数据、预期结果、相关验收标准、优先级(高/中/低)。
2)边缘案例猎人:
列出以下功能的 10 个通常被忽视的边缘情况:[功能]。用一句话写出为什么这对每个人来说都是有风险的。考虑诸如空/空、输入太长、并发、超时、格式错误、Unicode/表情符号、负数/零、网络中断等轴。
3)决策表制作:
为以下业务规则创建决策表:[规则]。列:条件组合;行:每个条件和预期操作。标记无法实现或冲突的组合。然后为每个组合提出一个测试用例。
4)追溯控制:
给出以下验收标准列表和以下测试用例:[标准] / [案例]。以表格形式显示哪些用例满足 NO 测试用例(覆盖差距)以及哪些用例不满足任何标准(冗余用例)。
三个迷你箱子
情况 1 — 边缘状态的值。金融科技团队的一位专家为转账功能编写了 18 个脚本。他将“边缘案例猎人”模板应用于人工智能; AI提醒了“同时从两个设备转移相同余额”(并发)的情况。测试此场景时,发现了一个双花漏洞并在上线前关闭。一个边缘情况避免了潜在的六位数损失。
案例2——修剪凸起。一个团队让人工智能为会员表格制作了一个脚本,并完成了 74 个案例。运行可追溯性模板发现 74 个案例仅满足 9 个验收标准,其中许多案例重新测试了相同的等价类。重大案件数量从 74 件减少到 23 件;运行时间减少了 68%,覆盖率没有减少。
案例 3——错误的假设。 AI 建议测试日期字段的无效日期,例如“2 月 31 日”,但不知道团队使用的日历组件已经阻止了这一点。专家消除了人工智能生成的 6 个日期场景中的 4 个,因为在产品上下文中是不必要的。人工智能创造可能性;进行了产品信息选择。
常见错误
- 请求脚本而不给出接受标准。在不知道真相的情况下,人工智能会产生肤浅的场景,而往往会忽略真正的风险。
- 只是接受阳性测试。明确不想要负面和边缘情况。这就是错误经常出现的地方。
- 接受所产生的事物的本来面目。忘记人工智能不了解产品背景,从而在片场留下不必要或不可能的场景。
- 绕过可追溯性。未将案例与验收标准联系起来;因此,看不到哪个标准没有经过测试(覆盖范围差距)。
- 数量谬误。因“已发布60个剧本”而高兴。价值不在于数量,而在于涵盖风险的范围。
总之
测试设计就是将一句话需求转化为具体的、可执行的案例,以证明软件的正确性。人工智能极大地加速了这种转变:当你给它验收标准、经典测试技术(等价类、断点、决策表、状态转换)和清晰的输出格式时,它会生成全面的蓝图。但人工智能偏向于正面,不了解产品背景,并且会产生不必要的膨胀。您的工作是明确请求负面和边缘情况、建立可追溯性、按风险确定优先级并进行修剪。
应用任务
从您自己的项目中选择一个功能并写下验收标准。让人工智能使用“基于技术的场景生成”模板生成测试用例。然后应用“边缘案例猎人”和“可追溯性检查”模板。结果是:(1) 添加至少 3 个 AI 跳过的边缘情况,(2) 修剪不与任何验收标准相关的情况,(3) 如果有任何验收标准未测试,则编写新案例。将最终的结果倒入电子表格中。
清单
- [ ] 在请求脚本之前,我澄清了接受标准。
- [ ] 我按名字向 YZ 询问了等价类和边界值分析。
- [ ] 我分别生成了正态、负态和边缘态。
- [ ] 我将每个测试用例与验收标准(可追溯性)联系起来。
- [ ] 我用表格检查了范围差距和不必要的情况。
- [ ] 我按风险确定优先级并修剪了膨胀的集合。