第一篇软件测试工程师知识筹备与成长发展
第1章本书特色与使用方法
1.1本书特色
1.2本书第3版亮点
1.3本书第1、2、3版之间的关系
1.4本书面向的读者群体
1.5本书4大篇章之间的关系
1.6本书与市面上其他软件实践类书籍的主要区别
1.7如何更好地使用本书
1.8本书及其配套下载资源使用说明
1.9读书笔记
第2章软件测试核心理论知识串讲
2.1软件测试
2.1.1软件测试的定义
2.1.2软件测试的原则
2.1.3软件测试分类
2.1.4软件测试策略
2.2软件测试模型
2.2.1V模型
2.2.2W模型
2.2.3X模型
2.2.4H模型
2.2.5前置模型
2.3软件缺陷
2.3.1软件缺陷的定义
2.3.2软件缺陷的分类
2.4测试用例
2.4.1测试用例的定义
2.4.2测试用例设计方法
2.5软件测试的自动化
2.5.1软件自动化测试
2.5.2软件测试工具分类
2.6软件测试管理
2.6.1测试团队建设与管理
2.6.2软件测试过程管理
2.6.3缺陷管理
2.6.4软件测试文档
2.7读书笔记
第3章软件测试工程师的成长与发展
3.1软件测试工程师应具备的能力和素养
3.1.1计算机专业技能
3.1.2个人能力和素养
3.2软件测试职业发展
3.3软件测试工程师的成长历程
3.4读书笔记
第二篇基于ASP.NET产品线的项目实践
第4章项目初期各阶段的主要工作
4.1项目立项与拟定产品的发展方向阶段
4.1.1产品需求文档的形成及其实例
4.1.2需求阶段测试工程师的工作
4.2产品规格说明书制定阶段
4.2.1产品规格说明书的形成及其实例
4.2.2产品规格说明书制定阶段测试工程师的工作
4.3产品技术文档设计阶段
4.3.1编写技术设计文档
4.3.2技术设计文档阶段测试工程师的工作
4.4读书笔记
第5章软件测试计划的制定
5.1为何要制定测试计划
5.2怎样设计测试计划
5.2.1产品基本情况调研
5.2.2测试需求说明
5.2.3计划表
5.2.4测试资源配置
5.2.5系统风险评估
5.2.6测试的策略和记录
5.2.7问题跟踪报告
5.2.8测试计划的发布
5.3测试计划设计实例
5.4测试计划修改与维护
5.5读书笔记
第6章软件测试用例的编写
6.1白盒测试用例设计方法与案例
6.1.1逻辑覆盖法设计案例
6.1.2基本路径测试法案例
6.2黑盒测试用例设计案例
6.2.1等价类划分法设计案例
6.2.2边界值分析法设计案例
6.2.3因果图法设计案例
6.2.4错误推测法设计案例
6.2.5功能图法设计案例
6.2.6综合法设计案例
6.2.7异常测试法设计案例
6.3压力/性能测试设计案例
6.4安全性测试
6.4.1安全性测试的引入
6.4.2常见的Web安全性测试
6.4.3XSS测试技巧
6.5跨浏览器/跨平台测试设计案例
6.5.1跨浏览器测试设计案例
6.5.2跨平台测试设计案例
6.6本地化测试与国际化测试
6.6.1国际化测试的实例
6.6.2本地化测试的实例
6.7Accessibility测试案例
6.8如何组织和跟踪测试用例
6.8.1组织测试用例
6.8.2测试用例的跟踪
6.8.3测试用例的维护
6.9读书笔记
第7章软件项目各部门相互协作
7.1共同审阅文档
7.2交流与沟通
7.2.1沟通的意义及项目干系人分析
7.2.2沟通与效率的关系
7.2.3沟通的一些要素
7.2.4项目中沟通运用的案例分析
7.2.5结束语
7.3读书笔记
第8章执行测试案例并报告缺陷
8.1项目过程中各阶段测试重点和策略
8.2如何报告所发现的缺陷
8.3如何尽早尽多地报缺陷
8.4发现缺陷的基本方法
8.4.1通过逻辑覆盖法发现的缺陷
8.4.2通过路径覆盖法发现的缺陷
8.4.3通过等价类划分法发现的缺陷
8.4.4通过边界值法发现的缺陷
8.4.5通过因果图法发现的缺陷
8.4.6通过错误推测法发现的缺陷
8.4.7通过功能图法发现的缺陷
8.4.8通过综合法发现的缺陷
8.4.9通过异常法测试发现的缺陷
8.4.10通过压力/性能测试发现的缺陷
8.4.11通过安全性测试发现的缺陷
8.4.12通过跨平台测试发现的缺陷
8.4.13通过跨浏览器测试发现的缺陷
8.4.14通过本地化与国际化测试发现的缺陷
8.4.15通过Accessibility测试发现的缺陷
8.5如何让别人接受你报的缺陷
8.5.1缺陷为什么不被接受
8.5.2不被接受的缺陷的状态
8.5.3如何避免不被接受的缺陷
8.5.4如何处理不被接受的缺陷
8.6如何验证缺陷
8.6.1哪些状态的缺陷可以验证
8.6.2验证缺陷前需要做什么
8.6.3缺陷被完全修改的标准
8.6.4如何验证缺陷
8.6.5验证缺陷后还需要做什么
8.7如何分析缺陷
8.7.1什么是缺陷分析
8.7.2缺陷分析的重要性
8.7.3收集缺陷分析的信息
8.7.4如何进行缺陷分析
8.8一个缺陷管理系统应用实例
8.8.1BugFree的安装
8.8.2缺陷管理
8.8.3Test Case管理
8.8.4统计报表
8.9读书笔记
第9章产品功能完善与修复缺陷阶段
9.1模块功能完成并进行单元测试
9.2系统功能集成并进行整体测试
9.3产品代码冻结
9.4产品发布前的最后检查
9.5读书笔记
第10章测试工程师在产品发布前后的工作
10.1如何评估软件质量
10.2如何发布质量分析报告
10.3如何配合客户做验收测试
10.4如何处理客户发现的问题
10.5读书笔记
第三篇软件测试领域9大专题技术分享
第11章Web测试专题技术分享
11.1Web测试的特点
11.2Web测试基础
11.2.1获取软件版本号
11.2.2修改浏览器的代理设置
11.2.3修改hosts文件
11.2.4测试网上付费购物
11.2.5截屏软件FSCapture的使用
11.2.6截屏软件Jing的使用
11.3界面测试
11.3.1文字或图片重叠
11.3.2文字或图片剪裁
11.3.3文字或图片没对齐
11.3.4重复菜单项或链接
11.3.5提示信息错误
11.3.6界面测试其他问题
11.4功能测试
11.4.1tooltip不显示
11.4.2Js error问题
11.4.3页面链接错误
11.4.4页面访问资源不可用
11.4.5出现404 Error
11.4.6按钮不工作
11.4.7功能未实现
11.4.8错误信息提示不合理
11.4.9数据库访问错误
11.4.10文档无法下载
11.5表单测试
11.5.1文本框测试常见验证点
11.5.2特殊输入域常见验证点
11.5.3单选按钮常见验证点
11.5.4复选框常见验证点
11.5.5大块文字区域常见验证点
11.5.6下拉列表框常见验证点
11.5.7排序常见验证点
11.5.8分页测试常见验证点
11.5.9搜索框填充域常见验证点
11.5.10用户登录常见验证点
11.5.11特殊字符处理常见验证点
11.5.12转义字符处理常见验证点
11.5.13多次快速提交问题
11.5.14共用页面Session问题
11.5.15页面刷新问题
11.5.16浏览器“前进”/“后退”按钮问题
11.6读书笔记
第12章Client测试专题技术分享
12.1Client测试的特点
12.2如何进行Client测试
12.2.1安装测试
12.2.2卸载测试
12.2.3UI测试
12.2.4功能测试
12.2.5字符输入测试
12.2.6tooltip测试
12.2.7链接测试
12.2.8操作按钮测试
12.2.9菜单测试
12.2.10音频测试
12.2.11视频测试
12.2.12程序运行权限测试
12.3如何获取测试需要的Trace
12.4读书笔记
第13章Mobile测试专题技术分享
13.1Mobile的特点
13.2Mobile测试基础
13.2.1手机测试常见类型
13.2.2手机测试与传统测试的区别
13.2.3监控手机流量
13.2.4获取手机的Root权限
13.3手机与计算机的联系
13.3.1碗豆荚的基本操作
13.3.2360手机助手的基本操作
13.3.3腾讯手机管家基本操作
13.3.4iPhone/iPad/iPad Mini与计算机的联系
13.3.5备份手机中的数据
13.3.6截取手机屏幕内容
13.3.7记录手机的Error Log
13.3.8手机数据信息
13.4手机设备自身测试
13.5手机应用软件测试
13.6手机Web应用测试
13.7手机测试问题集锦
13.8读书笔记
第14章国际化本地化测试专题技术分享
14.1软件国际化
14.1.1国际化概述
14.1.2软件国际化误区
14.2软件本地化
14.2.1软件本地化概述
14.2.2软件本地化误区
14.3国际化软件测试
14.3.1在本地化机器上安装使用程序
14.3.2正确的字符集编码
14.3.3伪本地化测试发现文本扩展问题
14.3.4测试区域文化和传统特征
14.3.5保证文本与代码分离
14.4软件本地化测试
14.4.1翻译问题
14.4.2数据格式问题
14.4.3快捷键问题
14.4.4本地化后的排序问题
14.4.5常用本地化测试技巧
14.5读书笔记
第15章跨平台跨浏览器专题技术分享
15.1跨平台测试的特点
15.2软件平台的分类
15.2.1Windows平台
15.2.2Mac平台
15.2.3Linux平台
15.2.4Solaris平台
15.2.5HPUX平台
15.2.6IBMAIX平台
15.3跨平台测试需具备的知识
15.3.1Windows平台
15.3.2Mac平台
15.3.3UNIX平台
15.4跨平台测试技术分享
15.4.1应用程序安装
15.4.2应用程序运行
15.4.3程序运行界面测试
15.4.4程序功能测试
15.5浏览器的分类
15.5.1IE
15.5.2Firefox
15.5.3Chrome
15.5.4Safari
15.6跨浏览器测试技术分享
15.7读书笔记
第16章Web安全测试技术专题分享
16.1Web安全测试
16.1.1Web前端工具Firebug的使用
16.1.2Web前端工具Fiddler的使用
16.1.32010 年Web应用十大安全攻击
16.1.42010年与2007年Web应用十大安全攻击对比
16.2未验证的重定向和转发
16.2.1攻击说明
16.2.2攻击举例
16.2.3开发人员防范方法
16.3传输层保护不足
16.3.1攻击说明
16.3.2攻击举例
16.3.3开发人员防范方法
16.4URL访问控制不当
16.4.1攻击说明
16.4.2攻击举例
16.4.3开发人员防范方法
16.5存储不安全
16.5.1攻击说明
16.5.2攻击举例
16.5.3开发人员防范方法
16.6安全配置错误
16.6.1攻击说明
16.6.2攻击举例
16.6.3开发人员防范方法
16.7跨站请求伪造
16.7.1攻击说明
16.7.2攻击举例
16.7.3开发人员防范方法
16.8不安全的对象直接引用
16.8.1攻击说明
16.8.2攻击举例
16.8.3开发人员防范方法
16.9身份认证和会话管理不当
16.9.1攻击说明
16.9.2攻击举例
16.9.3开发人员防范方法
16.10跨站脚本
16.10.1攻击说明
16.10.2攻击举例
16.10.3开发人员防范方法
16.11注入SQL
16.11.1攻击说明
16.11.2攻击举例
16.11.3开发人员防范方法
16.12开放式Web应用程序安全项目OWASP
16.12.1OWASP组织介绍
16.12.2OWASP上最新Web安全攻击与防范技术
16.12.3WiKi上最新Web安全攻击与防范技术
16.13读书笔记
第17章敏捷测试专题技术分享
17.1敏捷软件开发简介
17.1.1敏捷开发的流程
17.1.2敏捷开发的质量管理
17.1.3敏捷开发中的关键概念
17.2敏捷测试的定义
17.3敏捷测试的实质
17.4敏捷测试与普通测试的区别
17.5敏捷项目测试实例介绍
17.5.1实例项目介绍
17.5.2用户故事设计和发布计划阶段
17.5.3迭代 Sprint 阶段
17.5.4Sprint 结束和下一个 Sprint 开始
17.6读书笔记
第18章软件自动化测试专题技术分享
18.1引入自动化测试
18.2什么是自动化测试
18.2.1自动化测试是怎样工作的
18.2.2自动化测试的类别
18.2.3设计一个常见的自动化测试框架
18.3持续集成自动化测试
18.4自动化测试工具JMeter
18.4.1JMeter是什么
18.4.2JMeter的安装和运行
18.4.3JMeter自动化脚本设计策略
18.4.4抓取一个简单的请求
18.4.5设置配置文件
18.5设计一个简单的脚本
18.5.1添加图书——HTTP Request
18.5.2查看运行结果——View Results Tree
18.5.3访问数据库——JDBC Request
18.5.4验证测试结果——Response Assertion
18.5.5清理数据
18.6读书笔记
第19章压力与性能测试专题技术分享
19.1什么是压力、性能测试
19.2压力、性能测试用例设计
19.3压力、性能测试——JMeter
19.3.1单线程添加多个用户
19.3.2多线程添加多个用户
19.4生成和分析测试报告
19.4.1生成测试报告
19.4.2分析测试报告
19.5读书笔记
第四篇师生动手实践篇
第20章自己动手完成软件测试实践
20.1中心在线的网站测试实践
20.2国内知名网站或应用测试实践
20.3如何设计测试案例
20.3.1看清项目测试范围
20.3.2编写测试案例
20.4准确汇报Bug的技巧
20.4.1准确汇报Bug的几条基本准则
20.4.2描述Bug中需要注意的事项
20.4.3在汇报英文Bug时的专业英文描述
20.4.4与外国人进行项目交流常见英文信件含义
20.5寻找软件产品缺陷获奖作品欣赏
20.5.1全国大学生寻找产品缺陷(Find Bug)技能大赛说明
20.5.2汇报产品缺陷模板
20.5.3参赛选手提交的作品内容
20.5.4大赛组委会审阅评价
20.6读书笔记
附录A大学图书管理系统说明书
附录B软件测试常见英文与中文对照描述
附录C软件测试工程师经典面试题与参考回答
附录D作者与贡献者简介
参考文献