软件测试技术大全:测试基础 流行工具 项目实战(第二版)

软件测试技术大全:测试基础 流行工具 项目实战(第二版)

软件测试的基础

1 软件测试行业

1.1 软件测试的起源
1.1.1 第一个Bug的故事
1.1.2 几个导致严重错误的Bug
1.1.3 软件测试的起源
1.2 软件测试的发展
1.2.1 软件调试
1.2.2 独立的软件测试
1.2.3 软件测试的第一次定义
1.2.4 软件测试成为专门的学科
1.2.5 开发与测试的融合趋势
1.2.6 为什么软件测试发展比较缓慢
1.3 软件测试行业的现状和前景
1.3.1 国内测试行业现状
1.3.2 测试人员的现状
1.3.3 软件测试的前景
1.4 小结
1.5 新手入门须知
1.6 模拟面试问答

2 软件测试的组织

2.1 测试的组织形式
2.1.1 微软的经验教训
2.1.2 最简单的软件测试组织
2.1.3 组织形式的分类方式
2.1.4 综合型的测试组织
2.2 融入测试组织
2.2.1 根据开发的模式判断自己的测试角色定位
2.2.2 “支援编程人员”的测试与“批判性”的测试
2.2.3 “面向业务”的测试与“面向技术”的测试
2.2.4 测试的划分对敏捷项目开发的重要性
2.2.5 如何融入一个项目团队
2.2.6 快速融入项目团队的技巧
2.2.7 尽快投入测试工作的技巧
2.3 软件测试的团队建设
2.3.1 学习型团队的组建
2.3.2 让每一位测试人员找到适合自己的位置
2.3.3 “无规矩则不成方圆”
2.3.4 测试规范
2.3.5 部门制度
2.4 小结
2.5 新手入门须知
2.6 模拟面试问答

3 软件测试的人员要求

3.1 测试人员的素质要求
3.1.1 你对测试感兴趣吗
3.1.2 你有适合做软件测试的性格特征吗
3.1.3 好奇心
3.1.4 成就感
3.1.5 消极思维
3.1.6 全面的思维能力
3.1.7 测试的正确态度
3.1.8 责任感是测试人员的自我要求
3.1.9 责任感与压力
3.2 测试人员的技能要求
3.2.1 业务知识
3.2.2 产品设计知识
3.2.3 测试人员需要了解软件架构知识
3.2.4 测试人员需要了解统一建模语言(UML)
3.2.5 测试人员的“武器”
3.2.6 测试人员需要掌握的测试工具
3.2.7 测试人员需要掌握开发工具吗
3.2.8 用户心理学
3.2.9 界面设计中的3种模型
3.2.10 人机交互认知心理学
3.2.11 测试人员是否需要编程技能
3.2.12 掌握编程技能的好处
3.2.13 脚本语言
3.2.14 文档能力
3.3 小结
3.4 新手入门须知
3.5 模拟面试问答

软件测试必备知识

4 软件工程与软件测试

4.1 软件工程简介
4.1.1 什么是软件工程
4.1.2 软件的生命周期
4.1.3 软件工程的研究领域
4.1.4 软件工程的发展历史
4.1.5 软件工程化概念的提出
4.1.6 “软件工厂”
4.1.7 软件过程管理
4.1.8 软件过程相关方法和工具
4.1.9 软件工程发展的新趋势
4.1.10 软件工程的目的
4.2 软件开发模式
4.2.1 常见的软件开发模式
4.2.2 线性模型
4.2.3 渐进式模型
4.2.4 变换模型
4.2.5 软件开发模式的发展
4.2.6 RUP的历史
4.2.7 RUP过程模型下的软件测试
4.2.8 RUP工具
4.2.9 “重型”过程VS.“轻量”过程
4.2.10 敏捷运动
4.2.11 极限编程(XP)
4.2.12 XP中的软件测试
4.2.13 XP工具
4.3 不同软件开发模式下的软件测试
4.3.1 CMM和ISO中的软件测试
4.3.2 CMM与软件测试
4.3.3 ISO与软件测试
4.3.4 敏捷开发中的软件测试
4.4 小结
4.5 新手入门须知
4.6 模拟面试问答

5 软件配置管理与软件测试

