
人工智能正成为关键的质量保证(QA)工具,帮助人们更快地生成场景、检测风险和规划测试。在Online TestConf会议上,Arbaz Surti 展示了如何有效地使用角色、上下文和输出格式来编写提示,以获得清晰、相关和可操作的测试场景。人工智能可以增强测试人员的能力,但需要人类判断来确保相关性和质量。
人工智能将成为 QA 工具包的一部分,学会如何有效地塑造提示的测试人员将使用它来加速场景生成、更快地发现风险并将时间集中在更高价值工作上,Surti 解释说:
在我的 Baskin-Robbins 项目中,我们需要测试菜单项的可用性如何与订购系统集成。我给人工智能一个详细的提示,解释应用程序,并要求它生成边缘场景。它提出了几个我没有想到的场景——包括一个在应用程序中标记为“可用”的项目实际上可能在商店缺货的情况。
Surti 说,捕捉到这一点防止了一个严重的错误,这将导致客户提交无法完成的订单,商店被迫处理混乱的退款。
提示工程是我们已经做得最好的事情——提出好问题的一种延伸。如果你给人工智能一个模糊的提示,你通常会得到一个模糊的答案,Surti 说。如果你把测试人员在编写测试用例时使用的纪律应用在这里,你会得到更接近测试人员实际需要的结果:清晰、相关和可操作的测试场景,可以被信任。
为测试用例编写有效的提示就像编写清晰的要求一样;你提供的上下文越多,输出就越好。他建议使用一个简单的结构:
定义角色:你是一位高级 QA 工程师,专注于负载和压力场景的性能测试人员,擅长识别认证流程中漏洞的安全测试人员,或者是负责基于风险优先级的 QA 领导。
添加上下文:你正在测试哪个功能或系统,任何规则或约束。
设置你想要的输出格式。
当你这样做时,你通常会得到结构化、优先级排序的场景,你可以直接将其插入到你的 QA 工作流程中,Surti 说。指导人工智能和指导初级测试人员是一样的。
由人工智能驱动的测试工作流程将赋予测试人员能力,而不是取代他们。人工智能可以插入到 QA 周期的不同部分,Surti 解释说:
在测试规划期间,它可以帮助你更快地进行覆盖范围的头脑风暴。对于测试用例创建,它可以构建场景,甚至建议可能遗漏的边缘情况。当你执行和自动化时,人工智能可以帮助生成脚本或优先考虑高价值测试。在报告中,它可以总结结果,发现模式,或将技术发现翻译成对业务友好的语言。
工作流程没变,但人工智能在每一步都像一个智能助手,帮助测试人员快速前进,并专注于更高价值的思考,Surti 说。
对于 QA 中的提示,Surti 建议关注指导原则而不是具体步骤:
清晰度优于完整性:优先考虑确切地询问我需要什么,而不是试图在一个提示中获得一切。
为复用做好格式化:结构化输出,使它们可以直接插入测试计划、表格或清单。
像测试人员一样思考:将 AI 响应视为需要验证和迭代的东西,就像测试结果一样。
风险意识提示:引导 AI 专注于高影响或边缘情况场景,而不是通用答案。
反思迭代:每个提示都是一个机会,以改进和学习,随着时间的推移提高结果。
人工智能是一个强大的加速器,而不是测试人员的替代品,Surti 说。它在头脑风暴、生成场景或发现你可能在时间压力下遗漏的边缘情况方面表现出色。但它真正的价值在于你用好的提示引导它,然后应用人类判断来过滤重要的事情。人工智能帮助你更快地覆盖更多的领域,但测试人员需要确保覆盖的深度和相关性,他总结道。
InfoQ 采访了 Arbaz Surti,讨论了软件测试中的提示。
InfoQ:我们如何编写有效的提示以生成测试用例?
Arbaz Surti:这里有一个示例提示和生成的输出:
角色:你是一位在电子商务结账测试方面经验丰富的高级 QA 工程师。
上下文:正在测试的功能是 Web 应用程序的电子商务结账流程。它必须支持访客和经过身份验证的结账、多种支付方式(信用卡、礼品卡、PayPal)、促销代码、多设备继续、运输选项和税务计算。系统执行支付验证,并且必须抵抗常见的安全攻击(SQLi、XSS)。有一个 15 分钟的会话/结账超时。
约束:用这些列制作一个 Markdown 表格:
| 测试场景 | 类别(功能/边缘情况/安全/可用性) | 输入/操作 | 预期结果 | 优先级(高/中/低) |
要求:
- 提供 15-20 个不同的场景,涵盖功能、边缘情况、安全和可用性。
- 加入核心最佳路径、负面/支付失败案例、边缘案例(空购物车、超时、多设备)和安全测试(SQL 注入、XSS)。
……
输出 Markdown 表格(无额外注释)
结果:
InfoQ:有哪些提示技巧,你如何使用它们?
Surti:从《对提示工程技术的系统调查》中获取的技巧来看,给测试人员带来最大影响的技巧有:
- 角色提示有助于塑造人工智能的“声音”和专业知识——例如,使其像高级 QA 工程师一样行事。
- 分解是指将大任务分解成更小、更可测试的步骤。
- 结构化输出也是关键,因为当你在表格、JSON 或测试章程中请求结果时,你可以获得能插入工作流的东西。
- 你可以要求人工智能自我评估其覆盖范围,这有助于发现问题。
还有一些更先进的技术,如思维链提示(CoT),你可以引导人工智能一步一步地推理。但对于大多数测试人员来说,从这些核心技术开始已经可以改变输出的质量了。
原文链接:How AI with Prompt Engineering Supports Software Testing








评论