第1部分 思维模式:与LLM建立积极的关系
第1章 利用大模型来辅助测试 3
1.1 认识AI工具对测试和
开发的影响 4
1.1.1 数据生成 4
1.1.2 自动化测试构建 5
1.1.3 测试设计 5
1.2 利用LLM创造价值 5
1.2.1 交付价值的模式 5
1.2.2 结合人类和AI的能力 6
1.2.3 对LLM保持怀疑态度 11
小结 11
第2章 大模型和提示词工程 13
2.1 LLM解释 14
2.2 降低使用LLM的风险 16
2.2.1 幻觉 16
2.2.2 数据来源 16
2.2.3 数据隐私 17
2.3 利用提示词工程改善结果 18
2.4 检验提示词工程的原则 20
2.4.1 原则1:撰写清晰而具体的提示词 20
2.4.2 策略1:使用分隔符 20
2.4.3 策略2:要求结构化输出 21
2.4.4 策略3:检查假设 22
2.4.5 策略4:少样本提示词 25
2.4.6 原则2:给模型“思考”的时间 25
2.4.7 策略1:明确完成任务的步骤 26
2.4.8 策略2:引导模型先找出自己的解决方案 27
2.5 尝试各种LLM 29
2.5.1 比较各类LLM 29
2.5.2 尝试流行的LLM 30
2.6 创建提示词库 32
2.7 使用提示词解决问题 33
小结 34
第3章 人工智能、自动化和测试 35
3.1 测试的价值 35
3.1.1 不同的测试思维方式 36
3.1.2 更全面的测试方法 38
3.2 工具如何帮助测试 39
3.2.1 自动化偏差 39
3.2.2 有选择地使用工具 39
3.3 了解何时在测试中使用LLM 41
3.3.1 生成能力 41
3.3.2 转换能力 42
3.3.3 增强能力 43
3.3.4 测试中使用的LLM 43
小结 44
第2部分 技术:测试中的任务识别和提示词工程
第4章 面向开发人员的AI辅助测试 47
4.1 自动化开发人员的崛起 48
4.2 与LLM协作 50
4.2.1 分析想法 50
4.2.2 分析代码 53
4.2.3 认识到模拟的重要性 55
4.3 利用AI辅助提高产品质量 55
4.4 利用LLM创建第一个TDD循环 56
4.4.1 准备工作 57
4.4.2 循环1:保存工期表条目 59
4.4.3 循环2:检索工时表条目 60
4.4.4 循环3:计算项目工时 62
4.4.5 重构代码 63
4.5 使用LLM改进文档和沟通 68
4.5.1 生成代码注释 69
4.5.2 生成发布说明 73
4.6 寻求与代码助手之间的平衡 76
小结 76
第5章 AI辅助的测试计划 78
5.1 现代测试中测试计划的定义 79
5.1.1 测试计划、LLM和影响域 79
5.2 通过模型进行重点引导 80
5.2.1 不精准的提示词导致不精准的建议 80
5.2.2 什么是模型,为什么模型可以帮助我们理解 81
5.3 结合模型和LLM来协助测试计划 82
5.3.1 创建明确提示词的模型 82
5.3.2 尝试不同的模型类型 88
5.4 LLM与测试用例 91
5.4.1 对生成的风险和测试用例持适当的怀疑态度 93
小结 93
第6章 利用AI快速创建数据 94
6.1 使用LLM生成和转换数据 94
6.1.1 引导LLM生成简单数据集 95
6.1.2 将测试数据转换为不同格式 99
6.2 使用LLM处理复杂的测试数据 101
6.2.1 在提示词中使用格式标准 101
6.2.2 作为提示词引导的SQL导出 106
6.3 将LLM设置为测试数据管理器 109
6.3.1 设置OpenAI账户 109
6.3.2 连接OpenAI 111
6.4 从测试数据生成中获益 115
小结 116
第7章 利用AI加速和改进UI自动化 117
7.1 快速创建UI自动化 117
7.1.1 设置项目 121
7.1.2 利用ChatGPT辅助创建初始校验 123
7.1.3 从生成的代码中填补空白 129
7.2 改进现有的UI自动化 131
7.2.1 更新状态管理以使用适当的层 131
7.2.2 熟练使用AI工具 136
小结 136
第8章 利用AI辅助探索性测试 137
8.1 使用LLM组织探索性测试 138
8.1.1 用LLM增强已识别的风险 138
8.1.2 用LLM扩充准则列表 142
8.2 在探索性测试中使用LLM 144
8.2.1 建立理解 145
8.2.2 创建会话的数据要求 147
8.2.3 探索和跟进缺陷 151
8.2.4 使用LLM协助探索性测试 153
8.3 用LLM总结测试记录 154
小结 158
第9章 作为测试助手的AI智能体 159
9.1 理解AI智能体和LLM 159
9.1.1 AI智能体的定义 160
9.1.2 智能体如何与LLM配合工作 160
9.2 创建AI测试助手 161
9.2.1 设置虚拟AI智能体 162
9.2.2 赋予AI智能体执行函数 165
9.2.3 将工具串联起来 169
9.3 利用AI测试助手向前迈进 172
9.3.1 AI测试助手示例 172
9.3.2 应对与智能体合作的挑战 175
小结 176
第3部分 上下文:为测试上下文定制LLM
第10章 引入定制的LLM 179
10.1 LLM和上下文面临的挑战 179
10.1.1 词元、上下文窗口和限制 181
10.1.2 嵌入上下文作为解决方案 183
10.2 将上下文进一步嵌入提示词和LLM中 183
10.2.1 RAG 184
10.2.2 微调LLM 185
10.2.3 比较两种方法 188
10.2.4 结合RAG和微调 190
小结 190
第11章 基于RAG的上下文提示词 192
11.1 利用RAG扩展提示词 192
11.2 构建RAG框架 194
11.2.1 构建我们自己的RAG框架 195
11.2.2 测试RAG框架 203
11.3 提升RAG的数据存储能力 205
11.3.1 使用向量数据库 205
11.3.2 建立基于向量数据库的RAG 207
11.3.3 测试基于向量数据库的RAG框架 209
11.3.4 继续推进RAG框架 211
小结 212
第12章 使用业务领域知识微调LLM 213
12.1 探索微调过程 213
12.1.1 微调过程概览 214
12.1.2 目标设定 214
12.2 执行微调环节 215
12.2.1 准备训练数据 215
12.2.2 预处理和设置 219
12.2.3 使用微调工具 224
12.2.4 启动微调运行 224
12.2.5 测试微调结果 225
12.2.6 微调的经验教训 228
小结 228
附录A 设置和使用ChatGPT 230
附录B 设置和使用GitHub Copilot 233
B.1 设置Copilot 233
B.1.1 设置Copilot账户 234
B.1.2 安装Copilot插件 234
B.1.3 授予Copilot账户访问权限 234
B.2 使用Copilot 236
B.2.1 探索建议 236
附录C 探索性测试记录 238