AI辅助测试用例生成实战——用大模型把测试设计效率提升300%

📅 2026/7/13 10:56:39
AI辅助测试用例生成实战——用大模型把测试设计效率提升300%
不是AI替代测试人员而是会用AI的测试人员替代不会用的。一、AI测试现在是入局的最佳时机1.1 测试人员的真实痛点痛点具体表现 需求文档几十页提炼测试点耗时一个中等功能模块人工分析需求设计用例需要2-4小时 场景覆盖靠经验新人容易漏测老测试能想到的边界场景新人根本想不到 重复性劳动占比高正向流程、必填校验、格式校验这些套路化用例占60% 需求变更频繁用例维护成本高改一个字段相关的几十条用例都要手动更新 写用例耗时多真正测试时间被压缩测试设计:测试执行 4:6甚至5:51.2 AI能做什么现实版不画饼AI能做的已验证AI做不到的当前✅ 根据需求描述生成结构化用例❌ 理解隐含业务规则文档没写的✅ 补充边界值和异常场景❌ 替代人工探索性测试✅ 生成多组测试数据❌ 判断用例是否真的有效✅ 按指定格式输出Excel/表格/Markdown❌ 理解公司特有的业务上下文✅ 从代码生成单元测试❌ 发现UI/UX体验问题✅ 补充你可能遗漏的测试点❌ 完全替代测试人员的判断力一句话总结AI是测试设计的加速器和查漏补缺器不是自动驾驶仪。1.3 效率对比实测以一个典型的用户注册功能为例包含手机号、验证码、密码、确认密码4个字段环节纯人工AI辅助需求分析提取测试点30分钟5分钟AI提取人工审核设计正向用例20分钟3分钟AI生成人工筛选设计异常用例30分钟5分钟AI补充人工确认设计边界值用例20分钟3分钟AI自动穷举设计安全用例25分钟5分钟AI列举攻击向量合计125分钟21分钟最终用例数量28条46条覆盖更全 实测结论效率提升约5-6倍覆盖率提升约60%。二、核心技能写好测试用例的Prompt2.1 Prompt六要素框架一个高质量的测试用例生成Prompt必须包含以下六个要素┌────────────────────────────────────────────┐ │ ① 角色设定 你是谁资深测试工程师 │ │ ② 任务描述 要做什么设计测试用例 │ │ ③ 输入内容 基于什么需求文档/代码 │ │ ④ 覆盖要求 覆盖什么场景正向/异常/边界 │ │ ⑤ 输出格式 怎么输出表格/编号/字段 │ │ ⑥ 约束条件 有什么限制最少条数/优先级 │ └────────────────────────────────────────────┘2.2 基础版Prompt模板markdown你是一名拥有10年经验的资深软件测试工程师精通测试用例设计方法等价类划分、边界值分析、判定表、场景法、错误推测法。 【任务】 请根据以下功能需求设计完整的测试用例。 【功能需求】 {在此粘贴需求描述} 【覆盖要求】 - 正常场景所有正向业务流程 - 异常场景错误输入、空输入、超长输入、特殊字符 - 边界值场景对每个输入字段进行边界值分析 - 安全场景SQL注入、XSS、CSRF等常见安全风险 - 并发场景多用户同时操作的场景 - 兼容场景不同设备、浏览器、网络环境 【输出格式】 请按Markdown表格输出每一条用例包含以下字段 | 用例编号 | 用例标题 | 前置条件 | 测试步骤 | 测试数据 | 预期结果 | 优先级 | 用例类型 | 【约束条件】 - 用例编号格式TC_模块名_序号如TC_LOGIN_001 - 优先级分为P0核心功能、P1重要功能、P2一般功能 - 测试步骤要具体可执行每条步骤以动词开头 - 至少生成15条用例2.3 进阶版Few-Shot示例引导给AI一个示例它会模仿你的风格和格式markdown你是一名拥有10年经验的资深软件测试工程师。 【任务】 请根据以下功能需求参照示例用例的风格和格式设计完整的测试用例。 【示例用例】 | 用例编号 | 用例标题 | 前置条件 | 测试步骤 | 测试数据 | 预期结果 | 优先级 | |:--|:--|:--|:--|:--|:--|:--| | TC_LOGIN_001 | 正确手机号正确验证码登录 | 1.已注册手机号13800138000br2.验证码服务正常 | 1.打开登录页br2.输入手机号13800138000br3.点击获取验证码br4.输入收到的验证码br5.点击登录 | 手机号:13800138000br验证码:从短信获取 | 1.登录成功br2.跳转到首页br3.显示用户昵称 | P0 | | TC_LOGIN_002 | 正确手机号错误验证码登录 | 1.已注册手机号13800138000br2.验证码服务正常 | 1.打开登录页br2.输入手机号13800138000br3.输入错误验证码000000br4.点击登录 | 手机号:13800138000br验证码:000000 | 1.登录失败br2.提示验证码错误br3.停留在登录页 | P1 | | TC_LOGIN_003 | 手机号为空点击登录 | 无 | 1.打开登录页br2.不输入手机号br3.点击登录按钮 | 手机号:空 | 1.登录按钮置灰不可点击br或br2.提示请输入手机号 | P1 | 【功能需求】 {在此粘贴需求描述} 【覆盖要求】 同基础版 【输出格式】 请参照上述示例的格式和详细程度输出。2.4 分步引导式Prompt推荐效果最好与其一次性让AI输出所有用例不如分步引导效果更精准Step 1先提取测试点markdown你是一名资深测试工程师。请从以下需求中提取所有可测试的功能点、业务规则和约束条件。 【需求】 {粘贴需求} 【输出要求】 1. 功能点列表每个功能点一句话描述 2. 业务规则列表包括验证规则、权限规则、流程规则 3. 输入字段列表字段名、类型、长度限制、是否必填、格式要求 4. 依赖条件需要哪些前置数据或环境Step 2基于测试点生成用例markdown基于以下测试点清单为每个测试点设计测试用例。 【测试点清单】 {粘贴Step 1的输出} 【要求】 - 每个功能点至少设计1条正向用例 - 每个输入字段至少覆盖正常值、空值、边界值、超长值、特殊字符 - 每个业务规则至少设计1条验证用例 - 补充安全测试、并发测试、兼容性测试场景 - 按Markdown表格输出包含用例编号、标题、前置条件、步骤、数据、预期结果、优先级Step 3查漏补缺markdown以下是为用户注册功能生成的测试用例清单。请审查并提出补充建议 【已生成的用例清单】 {粘贴Step 2的输出} 【请检查】 1. 是否有遗漏的测试场景 2. 是否有边界值未覆盖 3. 异常场景是否充分 4. 是否有安全风险未考虑 5. 优先级分配是否合理三、实战6个真实场景的完整操作3.1 场景一从PRD生成功能测试用例输入PRD片段用户可以通过手机号注册账号。注册时需要输入手机号11位中国大陆手机号、获取并输入短信验证码6位数字60秒内有效每天最多发送5次、设置密码8-20位必须包含字母和数字、确认密码。注册成功后自动登录并跳转到首页。操作步骤第1步将PRD粘贴到分步引导Prompt的Step 1中让AI提取测试点。AI输出测试点清单第2步将测试点清单输入Step 2让AI生成用例。AI输出部分用例实际输出约40条用例编号用例标题前置条件测试步骤测试数据预期结果优先级TC_REG_001正确信息完成注册手机号未注册短信服务正常1.打开注册页2.输入正确手机号3.点击获取验证码4.输入正确验证码5.输入合规密码6.输入相同确认密码7.点击注册手机号:13800138001密码:Test12341.注册成功2.自动登录3.跳转首页P0TC_REG_002手机号格式错误-少于11位无1.打开注册页2.输入10位手机号3.输入其他字段4.点击注册手机号:13800138001.提示请输入正确的手机号2.注册失败P1TC_REG_003手机号格式错误-非1开头无1.打开注册页2.输入2开头的11位号码3.输入其他字段4.点击注册手机号:238001380011.提示请输入正确的手机号2.注册失败P1TC_REG_004已注册手机号再次注册手机号13800138000已注册1.打开注册页2.输入已注册手机号3.点击获取验证码手机号:138001380001.提示该手机号已注册2.无法获取验证码P1TC_REG_005密码不含字母手机号未注册1.输入正确手机号和验证码2.输入纯数字密码3.点击注册密码:123456781.提示密码必须包含字母和数字P1TC_REG_006密码长度边界-7位手机号未注册1.输入正确手机号和验证码2.输入7位合规密码3.点击注册密码:Test1231.提示密码长度为8-20位P1TC_REG_007密码长度边界-8位最小值手机号未注册1.输入正确手机号和验证码2.输入8位合规密码3.确认密码一致4.点击注册密码:Test12341.注册成功P1TC_REG_008确认密码不一致手机号未注册1.输入正确手机号和验证码2.输入合规密码3.输入不同确认密码4.点击注册密码:Test1234确认密码:Test56781.提示两次密码输入不一致P1.....................第3步用Step 3 Prompt让AI查漏补缺。AI补充建议建议补充以下用例 1. 验证码60秒过期后再次获取 → TC_REG_015 2. 同一天第6次获取验证码 → TC_REG_016 3. 获取验证码倒计时期间退出页面再进入 → TC_REG_017 4. 密码包含特殊字符如#$%→ TC_REG_020 5. 手机号含空格如138 0013 8001→ TC_REG_021 6. 验证码输入字母非数字→ TC_REG_022 7. 快速连续点击获取验证码 → TC_REG_023 8. 无网络时点击注册 → TC_REG_0243.2 场景二从接口文档生成接口测试用例输入接口文档片段Promptmarkdown你是一名资深接口测试工程师。请根据以下接口文档设计接口测试用例。 【接口文档】 {粘贴上面的接口文档} 【覆盖要求】 1. 正常场景合法参数的各种组合 2. 参数校验每个字段的必填、类型、范围、枚举值校验 3. 业务规则库存、优惠券、地址、用户校验 4. 边界值quantity的边界0, 1, 99, 100 5. 异常场景请求体缺失、格式错误、超时 6. 安全场景SQL注入、XSS、越权用他人userId 【输出格式】 | 用例编号 | 用例标题 | 请求方法 | 请求体 | 预期HTTP状态码 | 预期响应code | 预期message |AI输出部分用例编号用例标题请求方法请求体预期状态码预期code预期messageTC_API_001正常创建订单POST{userId:U001,productId:P001,quantity:1,addressId:A001,payMethod:WECHAT}2000successTC_API_002quantity为0POST{userId:U001,productId:P001,quantity:0,...}400-数量必须大于0TC_API_003quantity为100超出上限POST{userId:U001,productId:P001,quantity:100,...}400-数量超出限制TC_API_004quantity为1边界值POST{userId:U001,productId:P001,quantity:1,...}2000successTC_API_005quantity为99边界值POST{userId:U001,productId:P001,quantity:99,...}2000successTC_API_006payMethod非法值POST{userId:U001,...,payMethod:BITCOIN}400-支付方式不支持TC_API_007使用过期优惠券POST{userId:U001,...,couponCode:EXPIRED001}2001002优惠券无效或已过期TC_API_008库存不足POST{userId:U001,productId:OUT_OF_STOCK,...}2001001商品库存不足TC_API_009缺失必填字段userIdPOST{productId:P001,quantity:1,...}400-userId不能为空TC_API_010SQL注入测试POST{userId: OR 11,...}400/200-参数格式错误或正常拒绝3.3 场景三从代码生成单元测试输入Python代码pythondef calculate_shipping_fee(weight, distance, is_vipFalse, is_urgentFalse): 计算快递运费 :param weight: 包裹重量kg范围 (0, 50] :param distance: 配送距离km范围 (0, 1000] :param is_vip: 是否VIP用户VIP享受8折 :param is_urgent: 是否加急加急费1.5倍 :return: 最终运费元 :raises ValueError: 参数超出范围 if weight 0 or weight 50: raise ValueError(重量必须在(0, 50] kg范围内) if distance 0 or distance 1000: raise ValueError(距离必须在(0, 1000] km范围内) # 基础运费首重10元/kg续重5元/kg base_fee 10 * min(weight, 1) 5 * max(0, weight - 1) # 距离系数 distance_factor 1.0 if distance 100 else 1.0 (distance - 100) * 0.01 # 加急系数 urgent_factor 1.5 if is_urgent else 1.0 fee base_fee * distance_factor * urgent_factor if is_vip: fee * 0.8 return round(fee, 2)Promptmarkdown你是一名精通Python单元测试的测试工程师。请为以下函数生成pytest单元测试。 【函数代码】 {粘贴上面的代码} 【要求】 1. 使用pytest框架 2. 覆盖正常场景、边界值、异常场景 3. 使用pytest.mark.parametrize参数化 4. 覆盖VIP和非VIP场景 5. 覆盖加急和非加急场景 6. 使用pytest.raises测试异常 7. 覆盖率要求100%语句覆盖 【输出格式】 直接输出可运行的pytest代码。AI输出可直接运行pythonimport pytest from shipping import calculate_shipping_fee class TestCalculateShippingFee: 运费计算函数测试 # 正常场景 pytest.mark.parametrize(weight,distance,is_vip,is_urgent,expected, [ (1, 10, False, False, 10.00), # 首重1kg近距离 (2, 50, False, False, 15.00), # 首重10元 续重5元 (5, 80, False, False, 30.00), # 首重10元 续重4×520 (1, 100, False, False, 10.00), # 距离边界100km (1, 101, False, False, 10.10), # 距离超出100km (1, 500, False, False, 50.00), # 距离500km ]) def test_normal_shipping(self, weight, distance, is_vip, is_urgent, expected): result calculate_shipping_fee(weight, distance, is_vip, is_urgent) assert result expected # VIP折扣场景 pytest.mark.parametrize(weight,distance,is_vip,is_urgent,expected, [ (1, 10, True, False, 8.00), # VIP 8折 (2, 50, True, False, 12.00), # 15 × 0.8 12 ]) def test_vip_discount(self, weight, distance, is_vip, is_urgent, expected): result calculate_shipping_fee(weight, distance, is_vip, is_urgent) assert result expected # 加急场景 pytest.mark.parametrize(weight,distance,is_vip,is_urgent,expected, [ (1, 10, False, True, 15.00), # 10 × 1.5 15 (2, 50, False, True, 22.50), # 15 × 1.5 22.5 ]) def test_urgent_shipping(self, weight, distance, is_vip, is_urgent, expected): result calculate_shipping_fee(weight, distance, is_vip, is_urgent) assert result expected # VIP加急场景 pytest.mark.parametrize(weight,distance,is_vip,is_urgent,expected, [ (1, 10, True, True, 12.00), # 10 × 1.5 × 0.8 12 ]) def test_vip_urgent(self, weight, distance, is_vip, is_urgent, expected): result calculate_shipping_fee(weight, distance, is_vip, is_urgent) assert result expected # 边界值场景 pytest.mark.parametrize(weight,distance,is_vip,is_urgent,expected, [ (0.01, 0.01, False, False, 0.10), # 最小重量最小距离 (50, 1000, False, False, 2550.00),# 最大重量最大距离 (0.01, 1000, False, False, 10.00),# 最小重量最大距离 (50, 0.01, False, False, 255.00), # 最大重量最小距离 ]) def test_boundary_values(self, weight, distance, is_vip, is_urgent, expected): result calculate_shipping_fee(weight, distance, is_vip, is_urgent) assert result expected # 异常场景 pytest.mark.parametrize(weight,distance,error_msg, [ (0, 10, 重量必须在(0, 50] kg范围内), (-1, 10, 重量必须在(0, 50] kg范围内), (51, 10, 重量必须在(0, 50] kg范围内), (1, 0, 距离必须在(0, 1000] km范围内), (1, -1, 距离必须在(0, 1000] km范围内), (1, 1001, 距离必须在(0, 1000] km范围内), ]) def test_invalid_params(self, weight, distance, error_msg): with pytest.raises(ValueError, matcherror_msg): calculate_shipping_fee(weight, distance)3.4 场景四生成测试数据Promptmarkdown请为用户注册功能的测试生成以下测试数据以JSON数组格式输出 1. 10组合法的注册数据手机号使用符合规范的虚拟号码 2. 10组不合法的手机号覆盖空、少于11位、多于11位、非1开头、第二位为0/1/2、含字母、含特殊字符 3. 5组不合法的密码覆盖纯数字、纯字母、少于8位、多于20位、含中文 4. 5组验证码异常数据覆盖少于6位、含字母、过期、错误 【输出格式】 分类输出每组标注场景说明。3.5 场景五评审已有用例Promptmarkdown你是一名测试架构师。请评审以下测试用例的质量并给出改进建议。 【已有用例】 {粘贴用例清单} 【评审维度】 1. 场景覆盖是否完整是否有遗漏的功能点、边界值、异常场景 2. 用例设计是否合理步骤是否可执行、预期结果是否明确 3. 优先级分配是否合理 4. 是否有冗余用例多个用例测试同一个点 5. 用例描述是否清晰新同事能否看懂并执行 【输出要求】 1. 总体评分1-10分 2. 具体问题清单逐条列出 3. 改进建议逐条给出 4. 建议补充的用例3.6 场景六需求变更后更新用例Promptmarkdown需求发生变更请更新以下测试用例。 【变更内容】 原需求密码长度为6-16位 新需求密码长度为8-20位且必须包含字母和数字 【原有用例受影响的部分】 | TC_REG_010 | 密码长度6位原最小值可注册 | ... | P1 | | TC_REG_011 | 密码长度5位原边界-1拒绝 | ... | P1 | | TC_REG_012 | 密码长度16位原最大值可注册 | ... | P1 | | TC_REG_013 | 密码长度17位原边界1拒绝 | ... | P1 | | TC_REG_014 | 纯数字密码可注册 | ... | P1 | 【要求】 1. 标注哪些用例需要修改、删除、新增 2. 输出修改后的完整用例 3. 新增密码必须包含字母和数字相关的用例四、提示词工程进阶——让AI输出更精准4.1 角色设定的艺术角色设定效果❌ 请帮我写测试用例输出泛泛没有专业感⭐ 你是一名测试工程师有所改善但仍不够⭐⭐ 你是一名拥有10年经验的资深测试工程师精通等价类划分、边界值分析、场景法、错误推测法等测试设计方法输出更专业⭐⭐⭐ 你是一名资深测试工程师曾主导过电商、金融、社交等多领域大型项目的测试设计。你擅长从需求文档中提取隐含的业务规则善于发现容易遗漏的边界条件和异常场景。你的用例以可执行性强、覆盖全面、优先级合理著称。输出质量最高4.2 约束条件越具体越好模糊约束精准约束多写几条至少生成20条用例其中P0不少于3条P1不少于8条覆盖全一点覆盖正常场景5条、异常场景8条、边界值5条、安全场景3条写详细点每条测试步骤以动词开头包含具体的输入数据和操作对象4.3 分治策略——复杂需求分段处理一个200页的PRD不要一次性扔给AI 正确做法 PRD → 按功能模块拆分 → 逐模块生成测试点 → 逐模块生成用例 → 汇总审查 ┌─────────┐ ┌─────────┐ ┌─────────┐ ┌─────────┐ │ 登录模块 │ │ 注册模块 │ │ 订单模块 │ │ 支付模块 │ │ → 35条 │ │ → 42条 │ │ → 58条 │ │ → 46条 │ └─────────┘ └─────────┘ └─────────┘ └─────────┘ ↓ ┌──────────────┐ │ 汇总 端到端 │ │ 场景补充 12条 │ └──────────────┘ ↓ 总计193条用例4.4 迭代优化——多轮对话出精品第1轮生成基础用例覆盖正向流程 ↓ 审查 → 发现缺少异常场景 第2轮请补充异常场景和边界值用例 ↓ 审查 → 发现缺少安全场景 第3轮请补充SQL注入、XSS、越权等安全测试用例 ↓ 审查 → 发现缺少并发场景 第4轮请补充并发和性能相关场景 ↓ 审查 → 发现缺少弱网环境场景 第5轮请补充弱网、超时、断网等网络异常场景 ↓ 最终人工审核、修改、定稿五、不同AI工具的选型与对比5.1 主流AI工具测试用例生成能力对比维度ChatGPT / GPT-4Claude文心一言通义千问CodeBuddy通用用例生成⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐中文需求理解⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐代码→单元测试⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐接口测试生成⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐测试数据生成⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐上下文长度128K200K较有限较有限取决于模型免费可用⚠️ 有限⚠️ 有限✅ 基础版✅ 基础版✅ IDE集成IDE集成需API需API需API需API✅ 原生集成5.2 选型建议场景推荐工具日常用例设计中文通义千问 / 文心一言免费、中文友好复杂业务逻辑Claude / GPT-4推理能力更强单元测试代码生成Claude / GPT-4 IDE中的CodeBuddy接口自动化测试脚本GPT-4 / Claude在IDE中边写代码边生成测试CodeBuddy原生集成无需切换窗口六、AI测试用例的局限性与避坑指南6.1 五大陷阱陷阱表现应对策略幻觉问题AI编造不存在的API、参数、业务规则所有AI输出的业务规则必须与PRD核对上下文遗忘长对话中忘记之前的约束条件关键约束每轮都重申复杂需求分模块处理格式不稳定同一Prompt不同时间输出格式可能不同使用结构化Prompt Few-Shot示例锁定格式看上去正确用例格式完美但实际不可执行抽查3-5条用例实际执行一遍过度自信AI不会说我不确定会硬编答案对不确定的场景追问你确定吗依据是什么6.2 必须人工把关的6个环节AI输出 → 必须人工审核 → ① 业务规则准确性AI是否正确理解了需求 ② 测试数据真实性手机号、身份证号是否符合真实规则 ③ 步骤可执行性按步骤操作能否真的走到预期结果 ④ 场景完整性是否有AI不知道的隐含场景如特定行业规则 ⑤ 优先级合理性P0/P1/P2分配是否符合项目实际 ⑥ 无冗余是否有3条用例实际测的是同一个东西6.3 什么情况下不建议用AI场景原因高度行业化的业务医疗、金融合规等AI缺乏行业专有知识涉及复杂状态机的场景AI难以追踪多状态流转全新产品0→1的需求没有参考上下文AI容易自由发挥安全测试中的渗透测试AI无法替代专业安全工具和人工渗透需要实际操作设备验证的硬件测试、IoT设备测试七、进阶如何制定AI测试用例生成Skill的规则体系授人以鱼不如授人以渔。前面教你写Prompt这里教你如何将Prompt体系化封装成一个可复用的Skill。7.1 为什么需要规则体系单次Prompt对话的问题是问题表现每次都要重新写换一个需求就要重新写一遍Prompt输出格式不稳定同样的需求描述不同时间输出格式不一样团队标准不统一A同事和B同事用不同的Prompt风格用例格式各异新人上手成本高新人不知道该怎么写Prompt也不知道好的用例长什么样解决方案将你的测试经验和标准固化为一套规则体系封装成Skill。之后每次只需输入需求AI按规则自动输出标准化用例。7.2 十条核心规则详解以下是我总结的10条核心规则覆盖从输入到输出的完整链路规则①默认交付规则高优先级目的规定AI在不明确指令下的默认行为确保基础质量。【默认交付规则】 1. 如果没有指定用例数量默认生成不少于20条用例 2. 如果没有指定覆盖范围默认覆盖正常场景 异常场景 边界值 安全场景 3. 如果没有指定输出格式默认使用Markdown表格 4. 如果没有指定优先级规则默认按以下标准 - P0核心正向流程、涉及资金/数据的操作 - P1重要异常校验、边界值 - P2非关键路径、极端边界 5. 如果没有指定用例编号格式默认使用 TC_{模块名}_{序号}为什么重要你不说写20条AI可能只写5条敷衍。默认规则保证每次输出下限不低。规则②输入读取规则目的规定AI如何解析你输入的需求文档。【输入读取规则】 1. 从需求文档中提取以下信息 - 功能点清单每个可独立测试的功能 - 输入字段清单名称、类型、长度限制、是否必填、校验规则 - 业务规则清单显式规则 从描述中可推导的隐式规则 - 前置依赖需要什么数据/环境/状态 - 异常路径文档中提到但非主流程的分支 2. 如果需求文档不完整列出需要澄清的问题而不是猜测 3. 如果需求包含参考某某功能将该功能的规则也纳入分析反例AI看到用户可上传头像就只测上传功能忽略了格式限制、大小限制、裁剪功能、默认头像等隐含需求。规则③可选补充材料规则目的规定用户可以额外提供哪些材料以及AI如何处理它们。【可选补充材料规则】 1. 用户可提供以下补充材料非必填提供后质量显著提升 - 原型图/UI设计稿用于补充UI交互相关用例 - 接口文档用于生成接口级别用例 - 数据库表结构用于补充数据校验用例 - 已有测试用例用于AI学习团队的用例风格 - 历史Bug清单用于针对性补充易错场景 2. 当用户提供原型图时额外生成 - 页面元素展示校验用例 - 交互跳转流程用例 - 不同分辨率/暗黑模式适配用例 3. 当用户提供历史Bug清单时优先补充 - 与历史Bug同类型的回归用例 - 历史Bug发生模块的边界增强用例规则④用例生成流程规则目的规定AI生成用例的内部流程确保不跳步骤。【用例生成流程规则】 Step 1解析需求 → 输出测试点清单供用户确认 Step 2用户确认后 → 生成正向用例核心业务流程 Step 3基于正向用例 → 推导异常场景用例 Step 4基于输入字段 → 穷举边界值用例 Step 5补充安全用例注入、越权、加密等 Step 6补充非功能用例兼容性、网络、并发等 Step 7自检 → 逐条检查是否违反明确禁止的写法见规则⑧ Step 8最终输出 → 完整的用例表格 ⚠️ 关键原则每步输出后等待用户确认不要一次性输出所有内容。为什么分步一次性输出50条用例用户很难逐条审核。分步输出让用户在每一步都能纠正方向。规则⑤用例结构规则目的规定每条用例必须包含哪些字段以及每个字段的填写标准。【用例结构规则】 每条用例必须包含以下字段 | 字段 | 是否必填 | 填写标准 | |:--|:--|:--| | 用例编号 | ✅ 必填 | 格式TC_{模块名}_{三位序号}如 TC_LOGIN_001 | | 用例标题 | ✅ 必填 | 格式{场景描述}_{预期结果}如正确手机号正确验证码_登录成功 | | 测试模块 | ✅ 必填 | 所属功能模块如登录模块 | | 前置条件 | ✅ 必填 | 编号列表包含账号状态、数据状态、环境要求 | | 测试步骤 | ✅ 必填 | 编号列表每步以动词开头具体到可执行 | | 测试数据 | ✅ 必填 | 具体的输入值不要写输入正确数据这种模糊描述 | | 预期结果 | ✅ 必填 | 编号列表包含页面反馈、数据变化、跳转行为 | | 优先级 | ✅ 必填 | P0/P1/P2 | | 用例类型 | ✅ 必填 | 功能测试/接口测试/兼容性测试/安全测试/性能测试 | | 关联需求 | 选填 | 对应的需求编号或PRD章节 | | 备注 | 选填 | 特殊说明、已知限制、依赖的外部系统 |规则⑥编写质量规则目的规定每条用例的质量标准确保可执行、可复现、无歧义。反例 vs 正例反例质量不合格正例质量合格输入正确数据检查是否正常输入手机号13800138001验证码123456密码Test1234点击注册按钮系统响应正确1.页面提示注册成功 2.自动跳转至首页 3.顶部显示用户昵称测试用户前置条件已登录前置条件1.使用账号testqq.com登录 2.该账号有3个收货地址 3.购物车中有2件商品规则⑦普适覆盖规则目的规定无论什么功能都必须覆盖的通用场景防止遗漏。规则⑧明确禁止的写法目的规定AI绝对不能使用的写法从源头杜绝低质量用例。规则⑨表格输出规则目的规定最终输出的格式标准确保可以直接导入测试管理平台。【表格输出规则】 1. 使用Markdown表格格式 2. 表头固定为用例编号 | 用例标题 | 测试模块 | 前置条件 | 测试步骤 | 测试数据 | 预期结果 | 优先级 | 用例类型 3. 表格列对齐编号列左对齐标题列左对齐其余列左对齐 4. 如果一条用例的测试步骤超过5步考虑是否可以拆分 5. 在表格前先输出以下汇总信息 - 模块名称 - 用例总数 - P0数量 / P1数量 / P2数量 - 覆盖类型分布功能X条、接口X条、安全X条…… 6. 如果有任何需要用户确认的假设在表格后以⚠️ 需要确认列出规则⑩回复用户时的规则目的规定AI与用户交互时的行为规范保证协作体验。7.3 如何将规则封装为Skill有了10条规则后下一步是将它们封装成一个可复用的Skill。以下是完整示例markdown--- name: test-case-generator description: 根据需求文档自动生成标准化测试用例覆盖正向/异常/边界/安全场景 version: 1.0.0 --- # 测试用例生成Skill ## 触发条件 当用户说生成测试用例、设计用例、帮我写用例、测试用例时触发。 ## 角色设定 你是一名拥有10年经验的资深测试工程师精通等价类划分、边界值分析、判定表、场景法、错误推测法。 你以可执行性强、覆盖全面、格式标准著称。 ## 执行规则 严格遵循以下10条规则详见规则体系 1. 默认交付规则 2. 输入读取规则 3. 可选补充材料规则 4. 用例生成流程规则分步执行每步确认 5. 用例结构规则 6. 编写质量规则 7. 普适覆盖规则 8. 明确禁止的写法 9. 表格输出规则 10. 回复用户时的规则 ## 核心禁止项 - 禁止使用正常、正确、合理等主观词 - 禁止一条用例测多个场景 - 禁止编造不存在的业务规则 - 禁止跳过用户确认直接输出全部用例7.4 规则体系的迭代维护Skill不是一蹴而就的需要持续迭代版本迭代记录模板 v1.0初始版本 - 建立10条基础规则 - 支持功能测试用例生成 v1.1使用1周后 - 规则⑦补充增加弱网环境为普适覆盖项 - 规则⑧补充增加禁止使用emoji作为测试数据标识 - 发现AI对密码加密场景覆盖不足强化安全场景规则 v1.2使用1个月后 - 规则③补充新增原型图输入的处理规则 - 规则⑤补充新增关联需求字段 - 根据团队反馈调整P0/P1/P2的默认分配比例维护建议频率动作每周收集使用中遇到的问题和不满意输出每两周团队Review讨论规则是否需要调整每月更新Skill版本记录变更日志每季度全量审查剔除过时规则补充新场景八、AI测试的未来从用例生成到智能测试8.1 当前AI测试的能力全景当前成熟度 高 ←──────→ 低 测试用例生成 ████████████░░░░ 85% 测试数据生成 ██████████░░░░░░ 75% 单元测试代码生成 ██████████░░░░░░ 70% 接口测试脚本生成 ████████░░░░░░░░ 60% 测试报告分析 ██████░░░░░░░░░░ 45% 自动化脚本修复 █████░░░░░░░░░░░ 35% 探索性测试 ████░░░░░░░░░░░░ 25% 测试策略制定 ███░░░░░░░░░░░░░ 20% 性能瓶颈分析 ██░░░░░░░░░░░░░░ 15% 安全渗透测试 █░░░░░░░░░░░░░░░ 10%8.2 测试人员如何不被AI替代能力为什么AI替代不了业务理解只有人才能真正理解用户想要什么探索性测试基于直觉和经验的发散性测试质量判断什么算Bug严重程度如何需要人的判断沟通协作与产品、开发的沟通和推动测试策略什么先测什么后测、资源怎么分配使用AI的能力会写Prompt、会审核AI输出的测试人员更稀缺一句话AI负责生成你负责判断。8.3 推荐学习路径第1周掌握基础Prompt工程 → 学会角色设定、输出格式控制、Few-Shot示例 第2周在1-2个模块上实践 → 选一个中等复杂度的模块用AI辅助完成全量用例设计 第3周建立自己的Prompt模板库 → 总结好用的Prompt按场景分类保存 第4周推广到团队 → 分享模板和经验建立团队的AI辅助测试流程 持续跟踪AI工具更新 → 关注GPT-5、Claude 4等新模型的能力提升九、Prompt模板速查库9.1 功能测试用例生成markdown你是资深测试工程师。请根据以下需求设计测试用例 【需求】{粘贴需求} 【要求】覆盖正常/异常/边界/安全/并发场景至少{N}条 【格式】表格编号|标题|前置条件|步骤|数据|预期|优先级9.2 接口测试用例生成markdown你是接口测试专家。请根据以下API文档设计接口测试用例 【API文档】{粘贴文档} 【要求】覆盖参数校验/业务规则/异常/安全每个字段覆盖正常/空/类型错误/边界 【格式】表格编号|标题|方法|请求体|预期状态码|预期响应9.3 单元测试代码生成markdown你是{python/java/js}单元测试专家。请为以下函数生成单元测试 【代码】{粘贴代码} 【要求】pytest/unittest/jest框架parametrize参数化覆盖正常/边界/异常100%语句覆盖 【格式】直接输出可运行的测试代码9.4 用例评审markdown你是测试架构师。请评审以下用例 【用例】{粘贴用例清单} 【评审维度】场景覆盖/设计合理性/优先级/冗余/可执行性 【输出】总体评分问题清单改进建议建议补充用例9.5 测试数据生成markdown请为{功能名称}生成{N}组测试数据 【要求】包含正常数据{数量}组、异常数据{数量}组、边界数据{数量}组 【格式】JSON数组9.6 需求变更影响分析markdown需求发生以下变更{描述变更} 请分析对现有用例的影响 【原有用例】{粘贴受影响用例} 【输出】需修改的用例/需删除的用例/需新增的用例/修改后的完整用例十、总结10.1 AI辅助测试用例的核心原则┌─────────────────────────────────────────────┐ │ │ │ 输入质量决定输出质量Garbage In Garbage Out │ │ │ │ AI负责生成 穷举 │ │ 人负责判断 决策 │ │ │ │ 多轮迭代 一次性输出 │ │ 分模块处理 全量输入 │ │ 结构化Prompt 随意提问 │ │ │ └─────────────────────────────────────────────┘10.2 能力自检清单技能掌握标准□ Prompt六要素能写出包含角色/任务/输入/覆盖/格式/约束的完整Prompt□ Few-Shot示例能给AI提供1-3个示例引导输出风格□ 分步引导能分3步提取测试点→生成用例→查漏补缺完成用例设计□ 迭代优化能通过3-5轮对话逐步完善用例集□ 人工审核能快速识别AI输出中的错误、遗漏和冗余□ 多场景应用能将方法应用于功能测试、接口测试、单元测试□ 模板积累建立了自己的Prompt模板库能快速复用10.3 与系列文章的配合已有文章本文的关联测试用例设计方法论本文是方法论的AI加速版用AI快速落地等价类/边界值/场景法从需求到高质量用例本文的分步引导法可以替代人工需求拆解的部分环节接口自动化测试实战本文3.2节的接口用例生成可直接对接Postman/Newman测试策略与计划制定AI生成的用例按优先级排序后可快速制定测试策略测试职业发展AI辅助测试是测试人员2025-2026年必须掌握的核心竞争力10.4 记忆口诀六要素Prompt要记牢角色任务输入不能少。覆盖格式约束写清楚Few-Shot示例质量高。分步引导效果好先拆测试点再生用例。多轮迭代查漏补缺人工审核最后把关。AI负责生成你负责判断人机协作才是正解。行动建议打开你手头正在测试的一个需求按照本文第三章的分步引导法实际操作一遍。先用AI提取测试点再生成用例最后让AI查漏补缺。你会惊讶于AI的效率和覆盖度。