5.1 软件配置管理的应用
5.1.1 什么是配置管理
5.1.2 实施软件配置管理的好处
5.1.3 配置管理计划
5.1.4 配置标识
5.1.5 变更控制
5.1.6 配置状态记录和报告
5.1.7 配置审计
5.1.8 配置管理的自动化
5.1.9 进度控制与软件测试
5.1.10 变更控制与软件测试
5.1.11 配置管理与软件测试
5.2 VSS的安装和使用
5.2.1 VSS简介
5.2.2 VSS的安装
5.2.3 创建VSS数据库
5.2.4 创建VSS项目Project
5.2.5 VSS备份
5.3 SVN的安装和使用
5.3.1 SVN的基本原理
5.3.2 SVN的下载与安装
5.3.3 创建资源库
5.3.4 运行SVN服务
5.3.5 用户授权
5.3.6 导入项目文件
5.3.7 检出项目
5.3.8 用add命令添加文件
5.3.9 Commit命令
5.3.10 Update命令
5.3.11 将SVN服务注册为系统服务
5.3.12 远程客户端访问
5.3.13 目录访问权限控制
5.4 小结
5.5 模拟面试问答

6 软件质量与软件测试

6.1 软件质量属性
6.1.1 质量的3个层次
6.1.2 软件质量模型
6.2 软件质量保证与软件测试
6.2.1 SQA与软件测试
6.2.2 SQA与项目组各成员之间的关系
6.2.3 SQA组织
6.2.4 SQA的工作内容
6.2.5 QA与QC的区别
6.3 质量保证体系建设
6.3.1 ISO 9000质量管理体系与八项质量管理原则
6.3.2 ISO 9000质量管理体系的建立过程
6.3.3 CMM质量管理体系与过程改进
6.3.4 结合PSP、TSP建立CMM过程改进体系
6.3.5 应用PDCA质量控制法持续改进软件质量
6.4 小结
6.5 新手入门须知
6.6 模拟面试问答

7 软件测试的目的与原则

7.1 软件测试的目的
7.1.1 测试是为了建立软件的信心
7.1.2 软件测试与软件信心的关系
7.1.3 软件测试的两面性
7.1.4 软件测试的验证与确认
7.1.5 测试是一种服务
7.2 软件测试应该遵循的几个原则
7.2.1 Good enough原则
7.2.2 Pareto原则
7.2.3 尽可能早开展测试
7.2.4 在发现比较多错误的地方需要投入更多的测试
7.2.5 同化效应
7.3 小结
7.4 新手入门须知
7.5 模拟面试问答

8 软件测试的方法论

8.1 软件测试的5大流派
8.1.1 分析学派
8.1.2 标准学派
8.1.3 质量学派
8.1.4 上下文驱动学派
8.1.5 敏捷学派
8.1.6 不同流派的测试定义
8.2 软件测试的方法应用
8.2.1 微软公司的第一类测试
8.2.2 微软公司的第二类测试
8.2.3 微软的缺陷管理
8.3 IBM公司的软件测试方法
8.3.1 回归测试
8.3.2 测试的度量
8.3.3 用例驱动
8.3.4 RUP对软件测试的分类
8.3.5 RUP对测试阶段的划分
8.4 自动错误预防(AEP)方法
8.4.1 AEP的基本概念
8.4.2 实现软件自动错误预防的5大法则
8.5 小结
8.6 新手入门须知
8.7 模拟面试问答

9 软件测试的过程管理

