软件测试技术大全 测试基础 流行工具 项目实战(第3版)
第1篇 软件测试的基础
第1章 软件测试行业 1
1.1 软件测试的起源 2
1.1.1 个Bug的故事 2
1.1.2 几个导致严重错误的Bug 3
1.1.3 软件测试的起因 3
1.2 软件测试的发展 3
1.2.1 软件调试 4
1.2.2 独立的软件测试 4
1.2.3 软件测试的次定义 4
1.2.4 软件测试成为专门的学科 5
1.2.5 开发与测试的融合趋势 5
1.2.6 为什么软件测试发展比较
缓慢 5
1.3 软件测试行业的现状和前景 6
1.3.1 国内测试行业现状 6
1.3.2 测试人员的现状 7
1.3.3 软件测试的前景 8
1.4 小结 8
1.5 新手入门须知 9
1.6 模拟面试问答 9
第2章 软件测试的组织 11
2.1 测试的组织形式 12
2.1.1 微软的经验教训 12
2.1.2 *简单的软件测试组织 12
2.1.3 组织形式的分类方式 13
2.1.4 综合型的测试组织 14
2.2 融入测试组织 15
2.2.1 根据开发的模式判断自己
的测试角色定位 15
2.2.2 “支持编码”的测试与“批
判产品”的测试 17
2.2.3 “面向业务”的测试与“面
向技术”的测试 17
2.2.4 测试的划分对敏捷项目开
发的重要性 18
2.2.5 如何融入一个项目团队 18
2.2.6 快速融入项目团队的
技巧 19
2.2.7 尽快投入测试工作的
技巧 19
2.3 软件测试的团队建设 19
2.3.1 学习型团队的组建 19
2.3.2 让每一位测试人员找到
适合自己的位置 20
2.3.3 “无规矩则不成方圆” 21
2.3.4 测试规范 21
2.3.5 部门制度 22
2.4 小结 23
2.5 新手入门须知 23
2.6 模拟面试问答 23
第3章 软件测试的人员要求 25
3.1 测试人员的素质要求 26
3.1.1 你对测试感兴趣吗 26
3.1.2 你有适合做软件测试的
性格特征吗 27
3.1.3 好奇心 27
3.1.4 成就感 28
3.1.5 消极思维 29
3.1.6 全面的思维能力 29
3.1.7 测试的正确态度 29
3.1.8 责任感 30
3.1.9 压力 30
3.2 测试人员的技能要求 31
3.2.1 业务知识 31
3.2.2 产品设计知识 32
3.2.3 测试人员需要了解软件
架构知识 32
3.2.4 测试人员需要了解统一建
模语言(UML) 32
3.2.5 测试人员的“武器” 33
3.2.6 测试人员需要掌握的测试
工具 33
3.2.7 测试人员需要掌握开发
工具吗 34
3.2.8 用户心理学 34
3.2.9 界面设计中的3种模型 34
3.2.10 人机交互认知心理学 35
3.2.11 测试人员是否需要编程
技能 35
3.2.12 掌握编程技能的好处 35
3.2.13 脚本语言 36
3.2.14 文档能力 39
3.3 小结 40
3.4 新手入门须知 40
3.5 模拟面试问答 41
第2篇 软件测试知识
第4章 软件工程与软件测试 42
4.1 软件工程简介 43
4.1.1 什么是软件工程 43
4.1.2 软件的生命周期 43
4.1.3 软件工程的研究领域 43
4.1.4 软件工程的发展历史 44
4.1.5 软件工程化概念的提出 44
4.1.6 “软件工厂” 44
4.1.7 软件过程管理 45
4.1.8 软件过程相关方法和
工具 45
4.1.9 软件工程发展的新趋势 46
4.1.10 软件工程的目的 46
4.2 软件开发模式 47
4.2.1 常见的软件开发模式 47
4.2.2 线性模型 47
4.2.3 渐进式模型 48
4.2.4 变换模型 49
4.2.5 软件开发模式的发展 49
4.2.6 RUP的历史 49
4.2.7 RUP过程模型下的软件
测试 50
4.2.8 RUP工具 51
4.2.9 “重型”过程VS.“轻量”
过程 51
4.2.10 敏捷运动 52
4.2.11 极限编程(XP) 52
4.2.12 XP中的软件测试 54
4.2.13 XP工具 54
4.3 不同软件开发模式下的软件
测试 54
4.3.1 CMM和ISO中的软件
测试 54
4.3.2 CMM与软件测试 54
4.3.3 ISO与软件测试 55
4.3.4 敏捷开发中的软件
测试 56
4.4 小结 57
4.5 新手入门须知 57
4.6 模拟面试问答 58
第5章 软件配置管理与软件测试 61
5.1 软件配置管理的应用 62
5.1.1 什么是配置管理 62
5.1.2 实施软件配置管理的
好处 63
5.1.3 配置管理计划 63
5.1.4 配置标识 64
5.1.5 变更控制 65
5.1.6 配置状态记录和报告 66
5.1.7 配置审计 66
5.1.8 配置管理的自动化 66
5.1.9 进度控制与软件测试 67
5.1.10 变更控制与软件测试 67
5.1.11 配置管理与软件测试 68
5.2 VSS的安装和使用 68
5.2.1 VSS简介 68
5.2.2 VSS的安装 69
5.2.3 创建VSS数据库 69
5.2.4 创建VSS项目Project 69
5.2.5 VSS备份 69
5.3 SVN的安装和使用 70
5.3.1 SVN的基本原理 70
5.3.2 SVN的下载与安装 71
5.3.3 创建资源库 71
5.3.4 运行SVN服务 72
5.3.5 用户授权 72
5.3.6 导入项目 73
5.3.7 检出项目 73
5.3.8 用add命令添加文件 74
5.3.9 用commit命令提交文件 74
5.3.10 用update命令更新文件 74
5.3.11 将SVN服务注册为系统
服务 74
5.3.12 远程客户端访问 75
5.3.13 目录访问权限控制 75
5.4 Git的安装和使用 76
5.4.1 Git简介 76
5.4.2 安装Git 77
5.4.3 远程仓库 77
5.4.4 分支管理 78
5.4.5 标签管理 78
5.5 小结 79
5.6 模拟面试问答 79
第6章 软件质量与软件测试 81
6.1 软件质量属性 82
6.1.1 质量的3个层次 82
6.1.2 软件质量模型 83
6.2软件质量保证与软件测试 83
6.2.1 SQA与软件测试 84
6.2.2 SQA与项目组各成员之间
的关系 84
6.2.3 SQA组织 84
6.2.4 SQA的工作内容 85
6.2.5 QA与QC的区别 85
6.3 质量保证体系建设 86
6.3.1 ISO 9000质量管理体系与八
项质量管理原则 86
6.3.2 ISO 9000质量管理体系的
建立过程 87
6.3.3 CMM质量管理体系与过程
改进 87
6.3.4 结合PSP、TSP建立CMM
过程改进体系 87
6.3.5 应用PDCA质量控制法持续
改进软件质量 88
6.4 小结 88
6.5 新手入门须知 89
6.6 模拟面试问答 89
第7章 软件测试的目的与原则 91
7.1 软件测试的目的 92
7.1.1 测试是为了建立软件的
信心 92
7.1.2 软件测试与软件信心的
关系 92
7.1.3 软件测试的两面性 92
7.1.4 软件测试的验证与确认 93
7.1.5 测试是一种服务 94
7.2 软件测试应该遵循的原则 94
7.2.1 Good enough原则 94
7.2.2 Pareto原则 95
7.2.3 尽可能早开展测试 95
7.2.4 在发现较多错误的地方
投入更多的测试 96
7.2.5 同化效应 96
7.3 小结 96
7.4 新手入门须知 97
7.5 模拟面试问答 97
第8章 软件测试的方法论 99
8.1 软件测试的五大流派 100
8.1.1 分析学派 100
8.1.2 标准学派 100
8.1.3 质量学派 101
8.1.4 上下文驱动学派 101
8.1.5 敏捷学派 102
8.1.6 不同流派的测试定义 102
8.2 软件测试的方法应用 102
8.2.1 微软公司的**类测试 103
8.2.2 微软公司的第二类测试 103
8.2.3 微软的缺陷管理 104
8.3 IBM公司的软件测试方法 104
8.3.1 回归测试 104
8.3.2 测试的度量 105
8.3.3 用例驱动 105
8.3.4 RUP对软件测试的
内 容 提 要
本书介绍了国内外先进的测试技术和测试理念,包括微软的测试方法、RUP中的测试过程、敏捷测试的理念等;详细讲述了几个主要的测试工具的使用,包括LoadRunner、HP UFT、AppScan等;还介绍了各种常用的开源测试工具,为期待引入开源测试工具的团队提供参考。另外,还结合项目实践,介绍了各种测试辅助工具的开发,包括每日构建框架的开发、UFT系统的搭建、性能测试框架的搭建、正交表测试用例自动生成工具的设计、数据库比较工具的制作以及分布式配置管理工具Git的使用。
本书一些章的*后,针对测试新手可能碰到的各种疑惑和困难,给出了精准的分析和解答;而且还特意为测试新手们准备了模拟面试题目,并为每个问题提供了参考答案,方便希望进入测试行业的新手们做好应聘准备工作。