第1章 软件测试概述 1
什么是软件测试 1
测试工程师的任务 3
小知识 5
什么是PSS数据 5
什么是Watson数据 5
测试工程师的职业路径 6
成功职业生涯规划的提示 7
测试与管理 15
案例:微软软件开发团队 16
练习:测试自动可乐贩卖机 18
第2章 测试与软件开发模型 19
瀑布模型(Waterfall Model) 20
RUP 20
敏捷软件开发方法(Agile software development) 22
软件开发过程中的测试 23
提高软件的可测性(Testability) 23
测试模式 24
微软的软件产品开发过程 25
案例:MSF(Microsoft Solution Framework) 28
第3章 软件质量与测试 35
软件质量(Quality) 35
质量控制(Quality Control) 36
质量保证(Quality Assurance) 37
软件工程师摧毁地球 38
全面质量管理(Total Quality Management,TQM) 38
能力成熟度模型(Capability Maturity Model? Integration,CMMI) 39
ISO 9000 & ISO 17205 40
事后析误(Postmortem) 41
根本原因分析(Root Cause Analysis,RCA) 41
故障模式与后果分析(Failure mode and effects analysis) 42
威胁模型分析(Threat Model Analysis,TMA) 43
第4章 软件测试方法 45
黑盒测试(Black-box testing) 45
白盒测试(White-box testing) 46
灰盒测试(Grey-box Testing) 48
基于场景的测试方法(Scenario testing) 49
等价类法(Equivalence value class) 50
练习:等价类测试设计 51
边界值法(Boundary value analysis) 52
示例:边界值分析 53
判定表法(Table Based Methodology) 54
组合分析法(Combinatorial analysis) 55
工具:PICT工具使用 56
状态转换表(State transition) 58
第5章 软件测试类型 59
功能测试(Functional Testing) 59
小知识:API Testing 61
工具:NUnit 61
工具:Visual Studio单元测试框架 62
回归测试(Regression testing) 63
冒烟测试与BVT测试 65
探索性测试(Exploratory testing) 67
安装/版本升级测试(Setup/upgrade testing) 69
工具:VeriTest-Rational Installation Analyzer 71
软件兼容性测试(Compatibility testing) 72
案例:Windows Vista兼容性测试 72
小知识:UAC 73
工具:ApplicationVerifier 75
性能测试(Performance testing) 77
工具:Windows Performance Analysis Tools(WPT) 79
工具:Visual Studio性能分析工具 80
工具:WPFPerf 81
负载测试(Load testing) 83
监视和分析负载测试结果 84
压力测试(Stress testing) 85
国际化/全球化/本地化测试 87
小知识:118N,G11N,L10N 88
编码 89
工具:Character Map程序 91
工具:屏幕键盘工具 92
辅助选项测试(Accessibility testing) 92
工具:accVerify 94
工具:UI Spy 94
安全性测试(Security testing) 95
保证应用的安全性和威胁建模 96
小知识:微软安全性测试10个小提示 98
小知识:Microsoft SDL 98
工具介绍:SDL Threat Modeling Tool v3 99
安全托管代码 100
托管代码的常见设计缺陷 101
工具:Fxcop 103
C/C++代码的常见设计缺陷 104
工具:Prefast 105
代码度量(Code Metrics) 107
工具:Visual Studio 2008代码度量 108
第6章 测试计划和测试策略 110
什么是测试计划 110
模板:测试计划文档 111
什么是测试策略 139
模板:测试策略模板 140
测试范围 143
风险优先级模型 145
基于风险的测试 146
有计划的复审活动 147
第7章 测试自动化 150
测试自动化的发展 150
手动测试 151
硬编码测试自动化 152
工具:RPF(Record and Playback Framework)Programmer 152
练习:轻量.NET UI自动化设计 153
小知识:反射技术 159
Microsoft UI自动化库 160
测试自动化程序设计 160
测试库和测试框架 161
工具:White 162
数据驱动测试 164
基于模型的测试 165
小知识:杀虫剂悖论 166
例子:微软过桥问题 166
小知识:Dijkstra算法 168
工具:WinSTDtoDOT Visualization Tool 168
工具:NModel工具 170
第8章 代码覆盖率 171
代码覆盖率 171
覆盖种类 173
代码覆盖率度量结果分析和决策 178
其他类型的覆盖 178
工具:Visual Studio代码覆盖率工具 179
第9章 调试 180
调试 180
工具:Visual Studio在设计时进行调试 182
异常 182
小知识:异常捕获 185
断言(ASSERT) 186
工具:WinDBG 187
托管代码中的断言 188
转储文件 188
转储文件类型 189
用户模式数据转储文件生成 191
核心转储文件生成 191
远程调试 192
调试准则 192
调试建议 193
第10章 测试文档编写 195
测试文档概述 196
测试用例 197
模板:测试用例模板 198
软件缺陷报告(Bug Report) 199
模板:软件缺陷报告 201
项目状态报告 203
第11章 软件缺陷管理 204
缺陷处理工作流 204
缺陷类选(Bug Triage) 205
缺陷类选图例 206
优先级和严重性定义 207
小知识:错误收敛(Bug Convergence) 212
小知识:零错误反弹(Zero Bug Bounce) 212
缺陷消除的有效性(Defect Removal Efficiency) 214
第12章 完整的测试体系构成 215
人员 215
一个完善的测试体系的构成 217
环境搭建 218
测试执行管理 220
工具:WTT测试框架 221
工具:VSTS测试管理 221
第13章 微软公司企业文化 226
员工才是最重要的资产 226
认同和鼓励多元化 227
用技术武装人 228
技术可以改变员工的工作方式 229
利用信息要真正帮助员工和企业 229
微软公司价值观 230
微软的企业商业环境 231
实现承诺 232
从错误中学习 233
按期完成工作 233
了解决议的形成过程 235
解决冲突 236
尊重多元化 237
第14章 更加国际化 238
打死我也不说(Yes to death) 238
美国的核心价值与商业 239
第15章 测试经理的领导力培养 246
领导风格 246
激励团队 248
构建团队 251
做出决定 254
附录A 对欧美外包的有效沟通之道 257
美国人的沟通方式 257
建立信誉 260
获取信息 263
善于表达 265
手机、电话、邮件、书信、报告 269
交涉与谈判 272
与美国人讨论的话题 276
附录B 对欧美外包活动之有效的会议组织 281
组织有欧美人士参加的会议 281
附录C 学会写邮件 286