《软件测试技术大全 测试基础、流行工具、项目实战 第2版》PDF下载

  • 购买积分:17 如何计算积分?
  • 作  者:陈能技编著
  • 出 版 社:北京:人民邮电出版社
  • 出版年份:2011
  • ISBN:9787115252562
  • 页数:562 页
图书介绍:本书基本涵盖了软件测试的各个方面的知识,从测试设计到测试开发,从测试执行到测试管理,从测试的基本理论到测试的实用技术,从测试工具的使用倒测试工具的开发。

第一篇 软件测试的基础 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小结 9

1.5新手入门须知 9

1.6模拟面试问答 10

第2章 软件测试的组织 11

2.1测试的组织形式 12

2.1.1微软的经验教训 12

2.1.2最简单的软件测试组织 12

2.1.3组织形式的分类方式 12

2.1.4综合型的测试组织 14

2.2融入测试组织 15

2.2.1根据开发的模式判断自己的测试角色定位 15

2.2.2“支援编程人员”的测试与“批判性”的测试 16

2.2.3“面向业务”的测试与“面向技术”的测试 16

2.2.4测试的划分对敏捷项目开发的重要性 17

2.2.5如何融入一个项目团队 18

2.2.6快速融入项目团队的技巧 18

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责任感是测试人员的自我要求 29

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测试人员的“武器” 32

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脚本语言 35

3.2.14文档能力 38

3.3小结 40

3.4新手入门须知 40

3.5模拟面试问答 41

第二篇 软件测试必备知识 42

第4章 软件工程与软件测试 42

4.1软件工程简介 43

4.1.1什么是软件工程 43

4.1.2软件的生命周期 43

4.1.3软件工程的研究领域 44

4.1.4软件工程的发展历史 44

4.1.5软件工程化概念的提出 44

4.1.6“软件工厂” 45

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.10Update命令 74

5.3.11将SVN服务注册为系统服务 74

5.3.12远程客户端访问 75

5.3.13目录访问权限控制 75

5.4小结 76

5.5模拟面试问答 77

第6章 软件质量与软件测试 78

6.1软件质量属性 79

6.1.1质量的3个层次 79

6.1.2软件质量模型 80

6.2软件质量保证与软件测试 80

6.2.1 SQA与软件测试 81

6.2.2 SQA与项目组各成员之间的关系 81

6.2.3 SQA组织 81

6.2.4 SQA的工作内容 82

6.2.5 QA与QC的区别 82

6.3质量保证体系建设 83

6.3.1 ISO 9000质量管理体系与八项质量管理原则 83

6.3.2 ISO 9000质量管理体系的建立过程 84

6.3.3 CMM质量管理体系与过程改进 84

6.3.4结合PSP、TSP建立CMM过程改进体系 84

6.3.5应用PDCA质量控制法持续改进软件质量 85

6.4小结 85

6.5新手入门须知 86

6.6模拟面试问答 86

第7章 软件测试的目的与原则 87

7.1软件测试的目的 88

7.1.1测试是为了建立软件的信心 88

7.1.2软件测试与软件信心的关系 88

7.1.3软件测试的两面性 88

7.1.4软件测试的验证与确认 89

7.1.5测试是一种服务 90

7.2软件测试应该遵循的几个原则 90

7.2.1 Good enough原则 90

7.2.2 Pareto原则 91

7.2.3尽可能早开展测试 91

7.2.4在发现比较多错误的地方需要投入更多的测试 92

7.2.5同化效应 92

7.3小结 92

7.4新手入门须知 93

7.5模拟面试问答 93

第8章 软件测试的方法论 95

8.1软件测试的5大流派 96

8.1.1分析学派 96

8.1.2标准学派 96

8.1.3质量学派 97

8.1.4上下文驱动学派 97

8.1.5敏捷学派 98

8.1.6不同流派的测试定义 98

8.2软件测试的方法应用 98

8.2.1微软公司的第一类测试 99

8.2.2微软公司的第二类测试 99

8.2.3微软的缺陷管理 100

8.3 IBM公司的软件测试方法 100

8.3.1回归测试 100

