《软件测试方法和技术第4版_目录》整书文本(带页码标注) 生成时间:2026-09-09 23:42:35 共 10 页 12409 字 排序依据:VL 印刷页码(章首页置前) 正文(剔除页眉页脚页码) ────────── 第 10 页(原书页码 9) ────────── 【页眉】9 软件测试方法和技术(第4版) 14.3 AI 助力软件测试……………………………………………………………… 396 14.3.1 基于图像识别技术的 UI 测试 ………………………………………… 396 14.3.2 基于 AI 的、全自动化的 API 测试 …………………………………… 398 14.3.3 AI 助力代码深度分析 ……………………………………………… 401 14.3.4 AI 驱动测试 ………………………………………………………… 402 14.3.5 AI 测试工具 ………………………………………………………… 403 14.4 软件测试工具的未来 ……………………………………………………… 405 14.4.1 软件测试工具的发展趋势 …………………………………………… 405 14.4.2 Codeless 测试自动化 ……………………………………………… 407 14.5 彻底实现持续测试 ………………………………………………………… 410 14.5.1 重新理解持续测试 ………………………………………………… 411 14.5.2 持续测试实现框架 ………………………………………………… 411 14.5.3 持续测试成熟度模型 ……………………………………………… 417 14.5.4 彻底的持续测试 …………………………………………………… 418 14.6 软件测试发展趋势 ………………………………………………………… 419 14.6.1 MBT 的应用前景 …………………………………………………… 419 14.6.2 软件测试六大趋势 ………………………………………………… 420 小结 ………………………………………………………………………………… 420 附录………………………………………………………………………………… 422 参考文献…………………………………………………………………………… 423 ────────── 第 6 页(原书页码 11) ────────── 【页眉】软件测试方法和技术(第4版) 7.5.3 A/B 测试 ............................ 230 小结 ...................................... 232 思考题 ...................................... 233 实验4 性能测试实验 ............................ 233 实验5 安全性测试实验 ............................ 234 第8章 软件本地化测试 ............................ 236 8.1 什么是软件本地化 ............................ 237 8.1.1 软件本地化与国际化 ............................ 237 8.1.2 字符集问题 ............................ 238 8.1.3 软件国际化标准 ............................ 239 8.1.4 软件本地化基本步骤 ............................ 240 8.1.5 软件本地化测试 ............................ 241 8.2 翻译验证 .................................. 243 8.3 本地化测试的技术问题 ............................ 243 8.3.1 数据格式 .................................. 243 8.3.2 页面显示和布局 ............................ 248 8.3.3 配置和兼容性问题 ............................ 249 8.4 本地化的功能测试 ............................ 251 小结 .......................................... 251 思考题 .......................................... 252 第9章 测试自动化及其框架 ............................ 253 9.1 测试自动化的内涵 ............................ 253 9.1.1 手工测试的局限性 ............................ 254 9.1.2 什么是测试自动化 ............................ 254 9.1.3 软件测试自动化的优势 ............................ 255 9.2 测试自动化实现原理 ............................ 256 9.2.1 代码分析 .................................. 257 9.2.2 脚本技术 .................................. 258 9.2.3 对象识别 .................................. 260 9.2.4 接口调用 .................................. 261 9.2.5 自动比较技术 .............................. 262 9.3 测试自动化的实施 ............................ 263 9.3.1 测试自动化系统的构成 ............................ 263 9.3.2 测试工具的分类 ............................ 265 9.3.3 测试工具的选择 ............................ 265 9.3.4 测试框架的构成和分类 ............................ 266 9.3.5 自动化测试的分层策略 ............................ 267 9.4 API 自动化测试框架 ............................ 270 ────────── 第 5 页(原书页码 VI) ────────── 6.2.2 Web 客户端的 UI 自动化测试——基于 Selenium 测试框架 ……………… 162 6.2.3 Web 客户端的 UI 自动化测试——基于 Cypress 测试框架 ……………… 169 6.2.4 Android 应用的 UI 自动化测试 ………………………………………… 172 6.2.5 iOS 应用的 UI 自动化测试 …………………………………………… 178 6.2.6 移动应用测试工具 Appium ……………………………………………… 182 6.3 回归测试 …………………………………………………………………… 186 6.3.1 回归测试的目的 ………………………………………………………… 187 6.3.2 回归测试的策略及其方法 ……………………………………………… 187 6.4 精准测试 …………………………………………………………………… 188 小结 ……………………………………………………………………………… 189 思考题 …………………………………………………………………………… 189 实验 3 系统功能测试 …………………………………………………………… 190 第 7 章 专项测试 ………………………………………………………………… 191 7.1 性能测试 …………………………………………………………………… 191 7.1.1 系统性能指标和测试类型 ……………………………………………… 192 7.1.2 系统负载及其模式 ……………………………………………………… 194 7.1.3 性能测试的基本过程 …………………………………………………… 195 7.1.4 性能测试结果分析 ……………………………………………………… 195 7.1.5 Web 性能测试 …………………………………………………………… 196 7.1.6 压力测试 ………………………………………………………………… 199 7.1.7 容量测试 ………………………………………………………………… 200 7.1.8 前端性能测试工具 ……………………………………………………… 201 7.1.9 后端性能测试工具 ……………………………………………………… 204 7.2 安全性测试 ………………………………………………………………… 207 7.2.1 安全性测试的范围与方法 ……………………………………………… 208 7.2.2 贯穿研发生命周期的安全性测试 ……………………………………… 211 7.2.3 Web 安全性测试 ………………………………………………………… 213 7.2.4 安全性测试工具 ………………………………………………………… 215 7.3 兼容性测试 ………………………………………………………………… 218 7.3.1 软件兼容性测试 ………………………………………………………… 218 7.3.2 数据共享兼容性测试 …………………………………………………… 220 7.3.3 硬件兼容性测试 ………………………………………………………… 221 7.4 可靠性测试 ………………………………………………………………… 222 7.4.1 可靠性测试方法 ………………………………………………………… 222 7.4.2 容错性测试 ……………………………………………………………… 223 7.4.3 数据库并发控制测试 …………………………………………………… 224 7.5 易用性测试 ………………………………………………………………… 226 7.5.1 良好的 UI 要素 ………………………………………………………… 226 7.5.2 用户体验测试方法和模型 ……………………………………………… 229 ────────── 第 4 页 ────────── 5.2.3 字符串或数组越界错误 5.2.4 资源不合理使用 5.2.5 不当使用 synchronized 导致系统性能下降 5.3 代码静态检测工具 5.3.1 FindBugs 检查代码缺陷 5.3.2 PMD 检查代码缺陷 5.3.3 Checkstyle 检查代码风格 5.3.4 SonarQube 构建自动的代码扫描 5.4 单元测试的目标和任务 5.4.1 为何要进行单元测试 5.4.2 单元测试的目标和要求 5.4.3 单元测试的任务 5.4.4 驱动程序与桩程序 5.4.5 类测试 5.5 分层单元测试 5.5.1 Action 层的单元测试 5.5.2 数据访问层的单元测试 5.5.3 Servlet 的单元测试 5.6 单元测试工具 5.6.1 JUnit 介绍 5.6.2 IntelliJ IDEA 中的 JUnit 应用举例 5.6.3 Mock 框架 Mockito 5.6.4 测试覆盖率工具 JaCoCo 5.6.5 JUnit 5 + Gradle 构建自动的单元测试 5.6.6 开源的单元测试工具 5.7 系统集成的模式与方法 5.7.1 单体架构的集成测试 5.7.2 微服务架构的集成测试 5.7.3 持续集成及其测试 小结 思考题 实验2 单元测试实验 第6章 系统功能测试 6.1 系统功能测试思路和方法 6.1.1 功能测试要求和基本思路 6.1.2 面向接口的功能测试 6.1.3 面向 UI 的功能测试 6.2 功能测试自动化 6.2.1 基于接口的自动化测试 ────────── 第 3 页 ────────── 【页眉】目 录 3.5.1 常见的缺陷模式 3.5.2 DPBT的自动化实现 3.6 基于模型的测试 3.6.1 功能图法 3.6.2 模糊测试方法 3.7 形式化测试方法 3.7.1 形式化方法 3.7.2 形式化验证 3.7.3 扩展有限状态机方法 小结 思考题 第4章 软件测试流程和规范 4.1 传统的软件测试过程 4.1.1 W模型 4.1.2 TMap 4.2 敏捷测试过程 4.2.1 敏捷测试的价值观和原则 4.2.2 传统测试和敏捷测试的区别 4.2.3 敏捷测试流程 4.2.4 SBTM 4.3 软件测试学派 4.4 测试过程改进 4.4.1 TMMi 4.4.2 TPI 4.4.3 CTP 4.4.4 STEP 4.5 软件测试规范 小结 思考题 第2篇 软件测试的技术 第5章 单元测试与集成测试 5.1 代码静态测试 5.1.1 编码的标准和规范 5.1.2 代码评审 5.2 代码评审案例分析 5.2.1 空指针保护错误 5.2.2 数据类型转换错误 ────────── 第 2 页(原书页码 II) ────────── 【页眉】软件测试方法和技术(第4版) 2.1.5 软件缺陷的构成 24 2.1.6 修复软件缺陷的代价 25 2.2 软件测试的分类 26 2.3 静态测试和动态测试 26 2.3.1 产品评审 28 2.3.2 静态分析 29 2.3.3 验证和确认 29 2.4 主动测试和被动测试 30 2.5 黑盒测试和白盒测试 30 2.6 软件测试层次 31 2.7 软件测试工作范畴 33 2.7.1 测试分析 34 2.7.2 测试策略制订 35 2.7.3 测试计划 35 2.7.4 测试设计 36 2.7.5 测试执行 36 2.7.6 测试结果和过程评估 37 小结 39 思考题 39 实验1 完成一个简单的测试过程 40 第3章 软件测试方法 42 3.1 基于直觉和经验的方法 42 3.1.1 Ad-hoc 测试方法和 ALAC 测试方法 43 3.1.2 错误推测法 43 3.2 基于输入域的方法 44 3.2.1 等价类划分法 45 3.2.2 边界值分析法 45 3.3 基于组合及其优化的方法 47 3.3.1 判定表法 49 3.3.2 因果图法 50 3.3.3 Pairwise 方法 51 3.3.4 正交实验法 53 3.4 基于逻辑覆盖的方法 54 3.4.1 判定覆盖 55 3.4.2 条件覆盖 55 3.4.3 判定-条件覆盖 57 3.4.4 条件组合覆盖 57 3.4.5 基本路径覆盖 58 3.5 基于缺陷模式的测试 59 ────────── 第 1 页(原书页码 18) ────────── 【页眉】目录 第1篇 软件测试的原理与方法 第1章 引论 ........................................................................................ 3 1.1 软件测试的必要性 ...................................................................... 3 1.1.1 迪士尼并不总是带来笑声 .................................................... 3 1.1.2 一个缺陷造成了数亿美元的损失 ........................................ 4 1.1.3 火星探测飞船坠毁 ................................................................ 4 1.1.4 人类容易得健忘症——再次忽视了集成测试 .................... 5 1.1.5 错误指令造成骑士资本集团损失4.4亿美元 .................... 6 1.1.6 AWS宕机整整4小时 ................................................................ 6 1.1.7 预订的酒店住不进去导致旅客露宿街头 ............................ 7 1.1.8 Uber泄露个人隐私导致用户要求赔偿3亿多元 ................ 7 1.1.9 更多的悲剧 ............................................................................ 8 1.2 为什么要进行软件测试 .............................................................. 8 1.3 什么是软件测试 .......................................................................... 9 1.3.1 软件测试学科的形成 .......................................................... 10 1.3.2 正反两方面的争辩 .............................................................. 10 1.3.3 软件测试的定义 .................................................................. 11 1.3.4 软件测试的其他观点 .......................................................... 12 1.4 测试和质量保证的关系 .............................................................. 13 1.5 测试和开发的关系 ...................................................................... 14 1.6 测试驱动开发的思想 .................................................................. 15 小结 .................................................................................................... 17 思考题 ................................................................................................ 17 第2章 软件测试的基本概念 .................................................................. 18 2.1 软件缺陷 ...................................................................................... 19 2.1.1 软件质量的内涵 .................................................................. 19 2.1.2 软件缺陷的定义 .................................................................. 21 2.1.3 软件缺陷的测试判断准则 .................................................. 23 2.1.4 软件缺陷的产生 .................................................................. 23 ────────── 第 9 页 ────────── 13.2 软件缺陷的描述 13.2.1 软件缺陷的生命周期 13.2.2 严重性和优先级 13.2.3 缺陷的其他属性 13.2.4 完整的缺陷信息 13.2.5 缺陷描述的基本要求 13.2.6 缺陷报告示例 13.3 软件缺陷跟踪和分析 13.3.1 软件缺陷处理技巧 13.3.2 缺陷趋势分析 13.3.3 缺陷分布分析 13.3.4 缺陷跟踪方法 13.3.5 软件缺陷跟踪系统 13.4 产品质量评估与度量 13.4.1 基于缺陷的质量度量 13.4.2 经典的种子公式 13.4.3 基于缺陷清除率的估算方法 13.4.4 软件质量的度量 13.5 测试的评估与报告 13.5.1 测试过程的评估 13.5.2 测试充分性的评估 13.5.3 测试报告 小结 思考题 实验9 安装和使用缺陷跟踪系统 MantisBT 实验10 基于 MeterSphere 的综合实验 第14章 软件测试展望 14.1 大数据的测试 14.1.1 大数据的特性与挑战 14.1.2 大数据的测试方法 14.1.3 大数据的测试实践 14.1.4 大数据的测试工具 14.2 AI系统的测试 14.2.1 AI系统的不确定性和不可解释性 14.2.2 AI系统的白盒测试 14.2.3 AI系统的算法验证 14.2.4 示例:针对智能语音的设计与执行 ────────── 第 7 页 ────────── 9.4.1 API 自动化测试框架 Karate 270 9.4.2 Karate 测试 RESTful API 的实例 273 9.5 移动应用的自动化测试框架 275 9.5.1 自动化测试的实现方式 275 9.5.2 Appium 及其工作原理 276 9.5.3 Airtest 自动化测试框架 277 小结 279 思考题 280 实验 6 部署自动化测试框架 280 第 3 篇 软件测试项目实践 第 10 章 测试需求分析与测试计划 283 10.1 测试的目标和准则 283 10.2 测试需求分析 285 10.2.1 测试需求分析的基本方法 285 10.2.2 测试需求分析的技术 286 10.2.3 功能测试范围分析 287 10.2.4 非功能性的系统测试需求 288 10.3 测试项目的估算与进度安排 290 10.3.1 测试工作量估算 291 10.3.2 工作分解结构表方法 292 10.3.3 资源的安排 294 10.3.4 测试里程碑和进度表 294 10.4 测试风险和测试策略 295 10.4.1 测试风险管理计划 296 10.4.2 基于风险的测试 297 10.4.3 测试策略的确定 297 10.5 测试计划的内容与编制 299 10.5.1 测试计划的内容 300 10.5.2 测试项目的计划过程 301 10.5.3 制订有效的测试计划 302 小结 302 思考题 303 实验 7 制订测试计划 304 第 11 章 设计和维护测试用例 304 11.1 测试用例的构成及其设计 305 11.1.1 测试用例的重要性 305 11.1.2 测试用例设计书写标准 305 ────────── 第 8 页(原书页码 352) ────────── 【页眉】软件测试方法和技术(第4版) 11.1.3 测试用例设计的考虑因素 ................................ 307 11.1.4 测试用例设计的基本原则 .................................. 310 11.2 测试用例的组织和跟踪 ...................................... 311 11.2.1 测试用例的属性 ............................................ 312 11.2.2 测试套件及其构成方法 ...................................... 314 11.2.3 跟踪测试用例 .............................................. 316 11.2.4 维护测试用例 .............................................. 317 11.2.5 测试用例的覆盖率 .......................................... 318 小结 .................................................................. 318 思考题 ................................................................ 319 第12章 部署测试基础设施 ............................................ 319 12.1 测试基础设施的重要性 ........................................ 320 12.1.1 测试基础设施在不同阶段的作用 ............................ 320 12.1.2 测试基础设施影响研发效能 ................................ 321 12.1.3 测试基础设施保障运维 ...................................... 322 12.2 测试基础设施要素 .............................................. 322 12.2.1 硬件资源 .................................................. 323 12.2.2 网络资源 .................................................. 323 12.2.3 软件资源 .................................................. 325 12.2.4 数据资源 .................................................. 327 12.3 虚拟化技术的应用 .............................................. 328 12.3.1 虚拟机技术 ................................................ 329 12.3.2 QEMU-KVM 虚拟机解决方案 .................................. 330 12.3.3 容器技术与 Docker .......................................... 331 12.3.4 集群管理与 Kubernetes ...................................... 332 12.3.5 服务虚拟化及其工具 ........................................ 333 12.4 测试基础设施的自动部署 ........................................ 335 12.4.1 基础设施即代码 ............................................ 335 12.4.2 基础架构的自动部署 ........................................ 336 12.4.3 应用程序容器化及集群部署 .................................. 337 12.4.4 应用程序的自动配置 ........................................ 339 12.4.5 CI/CD 流水线 .............................................. 340 小结 .................................................................. 350 思考题 ................................................................ 351 实验 8 Jenkins+Docker 实现 Java 应用的持续构建 ...................... 351 第13章 测试执行与结果评估、报告 .................................... 353 13.1 测试软件执行与跟踪 ............................................ 353 13.1.1 测试执行过程的要点 ........................................ 354