9.1 软件测试的各个阶段
9.2 测试需求
9.2.1 需求规格说明书的检查要点
9.2.2 需求文档的检查步骤
9.2.3 通过编写测试用例来检查需求
9.3 测试的计划
9.3.1 为什么要制定测试计划
9.3.2 测试计划是对测试过程的整体设计
9.3.3 确定测试范围
9.3.4 制定测试策略
9.3.5 安排好测试资源
9.3.6 安排好进度
9.3.7 计划风险
9.4 测试的设计及测试用例
9.4.1 基于需求的测试用例设计
9.4.2 等价类划分法
9.4.3 边界值分析法
9.4.4 等价类+边界值
9.4.5 基本路径分析法
9.4.6 因果图法
9.4.7 场景设计法
9.4.8 错误猜测法
9.4.9 正交表与TCG的使用
9.4.10 利用均匀试验法设计测试用例
9.4.11 组合覆盖与PICT的使用
9.4.12 分类树与CTE XL的使用
9.4.13 测试用例设计的自动化
9.4.14 敏捷测试用例设计
9.4.15 测试用例的粒度
9.4.16 基于需求的测试用例设计
9.4.17 测试用例的评价
9.4.18 测试用例数据生成的自动化
9.5 测试的执行
9.5.1 测试用例的合理选择
9.5.2 测试的分工与资源利用
9.5.3 测试环境的搭建
9.5.4 BVT测试与冒烟测试
9.5.5 每日构建的基本流程
9.5.6 通过每日构建来规范源代码管理
9.5.7 通过每日构建来控制版本风险
9.6 测试的记录和跟踪
9.6.1 Bug的质量衡量
9.6.2 如何录入一个合格的Bug
9.6.3 报告发现问题的版本
9.6.4 报告问题出现的环境
9.6.5 报告问题重现的操作步骤
9.6.6 描述预期的行为
9.6.7 描述观察到的错误行为
9.6.8 Bug报告应该注意的几个问题
9.6.9 如何跟踪一个Bug的生命周期
9.6.10 如何与开发人员沟通一个Bug
9.6.11 Bug评审要注意的问题
9.6.12 基于QC的缺陷管理
9.7 回归测试
9.7.1 为什么会回归
9.7.2 回归测试的难度
9.7.3 基于风险的回归测试
9.8 测试总结和报告
9.8.1 缺陷分类报告
9.8.2 缺陷类型分布报告
9.8.3 缺陷区域分布报告
9.8.4 缺陷状态分布报告
9.8.5 缺陷趋势报告
9.8.6 典型缺陷与Bug模式
9.8.7 测试中的PDCA循环
9.8.8 客观全面的测试报告
9.8.9 实用测试经验的总结
9.9 小结
9.10 新手入门须知
9.11 模拟面试问答

10 软件测试的度量

10.1 软件测试度量的目的
10.1.1 测试度量的难度
10.1.2 测试人员工作质量的鉴定
10.1.3 度量的目的
10.2 软件测试的度量方法及其应用
10.2.1 Bug的数量能说明什么
10.2.2 度量Bug的数量
10.2.3 加权法度量缺陷
10.2.4 Bug的定性评估
10.2.5 Bug综合评价模型
10.2.6 测试覆盖率统计
10.2.7 代码覆盖率
10.2.8 功能模块覆盖率
10.2.9 需求覆盖率
10.2.10 测试用例文档产出率与测试用例产出率
10.2.11 考核测试人员的硬指标和软指标
10.2.12 硬指标
10.2.13 软指标
10.2.14 考核表
10.3 小结
10.4 新手入门须知
10.5 模拟面试问答

实用软件测试技术与工具应用

11 实用软件测试技术

11.1 软件测试技术的发展
11.2 软件测试技术
11.2.1 不管黑盒、白盒,找到Bug就行
11.2.2 黑盒测试
11.2.3 白盒测试
11.2.4 手工测试、自动化测试,一个都不能少
11.2.5 自动化测试的目的
11.2.6 手工测试的不可替代性
11.2.7 探索性测试的“技术”
11.2.8 探索性测试的基本过程
11.2.9 探索性测试的管理
11.2.10 单元测试的定义
11.2.11 单元测试由谁做
11.2.12 结对单元测试
11.2.13 单元级别的性能测试
11.2.14 性能测试“从小做起”
11.2.15 数据库性能检查
11.2.16 软件的“极限考验”——压力测试
11.2.17 软件的容量如何
11.2.18 安全性测试
11.2.19 网页安全漏洞检测
11.2.20 SQL注入
11.2.21 缓冲区溢出
11.2.22 安装测试
11.2.23 环境测试
11.3 实用软件测试技术的综合应用
11.3.1 跟踪法测试
11.3.2 跟踪法的典型应用
11.3.3 跟踪法测试的好处
11.3.4 跟踪法测试的必要性
11.3.5 C/S结构软件系统的测试
11.3.6 B/S结构软件系统的测试
11.3.7 链接测试
11.3.8 Cookies测试
11.3.9 兼容性测试
11.3.10 并发访问测试
11.3.11 手机应用测试的要点
11.3.12 手机应用软件的特点
11.3.13 手机应用软件的测试要点
11.3.14 游戏软件系统的测试重点是“玩”
11.3.15 游戏可玩性的测试
11.3.16 游戏的环境测试
11.3.17 网络游戏的安全性测试
11.3.18 游戏的性能测试
11.3.19 界面交互及用户体验测试
11.3.20 使用用户模型对界面交互进行测试
11.3.21 界面和用户体验测试的要点
11.3.22 数据库测试
11.3.23 数据库设计的测试
11.3.24 SQL代码规范性测试
11.3.25 SQL语句效率测试
11.3.26 SQL数据库兼容性测试
11.3.27 Web Services的测试
11.3.28 内存泄露测试
11.3.29 造成软件内存泄露的原因
11.3.30 如何检测内存泄露
11.3.31 对内存问题测试的分工与合作
11.3.32 检查程序员的编码规范
11.3.33 报表测试
11.3.34 报表测试的业务基础
11.3.35 报表测试中的细节问题检查
11.3.36 报表测试中的性能测试、安全性测试
11.3.37 报表的保存和打印测试
11.3.38 报表的格式测试
11.3.39 联机帮助和用户手册的测试
11.3.40 联机帮助的测试要点
11.3.41 用户手册的测试要点
11.3.42 缺乏工具支持的性能测试
11.3.43 借助其他小工具和自己开发的小程序来解决问题
11.3.44 手工的性能测试
11.3.45 本地化测试与国际化测试
11.3.46 本地化软件测试和国际化测试的要点
11.3.47 本地化软件测试和国际化测试对测试人员的要求
11.3.48 本地化软件测试和国际化测试工具的使用
11.3.49 可访问性测试(Accessibility Testing)
11.3.50 Section 508 Web指南
11.3.51 可访问性测试工具
11.4 小结
11.5 新手入门须知
11.6 模拟面试问答