8.3.2测试的度量 101

8.3.3用例驱动 101

8.3.4 RUP对软件测试的分类 101

8.3.5 RUP对测试阶段的划分 103

8.4自动错误预防(AEP)方法 103

8.4.1 AEP的基本概念 103

8.4.2实现软件自动错误预防的5大法则 104

8.5小结 106

8.6新手入门须知 106

8.7模拟面试问答 108

第9章 软件测试的过程管理 109

9.1软件测试的各个阶段 110

9.2测试需求 110

9.2.1需求规格说明书的检查要点 111

9.2.2需求文档的检查步骤 111

9.2.3通过编写测试用例来检查需求 114

9.3测试的计划 115

9.3.1为什么要制定测试计划 115

9.3.2测试计划是对测试过程的整体设计 115

9.3.3确定测试范围 116

9.3.4制定测试策略 116

9.3.5安排好测试资源 117

9.3.6安排好进度 117

9.3.7计划风险 118

9.4测试的设计及测试用例 118

9.4.1基于需求的测试用例设计 118

9.4.2等价类划分法 119

9.4.3边界值分析法 120

9.4.4等价类+边界值 122

9.4.5基本路径分析法 122

9.4.6因果图法 123

9.4.7场景设计法 124

9.4.8错误猜测法 125

9.4.9正交表与TCG的使用 125

9.4.10利用均匀试验法设计测试用例 127

9.4.11组合覆盖与PICT的使用 128

9.4.12分类树与CTE XL的使用 130

9.4.13测试用例设计的自动化 132

9.4.14敏捷测试用例设计 133

9.4.15测试用例的粒度 133

9.4.16基于需求的测试用例设计 134

9.4.17测试用例的评价 134

9.4.18测试用例数据生成的自动化 135

9.5测试的执行 135

9.5.1测试用例的合理选择 135

9.5.2测试的分工与资源利用 136

9.5.3测试环境的搭建 136

9.5.4BVT测试与冒烟测试 137

9.5.5每日构建的基本流程 138

9.5.6通过每日构建来规范源代码管理 138

9.5.7通过每日构建来控制版本风险 139

9.6测试的记录和跟踪 139

9.6.1Bug的质量衡量 139

9.6.2如何录入一个合格的Bug 140

9.6.3报告发现问题的版本 140

9.6.4报告问题出现的环境 141

9.6.5报告问题重现的操作步骤 141

9.6.6描述预期的行为 141

9.6.7描述观察到的错误行为 141

9.6.8Bug报告应该注意的几个问题 142

9.6.9如何跟踪一个Bug的生命周期 142

9.6.10如何与开发人员沟通一个Bug 143

9.6.11Bug评审要注意的问题 143

9.6.12基于QC的缺陷管理 144

9.7回归测试 144

9.7.1为什么会回归 145

9.7.2回归测试的难度 145

9.7.3基于风险的回归测试 145

9.8测试总结和报告 147

9.8.1缺陷分类报告 147

9.8.2缺陷类型分布报告 148

9.8.3缺陷区域分布报告 148

9.8.4缺陷状态分布报告 148

9.8.5缺陷趋势报告 149

9.8.6典型缺陷与Bug模式 150

9.8.7测试中的PDCA循环 151

9.8.8客观全面的测试报告 152

9.8.9实用测试经验的总结 152

9.9小结 153

9.10新手入门须知 153

9.11模拟面试问答 153

第10章 软件测试的度量 156

10.1软件测试度量的目的 157

10.1.1测试度量的难度 157

10.1.2测试人员工作质量的鉴定 158

10.1.3度量的目的 159

10.2软件测试的度量方法及其应用 159

10.2.1 Bug的数量能说明什么 160

10.2.2度量Bug的数量 160

10.2.3加权法度量缺陷 160

10.2.4 Bug的定性评估 162

10.2.5 Bug综合评价模型 162

10.2.6测试覆盖率统计 163

10.2.7代码覆盖率 163

10.2.8功能模块覆盖率 164

10.2.9需求覆盖率 165

10.2.10测试用例文档产出率与测试用例产出率 166

