AI软件测试
AI软件测试
一、概念理解
1. LLM大预言模型
一个受过海量教育、掌握人类全部知识的超级大脑——但仅仅是一个大脑,不是助手,不可以指挥它做事
主要分类两类Base LLMs基础大模型和Instruction-Tunes LLMs指令微调大模型
先有 Base LLM → 再对它做指令微调(Instruction Tuning + RLHF)→ 得到 Instruction-Tuned LLM
日常使用的 ChatGPT、Claude、文心一言,全部都是 Instruction-Tuned LLMs。指令越清晰,它的能力发挥得越充分。
2. OLM
具体可用的模型示例,比如GPT-4,Claude
3.提示词工程
向大脑下达清晰、准确、可执行的指令
-
告诉模型扮演什么角色
-
告诉模型要做什么任务
-
输出什么格式
-
遵守什么规则
人类意图——大模型能力 之间的桥梁
4.API
不需要自己训练、部署、维护这个超级大脑,只需要一个接口,远程“租用”
流程:
提示词打包——通过API发给服务器——服务器用OLM处理——把结果返回
二、提示词
1.编写明确、具体的指令
核心不等于简短
长的提示词通常提供更多上下文,产生更符合预期的输出
常用策略如下:
| 策略 | 说明 |
|---|---|
| 使用分隔符 | 用 ---、"""、<tag> 明确区分不同内容块,避免AI混淆指令与内容 |
| 指定输出格式 | 明确要求输出 JSON、Markdown 表格、编号列表等结构化格式 |
| 检查条件 | 设置前置判断条件,让AI在满足/不满足条件时给出不同输出 |
| 少量样本示范(Few-shot) | 给出1~2个示例,让AI模仿风格和格式,输出更稳定 |
📌 eg1:使用分隔符——接口测试用例生成
用
"""把需求内容与指令隔开,AI就不会把需求文本当作指令的一部分来理解。
请根据以下用 """ 包裹的需求,为【订单支付接口】设计功能测试用例,
覆盖正常流程、参数异常、权限异常。
""" 需求说明:用户可通过余额、银行卡、微信支付完成订单付款,
支付成功后订单状态变更为"已支付",并触发发通知。 接口需校验支付方式
是否存在、金额是否合法、用户是否登录。 """
✅ 为什么有效: 分隔符让AI明确知道哪部分是"你的指令",哪部分是"待处理的内容",大幅减少理解偏差。
📌 eg2:要求结构化输出——测试用例设计 & 缺陷报告分析
明确指定输出格式,让结果可以直接复用,无需二次整理。
场景一:测试用例设计(JSON格式)
你是一位资深测试工程师。
请为【用户登录接口】设计测试用例,要求输出 JSON 格式,
每个用例包含以下五个字段:
case_id、test_scene、input_params、expected_status、expected_message
场景二:缺陷报告分析(表格格式)
请将以下缺陷描述整理成结构化表格,
包含【缺陷ID】【严重等级】【重现步骤】【预期结果】【实际结果】五列,
只输出表格。
✅ 为什么有效: 结构化输出让AI的结果可以直接导入工具或分享给团队,省去手工整理的时间。
📌 eg3:检查条件是否满足——测试日志分析
设置判断条件,让AI在不同情况下给出差异化响应,避免无效输出。
如果以下日志包含 "ERROR" 或 "FAIL" 字样,
则分析失败原因并给出修复建议;
否则输出"本次测试无失败记录"。
日志内容: ...(粘贴日志内容)...
✅ 为什么有效: 加入条件判断后,AI不会对正常日志也强行"分析问题",输出结果更精准,可信度更高。
📌 eg4:少量样本提示(Few-shot)——缺陷根因分析
给AI一个示例,它就能理解你期望的输出风格与结构,后续分析结果会高度一致。
请参考以下示例格式,分析新缺陷的根因和修复建议。
示例:
缺陷现象:支付成功但订单状态未更新。
根因:回调接口未正确处理幂等性,重复回调导致状态覆盖。
修复建议:在回调处理中加入分布式锁,确保同一订单只处理一次。
现在请分析以下新缺陷:
(粘贴新缺陷描述)
✅ 为什么有效: 示例锁定了输出的"三段式结构"(现象→根因→建议),AI会严格模仿,团队拿到的结果格式统一,方便归档和复盘。
2.给模型足够的时间思考
复杂任务需要思考时间,避免模型匆忙猜测导致错误
让AI一步步推理,而不是直接跳到结论
常用策略:
| 策略 | 说明 |
|---|---|
| 指定完成任务步骤 | 把任务拆解为有序步骤,让AI按顺序逐步完成,避免遗漏关键环节 |
| 让模型先自己求解 | 先让AI独立作答,再与已有内容对比,避免被错误前提带偏 |
📌 eg5:指定完成任务步骤
把复杂任务拆成清晰的步骤,AI就像在执行一份"操作手册",输出质量更稳定、更完整。
场景一:测试报告生成
请按以下步骤生成测试报告:
第一步:总结本次测试的核心结论(通过率、主要风险);
第二步:列出失败的测试用例及失败原因;
第三步:给出后续测试建议。
测试数据:...(粘贴数据)...
场景二:测试策略制定
请分三步完成:
-
识别需求文档中的高风险模块;
-
为每个高风险模块推荐测试方法(如边界值、等价类、错误推测);
-
输出测试优先级排序。
✅ 为什么有效: 指定步骤相当于给AI一个"思考框架",它不会跳步也不会遗漏,每一步的输出都是下一步的输入,最终结果逻辑更严密、内容更完整。
📌 eg6:让模型先自己求解——测试用例评审
先让AI独立完成任务,再与你提供的内容对比,能发现人工容易忽略的遗漏点。
请先独立设计【用户注册功能】的测试用例(不少于5条),
然后与我提供的已有用例列表进行对比,
指出已有用例遗漏的场景,并补充遗漏用例。
✅ 为什么有效: 如果直接把已有用例给AI让它"查漏补缺",它会被现有列表限制思路;先让AI独立设计,再做对比,能暴露出真正的盲区,评审质量更高。
3.模型的局限性
AI又是会一本正经地胡说八道——生成看似合理,实际上错误的内容,这就是幻觉
在测试过程,幻觉可能导致AI编造不存在的接口参数、虚构需求细节
📌 eg7:幻觉缓解策略
让AI"有据可查",是减少幻觉最有效的手段。
策略一:要求引用源文本——需求文答
仅根据以下需求文档回答问题。
如果答案不在文档中,请回复"需求文档中未提及"。
需求文档:...(粘贴文档内容)...
问题:当用户支付超时时,订单状态如何处理?
策略二:追溯回源文档——测试点提取
请从下方需求描述中提取测试点,
并在每个测试点后标注对应的原文段落编号。
需求描述:...(粘贴需求内容)...
✅ 为什么有效:
-
策略一通过"兜底回复"机制,让AI在信息不足时主动说"不知道"而非胡乱猜测
-
策略二通过"强制溯源"让每个测试点都有据可查,方便评审时核对,也能暴露AI是否真的理解了需求
4.迭代式提示开发
提示词工程是一个迭代优化过程,而非一次性写对
核心流程:
编写 Prompt → 运行获取结果 → 分析偏差 → 细化调整 → 重复至满意
实践建议:不要追求第一次写出完美指令。每次输出不理想时,反问自己"AI误解了哪个部分",针对性修改,几轮迭代后往往能得到满意的结果。
5.文本总结应用
掌握用LLM对大量文本进行摘要提炼的技巧,在测试工作中可用于
-
快速消化冗长的需求文档
-
从海量测试日志中提炼关键异常信息
-
总结多轮评审会议中的测试相关结论
💡 技巧:加上"提炼要点不超过5条,每条不超过20字"等约束,输出会更精炼可用。
6.文本推理应用
让LLM对文本进行分析,而非是生成
-
从需求文档中自动识别测试风险点
-
分析历史缺陷,推断系统的薄弱环节
-
对测试结果进行根因推断
💡 技巧:明确要求AI"给出推理依据",而不只是结论,这样输出可信度更高,也方便你判断是否合理。
7.文本转换应用
利用 LLM 进行格式转换、翻译、语法纠错等,在测试工作中可用于:
-
将非结构化错误日志转换为结构化缺陷报告
-
把自然语言需求转换为标准测试用例格式
-
跨语言接口文档的快速翻译与理解
传统方式痛点:这类任务以往需要通过大量正则表达式实现,开发难度大。LLM 几句话就能搞定。
8.文本扩展应用
掌握让 LLM 基于少量输入生成详细内容的方法,在测试工作中可用于:
-
从一句需求描述扩展为完整测试方案
-
基于一个接口描述自动生成多组测试数据
-
从缺陷标题展开为完整的缺陷分析报告
💡 技巧:给出"扩展方向"约束,如"重点考虑异常场景和边界值",避免AI扩展得漫无边际。
9.构建聊天机器人
掌握构建自定义对话系统的核心技术,在测试工作中可用于
-
搭建测试助手机器人(接入飞书/钉钉)
-
构建持续上下文的缺陷分析助手
-
实现多轮对话式的需求澄清流程
系统提示词(System Prompt)决定了机器人的”人设“和行为边界,写好他是构建可靠测试机器人的基础
10.提示词功能小姐
对测试人员,掌握两大核心资产
-
两大提示词原则:写清晰指令 + 给模型思考时间
-
五大应用能力:总结、推理、转换、扩展、对话——如何在测试场景落地
| 能力 | 测试价值 |
|---|---|
| 清晰指令 | 让AI稳定产出符合规范的用例和报告 |
| 思考时间 | 提升复杂场景分析(如根因定位)的准确率 |
| 五大应用 | 覆盖测试全流程:需求分析→用例生成→执行分析→报告产出 |
| 迭代思维 | 把每一次不满意的输出,变成提升提示词质量的机会 |
三、如何将提示词灵活运用到测试工作中
将提示词灵活运用到测试工作的关键在于:根据任务类型、目标输出和复杂度,动态组合不同策略,而非生硬套用。
1.按测试场景选择技巧组合
| 测试场景 | 推荐技巧组合 |
|---|---|
| 单接口用例生成 | 角色设定 + 分隔符 + 结构化输出 |
| 缺陷日志分析 | 指定步骤 + 防幻觉约束 |
| 批量测试数据构造 | 少量样本 + 结构化输出(JSON) |
| 需求评审风险识别 | 文本推理 + 指定步骤 |
| 测试报告生成 | 文本总结 + 格式转换 |
2 快速决策:如何为当前任务选择技巧
① 明确输出形式
-
如果需要程序解析 → 用结构化输出(JSON/表格)
-
如果给人阅读 → 用自然语言 + 分隔符清晰排版
② 判断任务复杂程度
-
简单任务(如单个用例生成)→ 分隔符 + 简单指令
-
复杂任务(如多轮分析)→ 指定步骤 + 让模型先自己求解
③ 是否需要格式统一
-
需要团队复用 → 使用少量样本定义统一格式,让AI模仿
-
一次性任务 → 直接用描述性指令
④ 防止幻觉
-
当答案必须基于给定材料时 → 加上"只基于以上内容作答,不要推测"
3 从"会用"到"活用"的进阶方法
初级:从固定模板开始
-
把常用提示词片段保存为团队模板,使用时替换关键信息(接口名、需求内容)
-
重点练习分隔符和结构化输出,这两者能覆盖80%的日常用例生成和报告需求
中级:动态组合策略
-
针对一个任务,尝试同时使用2~3种技巧,如"分隔符 + 指定步骤 + 结构化输出",观察输出质量变化
-
建立自己的"提示词片段库",按场景分类(用例设计、缺陷分析、数据构造),方便快速拼接
高级:迭代优化与模板化
-
对常用任务建立标准提示词模板,加入检查条件(如"如果无法确定根因,输出'需补充日志'"),让AI在信息不足时不再瞎猜
-
将少量样本中的示例替换为团队真实案例,使输出风格更贴近实际需要
4 融入团队工作流
① 让提示词成为团队资产
-
在知识库(Confluence、Git)中维护《测试AI提示词模板库》,记录每个模板的适用场景、技巧说明和示例
-
新人入职时,通过模板快速上手AI辅助测试
② 与现有工具结合
-
将提示词嵌入飞书/钉钉机器人,如输入
/testcase 订单支付自动调用预设模板生成用例 -
在CI/CD中,用提示词让AI自动分析测试失败日志,并将分析结果作为缺陷描述的一部分
③ 持续反馈优化
-
当AI输出不符合预期时,不要只抱怨,而是反推是哪个技巧没用对——是分隔符不够清晰?还是缺少样本?然后迭代修改提示词
四、如果本身对任务理解不够深,没办法清晰下达指令,该如何解决?
大家在实际工作中,可能会遇到这样的情况:面对某些专业任务,自己对这个任务理解都不够深,没办法清晰地下达指令。这个时候怎么解决?
遇到这种情况,把AI当作可以随时追问、协助梳理思路的专家助手。通过多轮对话,与AI共同探索并定义任务。
1 具体四步法
第一步:承认模糊,先抛"种子指令"
不要试图一步写出完美提示词,而是用最朴素的自然语言告诉AI你的目标,哪怕它不专业、不完整。
示例:
我想用AI帮我们测试团队做点事情,但我不太确定具体能怎么用。你能先给我一些常见的AI辅助测试的场景吗?我可能从中找到适合我们团队的方向。
为什么有效: 降低心理门槛,快速启动对话;AI会主动提供可能性,启发你的思路。
第二步:让AI反向提问,帮你澄清需求
当你给出模糊目标后,主动要求AI以提问的方式帮你细化。
示例:
我们想利用AI来分析测试失败日志,但我不知道该怎么设计提示词。请先问我几个关键问题,帮我理清需求。
AI可能会问:
-
你们现在如何处理失败日志?人工分析耗时多少?
-
希望AI输出什么格式(摘要、根因、修复建议)?
-
日志来源是Jenkins、测试框架还是自定义?
-
是否需要结合代码上下文?
你只需如实回答,AI就能基于答案逐步构建出清晰的提示词。
第三步:让AI先"试写"一版,你再迭代修改
让AI根据当前已澄清的部分,先输出一个草稿。你不一定能评价它是否完美,但可以判断"哪里不对劲"。
示例:
根据刚才我们讨论的,请你先写一个用于分析测试失败日志的提示词模板。我看看哪些地方需要调整。
AI输出后,你可以说:
"这个模板的第二步提到了'定位失败代码行',但我们的日志没有代码行号,需要改成'定位失败步骤名称'。"
通过这种"点对点修正",你不需要懂全局,只需在局部给出反馈,AI就能不断逼近你的真实需求。
第四步:用"参考文档 + 角色扮演"弥补领域知识
如果你连问题都问不出来,说明对该领域的专业术语、关键要素不熟悉。此时可以:
① 给AI提供参考材料:
这是一份我们之前的测试报告,你能从中总结出我们测试团队在失败分析时最常关注的几个维度吗?
② 让AI扮演专家角色:
你现在是一位资深的性能测试专家,我团队准备引入AI辅助分析性能瓶颈,但我对性能测试的具体维度了解不深。请先列出你在分析性能测试结果时会关注哪些关键指标,我再根据这些来设计提示词。
2 核心心法
当你对任务理解不深时,请记住:
-
✅ 你不需要一次性给出完美指令
-
✅ 你只需要能识别AI输出中"合理"与"不合理"的部分
-
✅ 你只需要知道如何用"不对,应该是……"这样的反馈让AI自我修正
经过几次这样的协作,你不仅完成了任务,还会潜移默化地加深对该领域的理解,下次就能自己写出更精准的指令了。
总结
提示词工程不是程序员的专利,测试工程师同样可以系统掌握并高效落地。
两大核心原则:
-
写清晰、具体的指令(明确 ≠ 简短)
-
给模型足够的思考时间(复杂任务拆步骤)
五大应用能力: 总结 → 推理 → 转换 → 扩展 → 对话,覆盖测试全流程
7个实用提示词模板速查:
| 编号 | 技巧 | 适用场景 |
|---|---|---|
| eg1 | 使用分隔符 | 接口测试用例生成 |
| eg2 | 结构化输出 | 用例设计、缺陷报告分析 |
| eg3 | 检查条件 | 测试日志分析 |
| eg4 | Few-shot 示范 | 缺陷根因分析 |
| eg5 | 指定任务步骤 | 测试报告生成、测试策略制定 |
| eg6 | 模型先自行求解 | 测试用例评审 |
| eg7 | 幻觉缓解策略 | 需求问答、测试点提取 |
一个核心心法:
AI不会替代测试工程师,但会用AI的测试工程师,会替代不会用的。
AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。
更多推荐



所有评论(0)