写点什么

AI 大模型入门 三:5 分钟速成 Prompt 公式,让 AI 生成代码的通过率从 30% 到 90%

作者:测试人
  • 2025-05-16
    北京
  • 本文字数:1685 字

    阅读完需:约 6 分钟


为什么你的 AI 总在“装傻”?

测试工程师让 AI 生成接口测试用例:

  • “帮我写个登录接口的测试用例” → AI 返回了包含“用户名包含特殊字符”的案例,但遗漏了“密码加密传输”的验证

  • 改进后:“生成基于 OAuth2.0 协议的登录接口测试用例,覆盖正向场景、边界值(如超长 token)、安全场景(加密传输和 SQL 注入检测)” → AI 输出包含 12 条精准用例

问题本质:AI 是一台需要精确指令的“问答机器”——提示工程(Prompt Engineering)就是编写这些指令的底层技术。

一、测试工程师眼中的提示工程:不只是“会说话”

1. 技术定义

提示工程 = 结构化输入设计 + 模型行为控制,核心目标是通过输入文本的优化,引导 AI 生成确定性高、可测试的输出。

2. 测试开发场景的价值


二、提示工程的六大进阶法则

▌法则 1:输入结构化——像设计测试用例一样写 Prompt

❌模糊指令:

“模拟用户登录异常场景”  
复制代码

✅测试工程师专用模板:

角色:安全测试专家  目标:生成包含OWASP Top 10风险的登录接口测试用例  输入约束:  - 请求方式:POST  - 参数:username(字符串,1-20位)、password(SHA256加密)  输出要求:  - 按<场景类型>-<测试步骤>-<预期结果>结构输出  - 包含:暴力破解、SQL注入、XSS、会话固定攻击检测  
复制代码

▌法则 2:逆向思维——注入“对抗样本” 案例:让 AI 生成渗透测试方案

"已知系统已防御常规SQL注入攻击,请设计三种绕过WAF的新型注入攻击手法,要求:  1. 基于时间盲注技术  2. 利用HTTP协议分块传输特性  3. 提供检测用Payload示例"  
复制代码

▌法则 3:动态上下文控制——类似数据驱动测试

# 使用变量占位符实现动态Prompt  test_scenarios = ["并发重复提交", "跨站请求伪造", "签名过期"]  prompt = f"""  基于以下安全场景生成测试脚本:{', '.join(test_scenarios)}  要求:  1. 使用Python+Requests库  2. 每个场景包含异常处理逻辑  3. 输出断言语句示例  """  
复制代码

▌法则 4:元指令优先——设置 AI 的“测试模式”

[系统指令]  你是一个资深测试架构师,擅长设计高覆盖率的异常测试方案,严格遵守ISTQB标准。  [用户指令]  为电商支付接口设计异常流测试用例,重点覆盖网络抖动、第三方支付超时、对账不平场景。 
复制代码

▌法则 5:链式推理——模仿测试思维链

请逐步思考:  1. 文件上传接口的合法参数边界是什么?  2. 如何构造超过服务端限制的测试文件?  3. 预期系统应返回什么错误码?  4. 如何验证服务端是否真实拦截而非前端伪装?  
复制代码

▌法则 6:自验证 Prompt——让 AI 自己写测试

生成一段Python代码实现用户注册功能,需包含:  - 密码强度校验(大小写字母+数字+特殊符号)  - 手机号格式验证  - 并发重复注册检测  
并针对这段代码,设计5个边界值测试用例,以表格形式呈现: | 测试数据 | 预期结果 | |---------|----------| | ... | ... |
复制代码

三、测试工程师必备的 Prompt 调试技巧

1. 坏味道检测——你的 Prompt 是否存在这些问题?


2. 可视化调试工具推荐

  • LangChain Prompt 调试器:跟踪 AI 推理过程

  • DeepPrompt 可视化工具:分析 Prompt 各段落影响力

  • W&B Prompts 监控:记录不同 Prompt 版本的输出差异


四、当提示工程遇见自动化测试

AI 生成自动化测试脚本的完整流水线

1. 需求输入:     "为RESTful API编写Pytest测试脚本,覆盖GET/POST/PUT/DELETE方法,包含认证头和参数化数据驱动"  
2. AI输出: - 生成基础测试类 - 自动参数化测试数据(含Edge Cases) - 生成HTML报告配置代码
3. 验证机制: - 对AI生成的脚本执行静态检查(Pylint) - 运行脚本并验证通过率 - 对未覆盖分支追加Prompt:“增加对响应时间超300ms的报警测试”
复制代码

五、避坑

  • 不要迷信结果:始终对 AI 输出进行静态检查+动态验证

  • 版本控制 Prompt:像管理测试用例一样管理 Prompt 迭代

  • 防御性设计:在 Prompt 中预置过滤条件,例如:“若需求不明确,请要求用户澄清”


在 AI 时代,Prompt 就是测试工程师的新型编程接口。掌握提示工程,意味着你可以:

  • 将自然语言转化为精准的测试需求

  • 构建自适应的测试资产生成流水线

  • 通过 AI 实现测试策略的动态防御


“不会写 Prompt 的测试工程师,就像只会用记事本写代码的程序员”—— 这句话正在成为现实。

用户头像

测试人

关注

专注于软件测试开发 2022-08-29 加入

霍格沃兹测试开发学社,测试人社区:https://ceshiren.com/t/topic/22284

评论

发布
暂无评论
AI大模型入门 三:5分钟速成Prompt公式,让AI生成代码的通过率从30%到90%_人工智能_测试人_InfoQ写作社区