10.2.11考核测试人员的硬指标和软指标 166

10.2.12硬指标 166

10.2.13软指标 167

10.2.14考核表 168

10.3小结 169

10.4新手入门须知 169

10.5模拟面试问答 170

第三篇 实用软件测试技术与工具应用 171

第11章 实用软件测试技术 171

11.1软件测试技术的发展 172

11.2软件测试技术 173

11.2.1不管黑盒、白盒,找到Bug就行 173

11.2.2黑盒测试 173

11.2.3白盒测试 174

11.2.4手工测试、自动化测试,一个都不能少 175

11.2.5自动化测试的目的 175

11.2.6手工测试的不可替代性 175

11.2.7探索性测试的“技术” 176

11.2.8探索性测试的基本过程 177

11.2.9探索性测试的管理 177

11.2.10单元测试的定义 178

11.2.11单元测试由谁做 178

11.2.12结对单元测试 179

11.2.13单元级别的性能测试 180

11.2.14性能测试“从小做起” 180

11.2.15数据库性能检查 182

11.2.16软件的“极限考验”——压力测试 183

11.2.17软件的容量如何 183

11.2.18安全性测试 187

11.2.19网页安全漏洞检测 188

11.2.20 SQL注入 188

11.2.21缓冲区溢出 189

11.2.22安装测试 189

11.2.23环境测试 192

11.3实用软件测试技术的综合应用 193

11.3.1跟踪法测试 193

11.3.2跟踪法的典型应用 193

11.3.3跟踪法测试的好处 195

11.3.4跟踪法测试的必要性 196

11.3.5 C/S结构软件系统的测试 196

11.3.6 B/S结构软件系统的测试 197

11.3.7链接测试 197

11.3.8 Cookies测试 198

11.3.9兼容性测试 198

11.3.10并发访问测试 198

11.3.11手机应用测试的要点 198

11.3.12手机应用软件的特点 199

11.3.13手机应用软件的测试要点 199

11.3.14游戏软件系统的测试重点是“玩” 199

11.3.15游戏可玩性的测试 200

11.3.16游戏的环境测试 201

11.3.17网络游戏的安全性测试 201

11.3.18游戏的性能测试 201

11.3.19界面交互及用户体验测试 201

11.3.20使用用户模型对界面交互进行测试 201

11.3.21界面和用户体验测试的要点 202

11.3.22数据库测试 203

11.3.23数据库设计的测试 203

11.3.24 SQL代码规范性测试 203

11.3.25 SQL语句效率测试 204

11.3.26 SQL数据库兼容性测试 205

11.3.27 Web Services的测试 206

11.3.28内存泄露测试 208

11.3.29造成软件内存泄露的原因 208

11.3.30如何检测内存泄露 209

11.3.31对内存问题测试的分工与合作 209

11.3.32 检查程序员的编码规范 210

11.3.33报表测试 211

11.3.34报表测试的业务基础 211

11.3.35报表测试中的细节问题检查 212

11.3.36报表测试中的性能测试、安全性测试 212

11.3.37报表的保存和打印测试 212

11.3.38报表的格式测试 212

11.3.39联机帮助和用户手册的测试 212

11.3.40联机帮助的测试要点 213

11.3.41用户手册的测试要点 214

11.3.42缺乏工具支持的性能测试 214

11.3.43借助其他小工具和自己开发的小程序来解决问题 215

11.3.44手工的性能测试 217

11.3.45本地化测试与国际化测试 218

11.3.46本地化软件测试和国际化测试的要点 218

11.3.47本地化软件测试和国际化测试对测试人员的要求 219

11.3.48本地化软件测试和国际化测试工具的使用 219

11.3.49可访问性测试(Accessibility Testing) 220

11.3.50Section 508 Web指南 220

11.3.51可访问性测试工具 221

11.4小结 221

11.5新手入门须知 221

11.6模拟面试问答 222

第12章 测试管理工具QC的应用 225

12.1测试管理平台 226

12.1.1测试过程管理规范化 226

12.1.2测试管理平台——QC简介 227

12.1.3 QC安装 227

12.1.4 QC安装常见问题 230