12 测试管理工具QC的应用

12.1 测试管理平台
12.1.1 测试过程管理规范化
12.1.2 测试管理平台——QC简介
12.1.3 QC安装
12.1.4 QC安装常见问题
12.2 测试需求管理
12.2.1 定义测试需求
12.2.2 从Office文档导入需求到QC
12.2.3 把需求项转换成测试计划
12.3 测试计划管理
12.3.1 测试用例的管理
12.3.2 设计测试步骤
12.3.3 测试用例的重用
12.3.4 测试用例对需求项的覆盖
12.4 测试执行
12.4.1 定义测试集
12.4.2 为测试集添加测试用例
12.4.3 执行测试
12.5 缺陷登记与跟踪
12.5.1 添加新缺陷
12.5.2 如何避免录入冗余的缺陷
12.5.3 BUG的生命周期
12.5.4 把缺陷链接到测试
12.6 在QC中生成测试报告的图表
12.7 基于QC的测试项目管理
12.7.1 QC的库结构
12.7.2 创建QC项目库
12.7.3 定制项目
12.7.4 添加项目组成员
12.7.5 自定义QC的数据字段
12.7.6 配置跟踪提醒规则
12.7.7 设置可追溯性通知规则
12.7.8 设置工作流
12.7.9 “缺陷模块”列表自定义
12.7.10 添加缺陷字段自定义
12.7.11 脚本编辑器
12.7.12 QC项目的导入导出
12.7.13 QC项目的备份还原
12.8 其他资源
12.9 练习和实践

13 功能自动化测试工具QTP的应用

13.1 如何开展功能自动化测试
13.1.1 选取合适的测试项目来开展自动化测试
13.1.2 自动化测试工程师的知识体系
13.1.3 自动化测试工具选型
13.1.4 自动化测试项目计划
13.2 使用QTP开展功能自动化测试
13.2.1 QTP的安装
13.2.2 使用QTP录制脚本
13.2.3 使用关键字视图和专家视图编辑脚本
13.2.4 回放脚本
13.2.5 插入检查点
13.3 构建功能自动化测试框架
13.3.1 模块化框架
13.3.2 函数库结构框架
13.3.3 数据驱动框架
13.4 其他资源
13.5 练习和实践

14 性能测试工具LoadRunner的应用

14.1 如何开展性能测试
14.1.1 性能测试工程师的素质要求
14.1.2 认识性能测试
14.1.3 性能测试的类型
14.1.4 性能测试成熟度模型
14.1.5 分析和定义性能需求
14.1.6 “不成文的”性能需求定义
14.1.7 计划性能测试
14.2 使用LoadRunner开展性能测试
14.2.1 LoadRunner简介
14.2.2 LoadRunner基本使用方法和步骤
14.2.3 选择协议
14.2.4 录制脚本
14.2.5 常见脚本回放问题解决
14.2.6 修改和完善脚本
14.2.7 脚本参数化
14.2.8 添加事务
14.2.9 添加内容检查点
14.2.10 性能参数的选择和监视
14.2.11 运行场景
14.2.12 选择需要监控的性能参数
14.2.13 性能测试报告与性能瓶颈分析
14.3 其他资源
14.4 练习和实践

