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就像在执行一份"操作手册",输出质量更稳定、更完整。

场景一:测试报告生成

请按以下步骤生成测试报告:

第一步:总结本次测试的核心结论(通过率、主要风险);

第二步:列出失败的测试用例及失败原因;

第三步:给出后续测试建议。

测试数据:...(粘贴数据)...

场景二:测试策略制定

请分三步完成:

  1. 识别需求文档中的高风险模块;

  2. 为每个高风险模块推荐测试方法(如边界值、等价类、错误推测);

  3. 输出测试优先级排序。

✅ 为什么有效: 指定步骤相当于给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.提示词功能小姐

对测试人员,掌握两大核心资产

  1. 两大提示词原则:写清晰指令 + 给模型思考时间

  2. 五大应用能力:总结、推理、转换、扩展、对话——如何在测试场景落地

能力测试价值
清晰指令让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自我修正

经过几次这样的协作,你不仅完成了任务,还会潜移默化地加深对该领域的理解,下次就能自己写出更精准的指令了。


总结

提示词工程不是程序员的专利,测试工程师同样可以系统掌握并高效落地。

两大核心原则:

  1. 写清晰、具体的指令(明确 ≠ 简短)

  2. 给模型足够的思考时间(复杂任务拆步骤)

五大应用能力: 总结 → 推理 → 转换 → 扩展 → 对话,覆盖测试全流程

7个实用提示词模板速查:

编号技巧适用场景
eg1使用分隔符接口测试用例生成
eg2结构化输出用例设计、缺陷报告分析
eg3检查条件测试日志分析
eg4Few-shot 示范缺陷根因分析
eg5指定任务步骤测试报告生成、测试策略制定
eg6模型先自行求解测试用例评审
eg7幻觉缓解策略需求问答、测试点提取

一个核心心法:

AI不会替代测试工程师,但会用AI的测试工程师,会替代不会用的。

Logo

AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。

更多推荐