12.2测试需求管理 234

12.2.1定义测试需求 234

12.2.2从Office文档导入需求到QC 234

12.2.3把需求项转换成测试计划 235

12.3测试计划管理 236

12.3.1测试用例的管理 236

12.3.2设计测试步骤 237

12.3.3测试用例的重用 238

12.3.4测试用例对需求项的覆盖 239

12.4测试执行 241

12.4.1定义测试集 241

12.4.2为测试集添加测试用例 242

12.4.3执行测试 243

12.5缺陷登记与跟踪 244

12.5.1添加新缺陷 244

12.5.2如何避免录入冗余的缺陷 244

12.5.3 BUG的生命周期 245

12.5.4把缺陷链接到测试 246

12.6在QC中生成测试报告的图表 247

12.7基于QC的测试项目管理 248

12.7.1 QC的库结构 248

12.7.2创建QC项目库 248

12.7.3定制项目 248

12.7.4添加项目组成员 249

12.7.5自定义QC的数据字段 250

12.7.6配置跟踪提醒规则 252

12.7.7设置可追溯性通知规则 254

12.7.8设置工作流 256

12.7.9“缺陷模块”列表自定义 256

12.7.10添加缺陷字段自定义 257

12.7.11脚本编辑器 258

12.7.12 QC项目的导入导出 259

12.7.13 QC项目的备份还原 261

12.8其他资源 262

12.9练习和实践 262

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

13.1如何开展功能自动化测试 265

13.1.1选取合适的测试项目来开展自动化测试 265

13.1.2自动化测试工程师的知识体系 265

13.1.3自动化测试工具选型 266

13.1.4自动化测试项目计划 267

13.2使用QTP开展功能自动化测试 268

13.2.1 QTP的安装 268

13.2.2使用QTP录制脚本 269

13.2.3使用关键字视图和专家视图编辑脚本 272

13.2.4回放脚本 273

13.2.5插入检查点 273

13.3构建功能自动化测试框架 276

13.3.1模块化框架 276

13.3.2函数库结构框架 278

13.3.3数据驱动框架 279

13.4其他资源 282

13.5练习和实践 282

第14章 性能测试工具LoadRunner的应用 284

14.1如何开展性能测试 285

14.1.1性能测试工程师的素质要求 285

14.1.2认识性能测试 286

14.1.3性能测试的类型 287

14.1.4性能测试成熟度模型 288

14.1.5分析和定义性能需求 289

14.1.6“不成文的”性能需求定义 290

14.1.7计划性能测试 291

14.2使用LoadRunner开展性能测试 291

14.2.1 LoadRunner简介 291

14.2.2 LoadRunner基本使用方法和步骤 293

14.2.3选择协议 295

14.2.4录制脚本 296

14.2.5常见脚本回放问题解决 298

14.2.6修改和完善脚本 299

14.2.7脚本参数化 300

14.2.8添加事务 300

14.2.9添加内容检查点 301

14.2.10性能参数的选择和监视 302

14.2.11运行场景 304

14.2.12选择需要监控的性能参数 304

14.2.13性能测试报告与性能瓶颈分析 304

14.3其他资源 306

14.4练习和实践 306

第15章 安全测试 308

15.1常见安全漏洞分析 309

15.1.1缓冲区溢出 309

15.1.2整数溢出 311

15.1.3命令注入 312

15.1.4 SQL注入 312

15.1.5 XSS-跨站脚本攻击 314

15.2使用AppScan进行安全测试 316

15.2.1AppScan简介 316

15.2.2利用AppScan进行Web安全测试 316

15.2.3使用AppScan测试AltoroJ项目 317

15.3其他资源 320

15.4练习和实践 321

第16章 单元测试工具MSTest的应用 323

16.1单元测试范围管理 324

16.1.1单元测试的分类 324

16.1.2静态单元测试 325

16.1.3动态单元测试 325

16.1.4“广专结合”、“动静相宜” 326

16.1.5单元测试的效果 326

16.1.6单元测试的范围 326

16.2单元测试的过程管理 327

16.2.1单元测试的过程策划 327

16.2.2管理层对单元测试的重视 327