15 安全测试

15.1 常见安全漏洞分析
15.1.1 缓冲区溢出
15.1.2 整数溢出
15.1.3 命令注入
15.1.4 SQL注入
15.1.5 XSS – 跨站脚本攻击
15.2 使用AppScan进行安全测试
15.2.1 AppScan简介
15.2.2 利用AppScan进行Web安全测试
15.2.3 使用AppScan测试AltoroJ项目
15.3 其他资源
15.4 练习和实践

16 单元测试工具MSTest的应用

16.1 单元测试范围管理
16.1.1 单元测试的分类
16.1.2 静态单元测试
16.1.3 动态单元测试
16.1.4 “广专结合”、“动静相宜”
16.1.5 单元测试的效果
16.1.6 单元测试的范围
16.2 单元测试的过程管理
16.2.1 单元测试的过程策划
16.2.2 管理层对单元测试的重视
16.2.3 单元测试意识的改变
16.2.4 单元测试的组织
16.2.5 单元测试模式的选择
16.2.6 单元测试的管理规范
16.2.7 单元测试的人员分工
16.2.8 单元测试的策略
16.2.9 单元测试用例的设计
16.2.10 代码标准和规范
16.2.11 代码审查制度
16.2.12 单元测试的流程
16.2.13 单元测试与每日构建的结合
16.2.14 单元测试的自动化方面
16.2.15 自动化单元测试与每日构建的结合
16.3 单元测试的质量度量
16.3.1 单元测试覆盖率
16.3.2 单元测试评审
16.4 单元测试工具MSTest的应用
16.4.1 建立单元测试项目
16.4.2 巧用NMock对象
16.4.3 对缺乏接口实现的类的方法进行测试
16.4.4 使用NMock对象
16.4.5 使用NMock的场合
16.4.6 单元测试的执行
16.4.7 测试管理
16.4.8 运行测试代码
16.4.9 查看测试结果
16.5 数据驱动的单元测试
16.5.1 为什么要使用数据驱动的方式
16.5.2 创建数据驱动单元测试
16.5.3 使用数据源
16.5.4 使用配置文件定义数据源
16.5.5 编写单元测试代码使用配置文件定义的数据源
16.6 小结
16.7 新手入门须知
16.8 模拟面试问答

17 开源测试工具

17.1 开源测试工具简介
17.1.1 开源的背景
17.1.2 开源测试工具的发展现状
17.1.3 开源测试工具的分布
17.1.4 开源测试工具的来源
17.1.5 开源测试工具的优势
17.1.6 开源测试工具的不足
17.2 常用开源测试工具介绍—测试管理类
17.2.1 Bugzilla
17.2.2 Mantis
17.2.3 BugFree
17.2.4 综合比较
17.3 常用开源测试工具介绍—单元测试类
17.3.1 NUnit
17.3.2 NMock
17.3.3 NUnitForms
17.4 常用开源测试工具介绍—性能测试类
17.4.1 JMeter
17.4.2 TestMaker
17.4.3 DBMonster
17.5 常用开源测试工具介绍—自动化功能测试类
17.5.1 Abbot Java GUI Test Framework
17.5.2 White
17.5.3 Watir
17.6 如何在测试组中引入开源测试工具
17.6.1 开源测试工具的成本考虑
17.6.2 引入开源测试工具的步骤
17.6.3 引入开源测试工具可能碰到的问题
17.7 小结
17.8 新手入门须知
17.9 模拟面试问答

18 测试工具的原理及制作

