海报:
而软件测试团队的任务是相对明确的,包括制订测试计划、设计测试用例、执行测试、评估测试结果和递交测试报告等。除了这些主要的任务,测试团队还要完成其他任务:阅读和审查软件功能说明书、设计文档,审查代码,与开发人员、项目经理等进行充分交流,参加各种业务、技术讨论会等。一个比较健全的测试团队包含的角色有以下6种。
(1)测试组长或测试经理:全面负责该项目的测试工作,如协调测试计划、统筹资源、组织测试件的评审、监控测试的执行等。测试组长的能力要相对全面,包括项目管理、测试流程控制、沟通、业务、技术等各个方面的能力。
(2)系统工程师:负责测试环境的部署和调试,甚至包括持续构建、持续集成的工作,以及产品发布的技术流程。
(3)自动化测试工程师,或者说,测试开发工程师(Software Development Engineer inTest,SDET):负责所需的测试工具开发,以及自动化测试框架或整个应用测试平台的维护。
(4)测试分析和设计人员:一般由具有丰富经验的资深测试工程师承担,和测试组长一起,比较早进入项目,负责需求评审、设计评审、测试需求分析、测试用例设计或测试脚本开发等。
(5)性能测试、安全性测试人员:性能测试和安全性测试都需要性能或安全性方面的知识、技术和经验,一般由专职的测试人员完成。
(6)测试执行人员:如果项目规模大,测试团队人员需求量大,有一部分外包人员。另外,每个团队也不可能是清一色的资深测试人员,总是有一些刚加入公司的新手,这些初级测试人员则适合测试的执行。
对于规模小的测试团队,上面某些角色(如2)、3)、5)等)的资源可以和其他团队共享。测试组长是一个关键的角色,不只是管理,还会兼任测试分析和设计人员,参与或主导测试分析与设计的工作。虽然测试组长不是神人,但要承担的责任还是很多的(也可以授权其他资深测试人员承担部分责任),列举如下。
负责一个独立的测试项目及其测试组的管理工作。
制定整个项目的测试计划、测试策略,包括风险评估、日程表安排等。
负责工作量的预估和测试项目内部的资源、任务安排。
熟悉产品的功能、特性,审查产品需求规格说明书,并提出改进意见。
审查系统、程序设计说明书。
验证产品是否满足规格说明书所描述的需求。
……
第0章 引子
0.1 究竟什么是软件测试?
0.2 究竟什么是敏捷测试?
0.3 软件测试的作用
0.4 软件测试在SDLC中的位置
0.5 传统的软件测试过程
0.6 敏捷测试过程
第1章 测试项目启动
1.1 了解软件的质量需求
1.1.1 软件产品的质量需求
1.1.2 软件质量的对立面--软件缺陷
1.1.3 软件缺陷产生的原因
1.1.4 软件测试的目标
1.2 项目测试团队
1.2.1 测试过程和开发过程的关系
1.2.2 团队组建
1.2.3 培训
1.2.4 测试团队在项目中的位置
1.3 掌控项目背景
1.3.1 软件测试的项目要素
1.3.2 两个典型项目的介绍
1.4 确定测试规范
1.5 小结
第2章 测试需求分析与计划
2.1 软件测试的目标和基本需求
2.1.1 质量要求
2.1.2 测试目标
2.1.3 基本的测试需求
2.2 项目的测试需求
2.2.1 测试需求分析的基本方法
2.2.2 测试需求的分析技术
2.2.3 功能测试范围分析
2.2.4 非功能性的系统测试需求
2.3 测试工作量估算
2.3.1 工作量的估计
2.3.2 工作分解结构表方法
2.3.3 工作量估计的实例
2.4 测试资源需求
2.5 测试里程碑和进度安排
2.5.1 传统测试
2.5.2 敏捷测试
2.6 测试风险分析
2.7 制定有效的测试策略
2.8 完整生成测试计划书
2.9 小结
第3章 需求与设计的评审
3.1 产品需求评审
3.1.1 需求评审的重要性
3.1.2 测试人员在需求评审中的角色
3.1.3 需求评审的标准
3.1.4 需求的可测试性
3.2 系统架构的审查
3.2.1 系统架构选型的确认
3.2.2 软件设计评审标准
3.2.3 设计的可测试性
3.2.4 系统组件设计的审查
3.3 产品设计规格说明书的复审
3.3.1 重视设计规格说明书的审查
3.3.2 设计规格说明书的多层次审查
3.3.3 界面设计的评审
3.3.4 验证过程与确认过程
3.4 系统部署设计的审查
3.4.1 系统部署逻辑设计的审查
3.4.2 软件部署物理设计的审查
3.4.3 可用性设计的审查
3.4.4 可伸缩性设计的验证
3.4.5 安全性设计的验证
3.5 小结
第4章 测试设计
4.1 测试用例框架的设计
4.1.1 为什么需要测试用例
4.1.2 测试用例设计考虑因素
4.1.3 测试用例框架的构成
4.1.4 测试用例的元素
4.2 探索式测试之设计
4.3 功能测试用例的设计
4.3.1 功能测试用例的内容
4.3.2 功能测试用例的设计方法
4.3.3 等价类划分法与边界值分析法
4.3.4 决策表与因果图法
4.3.5 功能图法
4.3.6 Pair-wise方法和正交实验设计方法
4.4 非功能性测试设计
4.4.1 故障转移测试设计
4.4.2 系统安全性测试设计
4.5 测试用例的审查
4.5.1 测试用例书写标准
4.5.2 测试用例评审要点
4.6 测试套件的创建
4.7 小结
第5章 测试工具选择和脚本开发
5.1 测试工具的需求分析
5.1.1 测试工具的优势
5.1.2 测试工具的实现原理
5.2 测试工具的选择
5.2.1 测试工具选择的标准
5.2.2 测试工具选择的误区
5.3 商业测试工具解决方案
5.4 开源测试工具解决方案
5.5 测试脚本的开发
5.5.1 测试自动化策略
5.5.2 适应测试脚本开发的测试用例
5.5.3 测试脚本的重构和优化
5.6 小结
第6章 单元测试
6.1 程序代码的审查
6.1.1 代码审查的方法和范围
6.1.2 代码风格的审查
6.1.3 编程规则的审查
6.2 单元测试内容
6.2.1 什么是单元测试
6.2.2 单元测试的现状和作用
6.2.3 单元测试的方法
6.3 单元测试用例的设计
6.3.1 语句覆盖法
6.3.2 判定和条件覆盖法
6.3.3 基本路径测试法
6.3.4 多种白盒测试方法的比较和总结
6.3.5 循环结构的测试用例
6.3.6 单元测试的典型实例
6.4 单元测试工具
6.4.1 静态代码分析
6.4.2 测试覆盖率工具EMMA
6.5 小结
第7章 功能测试的执行
7.1 测试执行概述
7.2 测试执行的准备
7.2.1 测试任务安排
7.2.2 测试环境的建立
7.2.3 测试环境的设置
7.2.4 测试自动化运行平台
7.3 如何有效地创建测试套件
7.3.1 功能测试套件的创建
7.3.2 测试环境的爆炸性组合及其优化
7.4 功能测试自动化的执行
7.5 敏捷测试的执行
7.5.1 策略与实践
7.5.2 探索式测试的执行
7.6 用户界面和适用性测试
7.7 回归测试
7.8 软件缺陷的报告
7.8.1 缺陷的属性
7.8.2 缺陷的详细描述
7.8.3 如何报告缺陷
7.9 小结
第8章 国际化和本地化测试
8.1 国际化测试
8.1.1 软件国际化的基本要求
8.1.2 国际化测试
8.1.3 I18N测试实例
8.2 本地化测试
8.2.1 软件本地化的质量需求
8.2.2 本地化测试的基本内容
8.2.3 L10N的功能测试
8.2.4 L10N的数据格式验证
8.2.5 L10N的UI验证
8.2.6 L10N的配置和兼容性验证
8.2.7 L10N的翻译验证
8.3 I18N和L10N测试工具
8.4 小结
第9章 系统非功能性测试
9.1 实施要求和策略
9.2 Web应用服务器的负载测试
9.2.1 负载测试的加载方式
9.2.2 负载测试的准备工作
9.2.3 负载测试的执行
9.2.4 负载测试的结果分析
9.3 Web应用服务器的性能测试
9.4 Web安全性测试
9.5 容错性测试
9.6 数据库的性能测试
9.7 兼容性测试
9.8 小结
第10章 后续测试
10.1 验收测试
10.2 部署测试
10.2.1 客户端软件安装测试
10.2.2 后台系统的部署测试
10.3 在线测试
10.4 后继版本的测试
10.5 小结
第11章 测试的跟踪和管理
11.1 测试管理
11.1.1 测试管理的全局性
11.1.2 测试管理思想和策略
11.1.3 测试管理系统的应用
11.1.4 测试管理工具
11.2 测试用例的管理
11.2.1 测试用例管理架构
11.2.2 管理与维护要点
11.3 测试自动化的管理
11.3.1 测试自动化的管理准则
11.3.2 测试自动化的框架
11.3.3 测试自动化的流程
11.4 缺陷跟踪和分析
11.4.1 缺陷生命周期
11.4.2 缺陷状态的跟踪
11.4.3 缺陷的分析
11.4.4 累计缺陷趋势分析
11.5 测试进度和风险的控制
11.5.1 测试进度管理
11.5.2 测试风险的控制
11.6 测试覆盖度和结果分析
11.6.1 测试覆盖评估
11.6.2 基于软件缺陷的质量评估
11.6.3 软件缺陷清除率
11.6.4 测试报告的模板、实例
11.7 小结
第12章 总结与思考
12.1 软件测试的现实和原则
12.1.1 测试的现实
12.1.2 测试的原则
12.2 软件测试的多维空间
12.3 软件测试之辩证统一
12.3.1 白盒测试方法和黑盒测试方法
12.3.2 静态测试和动态测试
……
这是一本为软件测试团队创作的融实践性、专业性、思想性和实用性为一体的软件测试书籍。
——崔启亮 昱达软件科技有限公司技术与培训总裁
非常欣喜地得知又一本国内原创的软件测试专著问世了,目前国内的软件测试书籍理论偏多,介绍最佳实践的偏少,希望本书能成为软件测试工程师的案头手册,为国内软件测试行业的蓬勃发展添砖加瓦。
——贺炘 慧灵科技首席测试专家、北京软件行业协会测试工作委员会副秘书长
如果你想通过一本切合实际而不仅仅是纸上谈兵的书来学习软件测试,《全程软件测试》会是一个很好的选择!
——周泽睿 百度高级测试工程师
很难得,久未看到如此让人畅快的文章。能将软件工程实践系统地贯穿在一起,并不失理论佐证,这本身就是个胜利。
——高磊 百度高级测试工程师
优秀的测试思想,体现着对人生反思的哲学。从某种意义上说,生活和软件开发一样,要在试错的磨炼中成长。
——李晓杰 百度测试与项目管理工程师
本书最吸引我的地方在于其真实的项目背景,这对于缺乏丰富实践经验的从业人员来说无疑是最宝贵的材料。
——周可杉 对外经济贸易大学信息学院硕士研究生
作者对于测试项目从启动、计划、验证、设计、工具和脚本开发等多个角度由浅入深地介绍,非常有利于初学者对于测试流程的理解。
——曹辉 某公司软件测试工程师