16.2.3单元测试意识的改变 327

16.2.4单元测试的组织 328

16.2.5单元测试模式的选择 328

16.2.6单元测试的管理规范 328

16.2.7单元测试的人员分工 329

16.2.8单元测试的策略 329

16.2.9单元测试用例的设计 329

16.2.10代码标准和规范 329

16.2.11代码审查制度 330

16.2.12单元测试的流程 330

16.2.13单元测试与每日构建的结合 331

16.2.14单元测试的自动化方面 331

16.2.15自动化单元测试与每日构建的结合 332

16.3单元测试的质量度量 333

16.3.1单元测试覆盖率 333

16.3.2单元测试评审 334

16.4单元测试工具MSTest的应用 334

16.4.1建立单元测试项目 335

16.4.2巧用NMock对象 337

16.4.3对缺乏接口实现的类的方法进行测试 337

16.4.4使用NMock对象 337

16.4.5使用NMock的场合 338

16.4.6单元测试的执行 338

16.4.7测试管理 338

16.4.8运行测试代码 339

16.4.9查看测试结果 339

16.5数据驱动的单元测试 339

16.5.1为什么要使用数据驱动的方式 339

16.5.2创建数据驱动单元测试 339

16.5.3使用数据源 341

16.5.4使用配置文件定义数据源 342

16.5.5编写单元测试代码使用配置文件定义的数据源 343

16.6小结 343

16.7新手入门须知 344

16.8模拟面试问答 344

第17章 开源测试工具 346

17.1开源测试工具简介 347

17.1.1开源的背景 347

17.1.2开源测试工具的发展现状 347

17.1.3开源测试工具的分布 347

17.1.4开源测试工具的来源 348

17.1.5开源测试工具的优势 348

17.1.6开源测试工具的不足 348

17.2常用开源测试工具介绍——测试管理类 348

17.2.1 Bugzilla 349

17.2.2 Mantis 350

17.2.3 BugFree 351

17.2.4综合比较 352

17.3常用开源测试工具介绍——单元测试类 352

17.3.1 NUnit 352

17.3.2 NMock 353

17.3.3 NUnitForms 354

17.4常用开源测试工具介绍——性能测试类 355

17.4.1 JMeter 356

17.4.2 TestMaker 357

17.4.3 DBMonster 358

17.5常用开源测试工具介绍——自动化功能测试类 360

17.5.1 Abbot Java GUI Test Framework 360

17.5.2 White 361

17.5.3 Watir 362

17.6如何在测试组中引入开源测试工具 363

17.6.1开源测试工具的成本考虑 364

17.6.2引入开源测试工具的步骤 364

17.6.3引入开源测试工具可能碰到的问题 365

17.7小结 366

17.8新手入门须知 366

17.9模拟面试问答 367

第18章 测试工具的原理及制作 369

18.1自制测试工具的优势 370

18.2辅助工具的制作 371

18.2.1测试工具的开发策划 371

18.2.2测试语言的选择 371

18.2.3测试工具开发的各种实现技术 372

18.2.4接口驱动 372

18.2.5测试执行器及远程代理 373

18.2.6测试解释器和测试生成器 374

18.3利用Windows脚本辅助测试 374

18.3.1利用JScript进行简单的GUI自动化测试 375

18.3.2利用JScript检查注册表 375

18.3.3利用JScript的FileSystemObject对象处理文件 376

18.3.4读取文件 376

18.3.5创建文件 377

18.3.6利用JScript操作Excel 377

18.3.7在JScript中运行应用程序 378

18.3.8在JScript中使用WMI 379

18.3.9在JScript中访问网络 380

18.3.10在JScipt中使用正则表达式 381

18.3.11使用JScript发送邮件 382

18.3.12JScript脚本的调试方法 383

18.4简易自动化测试 383

18.4.1使用VBScript进行Web自动化测试 384

18.4.2利用UIAutomation实现GUI自动化测试 384

18.5设计一个性能测试框架 387

18.5.1性能测试的基本原理 387

18.5.2 Controller的简单设计 388

18.5.3 Agent的简单设计 389