18.1 自制测试工具的优势
18.2 辅助工具的制作
18.2.1 测试工具的开发策划
18.2.2 测试语言的选择
18.2.3 测试工具开发的各种实现技术
18.2.4 接口驱动
18.2.5 测试执行器及远程代理
18.2.6 测试解释器和测试生成器
18.3 利用Windows脚本辅助测试
18.3.1 利用JScript进行简单的GUI自动化测试
18.3.2 利用JScript检查注册表
18.3.3 利用JScript的FileSystemObject对象处理文件
18.3.4 读取文件
18.3.5 创建文件
18.3.6 利用JScript操作Excel
18.3.7 在JScript中运行应用程序
18.3.8 在JScript中使用WMI
18.3.9 在JScript中访问网络
18.3.10 在JScipt中使用正则表达式
18.3.11 使用JScript发送邮件
18.3.12 JScript脚本的调试方法
18.4 简易自动化测试
18.4.1 使用VBScript进行Web自动化测试
18.4.2 利用UIAutomation实现GUI自动化测试
18.5 设计一个性能测试框架
18.5.1 性能测试的基本原理
18.5.2 Controller的简单设计
18.5.3 Agent的简单设计
18.5.4 虚拟用户的产生
18.6 正交表测试用例自动生成工具的设计
18.6.1 正交表类的设计
18.6.2 加载正交表文件
18.6.3 解释输入
18.6.4 查找正交表
18.6.5 改进方向
18.7 数据库比较工具的制作
18.7.1 “三库”的问题
18.7.2 SQLServer表结构原理
18.7.3 数据库比较工具的设计
18.8 Oracle的SQL语句跟踪工具的制作
18.8.1 设置Oracle的SQL跟踪参数
18.8.2 打开SQL跟踪
18.8.3 关闭SQL跟踪
18.8.4 改进方向
18.9 一个简单的猴子测试工具的制作
18.9.1 猴子测试工具应该具备的功能
18.9.2 Windows API的调用
18.9.3 截屏功能的实现
18.9.4 让猴子动起来
18.9.5 记录猴子的足迹
18.9.6 给猴子一些知识
18.9.7 记录被测试应用程序的资源使用情况
18.9.8 完整的猴子测试工具
18.9.9 扩展
18.10 测试覆盖率辅助管理工具的制作
18.10.1 测试覆盖率管理
18.10.2 需求覆盖率管理
18.10.3 测试用例覆盖率管理
18.10.4 功能模块覆盖率管理
18.10.5 代码覆盖率管理
18.10.6 数据覆盖率管理
18.10.7 测试覆盖率统计的自动化
18.10.8 测试覆盖率对测试管理的意义
18.10.9 测试覆盖率辅助管理工具的设计
18.10.10 调用DevPatner的代码覆盖率统计工具
18.10.11 用C 来调用DPAnalysis执行被测试应用程序
18.10.12 测试覆盖率辅助管理工具的使用
18.11 小结
18.12 新手入门须知
18.13 模拟面试问答

19 小工具的使用

19.1 巧用Windows自带的小工具
19.1.1 Windows的任务管理器
19.1.2 利用Windows任务管理器检查进程驻留
19.1.3 利用Windows任务管理器检查内存问题
19.1.4 利用Windows任务管理器检查网络使用情况
19.1.5 利用Windows任务管理器检查CPU使用情况
19.1.6 Perfmon的性能监控
19.1.7 NetStat的网络监视
19.2 免费小工具的妙用
19.2.1 SQL Server数据库的SQL事件探查器
19.2.2 Visual Studio开发工具的Spy++
19.2.3 Visual SourceSafe的文件比较器
19.2.4 HTTP协议包查看器——HTTP Watch
19.2.5 HTML DO M查看器——IE Developer Toolbar
19.3 小结
19.4 新手入门须知
19.5 模拟面试问答

20 持续集成

20.1 持续集成简介
20.1.1 持续集成的价值
20.1.2 持续集成包含的过程
20.2 利用Windows脚本搭建一个每日构建框架
20.2.1 每日构建框架的基本要素
20.2.2 获取源代码
20.2.3 编译源代码
20.2.4 分析编译结果
20.2.5 处理编译结果
20.2.6 发送编译报告
20.2.7 利用Windows任务计划来定时启动脚本
20.2.8 每日构建框架的扩展1—单元测试
20.2.9 每日构建框架的扩展2——自动化功能测试
20.2.10 每日构建框架的扩展3——每日缺陷简报
20.2.11 缺陷库表结构分析
20.2.12 缺陷统计程序的设计
20.2.13 每日构建框架的扩展4——每日配置管理简报
20.2.14 配置管理的现状
20.2.15 缺陷简报程序的设计
20.2.16 每日构建框架的扩展5——每日里程碑预报
20.2.17 每日构建框架的其他扩展思路
20.2.18 每日缺陷统计
20.2.19 每日缺陷简报
20.3 利用Windows脚本整合一个自动错误预防系统
20.3.1 轻量级的AEP框架
20.3.2 把AEP系统整合到每日构建框架中
20.3.3 整合FxCop
20.3.4 整合SQL BPA
20.3.5 测试结果检查和发送
20.4 其他资源

