大模型驱动的软件测试:从理论到实践

978-7-115-67429-6
作者: 马克·温特林厄姆(Mark Winteringham)
译者: 茹炳晟王海鹏方佳璐
编辑: 卜一凡

图书目录:

第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

详情

大语言模型(LLM)的爆炸式增长使得AI 使用门槛大幅降低,LLM在软件开发领域得到广泛应用,也为软件测试带来变革与挑战 。本书旨在帮助软件测试工程师用LLM提升测试能力,围绕LLM的思维模式、技术和上下文三个核心要素展开。第一部分介绍LLM在测试中的作用及价值,探讨其内部机制与提示词工程概念,分析AI、自动化和测试的关系;第二部分展示测试活动与LLM辅助工具结合的方法,如提升代码质量、增强测试计划能力、创建测试数据、应用于探索性测试等;第三部分阐述上下文对LLM的重要性,介绍添加上下文的技术,如构建RAG框架、微调模型等。 本书适合掌握一定自动化测试基本概念、具备探索性测试基本经验以及数据管理和相关数据结构中级知识,对 YAML 格式化和命令行工具有基本了解的质量保证工程师和软件测试工程师,以及希望进一步了解 LLM 如何帮助生成代码和测试自动化的开发人员阅读。

图书摘要

相关图书

DeepSeek原理与项目实战大模型部署、微调与应用开发
DeepSeek原理与项目实战大模型部署、微调与应用开发
软件工程3.0:大模型驱动的研发新范式
软件工程3.0:大模型驱动的研发新范式
大模型工程化:AI驱动下的数据体系
大模型工程化:AI驱动下的数据体系
AI辅助编程实战
AI辅助编程实战
Kubernetes修炼手册(第2版)
Kubernetes修炼手册(第2版)
软件开发中的决策:权衡与取舍
软件开发中的决策:权衡与取舍

相关文章

相关课程