图书目录

第1章概述1

1.1软件测试的发展历程及现状1

1.1.1软件测试的发展历程1

1.1.2我国软件测试的现状2

1.2什么是软件测试2

1.2.1软件测试的定义3

1.2.2软件测试生命周期4

1.2.3软件开发与测试模型4

1.2.4与软件测试相关的术语8

1.3软件测试技术分类9

1.4软件测试的目的14

1.5软件测试的原则16

1.5.1尽早地和不断地进行软件测试16

1.5.2不可能完全的测试16

1.5.3增量测试,由小到大19

1.5.4避免测试自己的程序20

1.5.5设计周密的测试用例20

1.5.6注意错误集中的现象23

1.5.7确认bug的有效性23

1.5.8合理安排测试计划24

1.5.9回归测试24

1.5.10测试结果的统计和分析25

1.5.11及时更新测试25

1.6软件测试工作流程26

1.7软件测试中的误区29

1.8一个贯穿全文的例子——在线测评平台30\软\件\测\试\技\术\(第2版)\/目录/ 1.8.1系统概述31

1.8.2系统需求32

1.8.3系统分析36

1.8.4系统设计40

1.8.5系统实施42

1.8.6系统运行环境及配置42

1.8.7系统使用说明43

本章小结52

习题53

第2章离散数学和图论基础55

2.1集合论55

2.2函数57

2.3关系58

2.4命题逻辑60

2.5概率论62

2.6用于测试的图63

2.6.1图63

2.6.2程序图65

2.6.3有限状态机66

2.6.4状态图67

本章小结68

习题68

第3章白盒测试69

3.1白盒测试概述69

3.1.1白盒测试与调试的异同71

3.1.2白盒测试的分类72

3.2白盒测试用例设计技术73

3.2.1逻辑覆盖测试73

3.2.2边界值分析77

3.2.3基本路径测试77

3.2.4循环语句测试80

3.2.5程序插装81

3.2.6其他白盒测试方法83

本章小结84

习题85

第4章黑盒测试88

4.1黑盒测试概述89

4.1.1黑盒测试和白盒测试的异同89

4.1.2黑盒测试的原则和策略90

4.2黑盒测试用例设计技术91

4.2.1等价类划分法91

4.2.2边界值分析法95

4.2.3因果图法98

4.2.4决策表法101

4.2.5错误推测法103

本章小结103

习题104

第5章单元测试105

5.1单元测试概述106

5.1.1单元测试误区108

5.1.2单元测试与集成测试区别110

5.1.3单元测试与系统测试区别111

5.2单元测试环境111

5.3单元测试策略113

5.3.1自顶向下的单元测试策略113

5.3.2自底向上的单元测试113

5.3.3孤立测试114

5.4单元测试主要任务114

5.5单元测试步骤118

5.6单元测试用例设计121

5.7单元测试案例131

5.8单元测试经验总结139

本章小结139

习题139

第6章集成测试141

6.1集成测试概述141

6.1.1集成测试与系统测试的区别142

6.1.2集成测试与开发的关系143

6.1.3集成测试的重点143

6.1.4集成测试的层次144

6.2如何进行集成测试144

6.2.1集成测试分析144

6.2.2集成测试策略149

6.2.3集成测试环境166

6.2.4集成测试用例设计167

6.2.5集成测试过程171

6.2.6集成测试举例173

6.3集成测试经验总结183

本章小结184

习题185

第7章系统测试186

7.1系统测试概述186

7.1.1什么是系统测试186

7.1.2系统测试的组织和分工187

7.2如何进行系统测试187

7.2.1系统测试分析188

7.2.2系统测试环境189

7.2.3系统测试类型191

7.2.4系统测试用例设计206

7.2.5系统测试执行207

7.2.6系统测试案例研究208

7.3系统测试经验总结226

本章小结227

习题227

第8章软件测试自动化229

8.1进行自动化测试的适当时机229

8.1.1概述230

8.1.2自动化测试的成本231

8.1.3自动化测试的生命周期232

8.1.4自动化测试的价值234

8.1.5例子237

8.1.6另外一些需要考虑的问题238

8.2自动化测试和手工测试240

8.2.1自动化测试与手工测试的比较240

8.2.2短测试周期中手工测试面临的挑战240

8.2.3手工测试的问题241

8.2.4自动化测试的问题242

8.2.5自动化测试的优点242

8.2.6自动化测试的缺点244

8.3自动化测试工具的选择和使用244

8.3.1应用自动化测试工具的目的245

8.3.2自动化测试工具的概要介绍245

8.3.3自动化测试工具的选择249

8.3.4自动化测试工具在测试过程中的应用250

8.4自动化测试工具251

8.4.1JUnit251

8.4.2C++ Test266

8.4.3LoadRunner275

8.4.4IBM Rational Functional Tester297

经验总结302

本章小结304

习题305

第9章软件bug和管理306

9.1软件bug概述306

9.1.1bug的影响307

9.1.2bug的产生308

9.2bug的种类311

9.2.1需求阶段的bug311

9.2.2分析设计阶段的bug312

9.2.3实现阶段的bug312

9.2.4配置阶段的bug315

9.2.5短视将来的bug315

9.2.6静态文档的bug316

9.3bug报告单的提交和管理316

9.3.1bug报告单的内容316

9.3.2bug报告的特点322

9.3.3重现bug的分析和方法324

9.3.4bug管理流程331

本章小结335

习题335

附录A软件测试常用术语表336

附录B软件常见错误352

B1用户界面错误352

B1.1功能性352

B1.2通信353

B1.3命令结构和录入358

B1.4遗漏的命令362

B1.5程序僵化364

B1.6性能367

B1.7输出369

B2错误处理370

B3边界相关错误372

B4计算错误374

B5初始状态和以后状态377

B6控制流错误379

B6.1程序失去控制380

B6.2程序停止384

B6.3循环385

B6.4IF、THEN、ELSE或者其他情况386

B6.5多种情况388

B7处理或解释数据的错误389

B7.1在例程之间传递数据时的问题389

B7.2数据边界392

B7.3超过消息缓冲区的极限读取数据392

B7.4消息问题393

B7.5数据存储损坏394

B8竞争条件394

B9负荷情况397

B10硬件400

B11来源、版本和ID控制403

B12测试错误405

参考文献409