21 代码审查

21.1 代码审查实践
21.1.1 为什么需要代码审查
21.1.2 代码静态分析的工作内容
21.1.3 类型检查
21.1.4 风格检查
21.1.5 程序理解
21.1.6 Bug查找
21.2 自动代码审查
21.2.1 代码分析工具PCLint的应用
21.2.2 PCLint与VC6的整合
21.2.3 代码风格审查工具StyleCop的应用
21.2.4 StyleCop的设置
21.3 其他资源

22 探索性测试管理

22.1 探索性测试的必要性
22.1.1 探索性测试的原理
22.1.2 探索性测试与即兴测试的区别
22.1.3 探索性测试的意义
22.2 如何进行探索性测试
22.2.1 优秀探索性测试人员的基本素质
22.2.2 测试就是向程序提问
22.3 探索性测试的过程管理和度量
22.3.1 测试组长是“教练”
22.3.2 基于探索任务的测试计划
22.3.3 探索性测试的“碰头会议”
22.4 小结
22.5 新手入门须知
22.6 模拟面试问答

23 用户界面测试管理

23.1 用户界面测试的必要性
23.2 如何进行用户界面测试
23.2.1 用户界面测试的时机
23.2.2 后期修改界面的风险
23.2.3 界面测试遗漏
23.2.4 用户界面测试的要点
23.2.5 “射箭”原理
23.2.6 减少用户的工作量
23.2.7 “少就是多”
23.3 用户界面测试原则
23.3.1 亲和力
23.3.2 协助
23.3.3 有效
23.3.4 鼓励
23.3.5 熟悉
23.3.6 明显
23.3.7 个性化
23.3.8 安全
23.3.9 满意
23.3.10 简单
23.3.11 支持
23.3.12 多样性
23.4 小结
23.5 新手入门须知
23.6 模拟面试问答

软件测试的学习和研究

24 软件测试的学习环境

24.1 学习氛围的建立
24.1.1 培训导师制度
24.1.2 把测试人员的学习内容作为工作考核的一部分
24.1.3 把测试人员的学习计划纳入到项目计划
24.1.4 把测试人员的学习和技术研究任务化、专门化
24.1.5 建立一帮一的导师制度
24.1.6 建立一个持续的培训体系
24.1.7 读书会
24.1.8 找个师傅学习软件测试
24.2 软件测试经验的总结
24.2.1 测试知识库的建立
24.2.2 知识库的“进”
24.2.3 知识库的“出”
24.2.4 办一份内部期刊
24.2.5 测试管理经验的总结
24.2.6 过程管理经验总结
24.2.7 个人管理经验总结
24.3 软件测试的交流
24.3.1 日常的交流
24.3.2 专门的交流
24.3.3 与开发人员的交流
24.3.4 定义好自己的角色
24.3.5 解释自己的工作
24.3.6 尽量减少会产生误会和曲解的Bug报告
24.3.7 与管理层的交流
24.3.8 宣传测试
24.3.9 主动报告测试
24.3.10 外部交流
24.4 小结
24.5 新手入门须知
24.6 模拟面试问答

25 软件测试的研究方向与个人发展

25.1 软件测试角色与其他项目角色的可转换性
25.1.1 转向售前
25.1.2 转向售后
25.1.3 转向开发
25.1.4 转向QA
25.2 测试人员的发展路线
25.2.1 管理路线
25.2.2 技术路线
25.3 软件测试的研究方向
25.3.1 软件测试中的数学
25.3.2 软件测试工具设计
25.3.3 其他研究方向
25.4 小结
25.5 新手入门须知
25.6 模拟面试问答

附录 各章习题答案

思维导图

软件测试技术大全:测试基础 流行工具 项目实战(第二版)

防止博客图床图片失效,防止图片源站外链:

http://www.processon.com/chart_image/5e5a8b22e4b0c037b607cc7b.png)

思维导图在线编辑链接:

https://www.processon.com/view/5e5a8b22e4b0c037b607cc78

posted @ 2020-04-16 09:16  哀莫  阅读(355)  评论(0编辑  收藏  举报

欢迎访问我的主页!