18.5.4虚拟用户的产生 392

18.6正交表测试用例自动生成工具的设计 393

18.6.1正交表类的设计 394

18.6.2加载正交表文件 396

18.6.3解释输入 398

18.6.4查找正交表 398

18.6.5改进方向 406

18.7数据库比较工具的制作 407

18.7.1“三库”的问题 407

18.7.2SQLServer表结构原理 407

18.7.3数据库比较工具的设计 408

18.8 Oracle的SQL语句跟踪工具的制作 411

18.8.1设置Oracle的SQL跟踪参数 412

18.8.2打开SQL跟踪 412

18.8.3关闭SQL跟踪 413

18.8.4改进方向 414

18.9一个简单的猴子测试工具的制作 414

18.9.1猴子测试工具应该具备的功能 414

18.9.2 Windows API的调用 415

18.9.3截屏功能的实现 418

18.9.4让猴子动起来 420

18.9.5记录猴子的足迹 421

18.9.6给猴子一些知识 421

18.9.7记录被测试应用程序的资源使用情况 423

18.9.8完整的猴子测试工具 425

18.9.9扩展 432

18.10测试覆盖率辅助管理工具的制作 432

18.10.1测试覆盖率管理 432

18.10.2需求覆盖率管理 432

18.10.3测试用例覆盖率管理 433

18.10.4功能模块覆盖率管理 434

18.10.5代码覆盖率管理 435

18.10.6数据覆盖率管理 436

18.10.7测试覆盖率统计的自动化 437

18.10.8测试覆盖率对测试管理的意义 438

18.10.9测试覆盖率辅助管理工具的设计 438

18.10.10调用DevPatner的代码覆盖率统计工具 439

18.10.11用C#来调用DPAnalysis执行被测试应用程序 439

18.10.12测试覆盖率辅助管理工具的使用 443

18.11小结 444

18.12新手入门须知 445

18.13模拟面试问答 445

第19章 小工具的使用 447

19.1巧用Windows自带的小工具 448

19.1.1 Windows的任务管理器 448

19.1.2利用Windows任务管理器检查进程驻留 448

19.1.3利用Windows任务管理器检查内存问题 448

19.1.4利用Windows任务管理器检查网络使用情况 449

19.1.5利用Windows任务管理器检查CPU使用情况 450

19.1.6 Perf non的性能监控 450

19.1.7 NetStat的网络监视 453

19.2免费小工具的妙用 454

19.2.1 SQL Server数据库的SQL事件探查器 454

19.2.2 Visual Studio开发工具的Spy﹢﹢ 456

19.2.3 Visual SourceSafe的文件比较器 457

19.2.4 HTTP协议包查看器——HTTP Watch 458

19.2.5 HTML DO M查看器——IE Developer Toolbar 459

19.3小结 460

19.4新手入门须知 460

19.5模拟面试问答 461

第20章 持续集成 462

20.1持续集成简介 463

20.1.1持续集成的价值 463

20.1.2持续集成包含的过程 463

20.2利用Windows脚本搭建一个每日构建框架 463

20.2.1每日构建框架的基本要素 463

20.2.2获取源代码 464

20.2.3编译源代码 466

20.2.4分析编译结果 466

20.2.5处理编译结果 468

20.2.6发送编译报告 469

20.2.7利用Windows任务计划来定时启动脚本 470

20.2.8每日构建框架的扩展1——单元测试 471

20.2.9每日构建框架的扩展2——自动化功能测试 476

20.2.10每日构建框架的扩展3——每日缺陷简报 477

20.2.11缺陷库表结构分析 477

20.2.12缺陷统计程序的设计 479

20.2.13每日构建框架的扩展4——每日配置管理简报 483

20.2.14配置管理的现状 484

20.2.15缺陷简报程序的设计 484

20.2.16每日构建框架的扩展5——每日里程碑预报 486

20.2.17每日构建框架的其他扩展思路 488

20.2.18每日缺陷统计 488

20.2.19每日缺陷简报 490

20.3利用Windows脚本整合一个自动错误预防系统 491

20.3.1轻量级的AEP框架 491

20.3.2把AEP系统整合到每日构建框架中 491

20.3.3整合FxCop 491

20.3.4整合SQL BPA 493

20.3.5测试结果检查和发送 493

20.4其他资源 494

第21章 代码审查 495

21.1代码审查实践 496

21.1.1为什么需要代码审查 496

21.1.2代码静态分析的工作内容 497

21.1.3类型检查 497

21.1.4风格检查 497

21.1.5程序理解 498

21.1.6 Bug查找 499

21.2自动代码审查 500

21.2.1代码分析工具PCLint的应用 501

21.2.2 PCLint与VC6的整合 501

21.2.3代码风格审查工具StyleCop的应用 502

21.2.4 StyleCop的设置 503

21.3其他资源 504

第22章 探索性测试管理 505

22.1探索性测试的必要性 506

22.1.1探索性测试的原理 506

22.1.2探索性测试与即兴测试的区别 506

22.1.3探索性测试的意义 507

22.2如何进行探索性测试 507

22.2.1优秀探索性测试人员的基本素质 507

22.2.2测试就是向程序提问 508

22.3探索性测试的过程管理和度量 509

22.3.1测试组长是“教练” 509

22.3.2基于探索任务的测试计划 509

22.3.3探索性测试的“碰头会议” 510

22.4小结 513

22.5新手入门须知 513

22.6模拟面试问答 513

第23章 用户界面测试管理 515

23.1用户界面测试的必要性 516

23.2如何进行用户界面测试 516

23.2.1用户界面测试的时机 516

23.2.2后期修改界面的风险 517

23.2.3界面测试遗漏 517

23.2.4用户界面测试的要点 517

23.2.5“射箭”原理 518

23.2.6减少用户的工作量 518

23.2.7“少就是多” 518

23.3用户界面测试原则 518

23.3.1亲和力 519

23.3.2协助 520

23.3.3有效 521

23.3.4鼓励 522

23.3.5熟悉 522

23.3.6明显 523

23.3.7个性化 523

23.3.8安全 524

23.3.9满意 524

23.3.10简单 525

23.3.11支持 525

23.3.12多样性 526

23.4小结 526

23.5新手入门须知 527

23.6模拟面试问答 527

第四篇 软件测试的学习和研究 529

第24章 软件测试的学习环境 529

24.1学习氛围的建立 530

24.1.1培训导师制度 530

24.1.2把测试人员的学习内容作为工作考核的一部分 531

24.1.3把测试人员的学习计划纳入到项目计划 531

24.1.4把测试人员的学习和技术研究任务化、专门化 531

24.1.5建立一帮一的导师制度 532

24.1.6建立一个持续的培训体系 533

24.1.7读书会 534

24.1.8找个师傅学习软件测试 534

24.2软件测试经验的总结 535

24.2.1测试知识库的建立 535

24.2.2知识库的“进” 536

24.2.3知识库的“出” 536

24.2.4办一份内部期刊 537

24.2.5测试管理经验的总结 538

24.2.6过程管理经验总结 538

24.2.7个人管理经验总结 540

24.3软件测试的交流 541

24.3.1日常的交流 541

24.3.2专门的交流 542

24.3.3与开发人员的交流 542

24.3.4定义好自己的角色 543

24.3.5解释自己的工作 544

24.3.6尽量减少会产生误会和曲解的Bug报告 544

24.3.7与管理层的交流 545

24.3.8宣传测试 545

24.3.9主动报告测试 545

24.3.10外部交流 545

24.4小结 546

24.5新手入门须知 546

24.6模拟面试问答 547

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

25.1软件测试角色与其他项目角色的可转换性 550

25.1.1转向售前 550

25.1.2转向售后 551

25.1.3转向开发 553

25.1.4转向QA 554

25.2测试人员的发展路线 555

25.2.1管理路线 555

25.2.2技术路线 557

25.3软件测试的研究方向 558

25.3.1软件测试中的数学 558

25.3.2软件测试工具设计 559

25.3.3其他研究方向 559

25.4小结 560

25.5新手入门须知 560

25.6模拟面试问答 560

附录 各章习题答案 561