第一部分软件测试基础 3
第1章软件测试基本概念 3
1.1什么是软件 3
1.2软件的分类 4
1.2.1按照功能划分 4
1.2.2按照技术架构划分 4
1.2.3按照用户划分 5
1.2.4按照开发的规模划分 5
1.3什么是Bug 5
1.3.1广义上的Bug 5
1.3.2Bug Defect Error 和 Failure 9
1.4什么是软件测试 9
1.4.1早期定义 9
1.4.2标准定义 10
1.5测试环境 10
1.5.1什么是测试环境 10
1.5.2怎样搭建测试环境 11
1.5.3软件环境的分类 13
1.5.4使用虚拟机VMware搭建测试环境 13
1.6测试用例 16
1.6.1什么是测试用例 16
1.6.2测试用例模板 17
案例1某电子商务网站登录模块功能测试用例(见表14) 18
案例2某电子商务网站登录模块性能测试用例(见表15) 20
1.6.3编写测试用例的注意事项 21
小结 23
思考题 23
第2章软件测试分类 25
2.1黑盒测试和白盒测试 25
2.2静态测试和动态测试 26
案例3C语言程序的静态分析和动态测试 26
2.3单元测试、集成测试、系统测试和验收测试 29
2.3.1单元测试 30
案例41个单元测试的例子 31
案例5驱动模块和桩模块 33
2.3.2集成测试 34
2.3.3系统测试和验收测试 34
2.4功能测试和性能测试 36
2.4.1功能测试 36
2.4.2性能测试 43
案例6纸杯测试 46
2.5回归测试、冒烟测试、随机测试 47
2.6不同测试分类之间的关系 48
小结 49
思考题 49
第3章软件测试的常识 51
3.1公司里测试部门的组织结构 51
3.2软件测试工程师所需具备的素质 53
3.2.1测试人员的基本从业素质 53
3.2.2如何成为一名优秀的测试工程师 54
3.3软件测试和软件质量的关系 56
3.4软件测试和SQA的关系 56
3.4.1什么是SQA 56
3.4.2什么是CMM 58
3.4.3SQA与测试 59
3.5软件测试的一些基本原则 59
3.5.1ZeroBug与GoodEnough 59
3.5.2不要试图穷举测试 60
3.5.3开发人员不能既是运动员又是裁判员 60
3.5.4软件测试要尽早执行 60
3.5.5软件测试应该追溯需求 62
3.5.6缺陷的二八定理 63
3.5.7缺陷具有免疫性 63
小结 63
思考题 63
第4章黑盒测试技术 65
4.1等价类技术(EquivalenceClassTesting) 65
案例7加法器 65
4.1.1等价类方法总结 68
4.2边界值技术(BoundaryValueTesting) 69
4.3因果图法(Cause-EffectGraphs) 70
案例8奖金计算软件 70
4.3.1因果图法小结 73
4.4流程图法(WorkflowMethod) 73
4.5黑盒测试技术的综合运用 76
4.5.1概述 76
案例9 计算三角形面积程序 76
案例10 163邮箱注册模块 78
小结 79
思考题 80
第5章缺陷管理 81
5.1Bug的分类 81
5.2缺陷报告 83
5.3提交缺陷报告的注意事项 84
5.4Bug的处理流程 87
5.5常见的缺陷管理工具 91
5.6Bugzilla使用指南 92
小结 100
思考题 100
第6章测试管理 102
6.1软件的生命周期 102
6.1.1什么是软件的生命周期 102
6.1.2软件开发的生命周期 103
6.1.3软件测试的生命周期 103
6.1.4软件生命周期的模型 105
6.2软件测试计划 107
6.2.1撰写测试计划的注意事项 108
6.2.2软件测试计划模板 127
案例11某管理系统测试计划 127
6.3软件测试用例设计和实施 134
6.4软件测试评估 136
6.4.1对覆盖的评测 137
6.4.2对缺陷的评测 137
6.4.3撰写测试总结报告 140
案例12某管理系统测试总结 141
6.5测试团队建设 144
小结 145
思考题 146
第7章软件测试工具简介 147
7.1软件测试工具分类 147
7.2目前市场上主流的测试工具 148
7.2.1MI公司产品 148
7.2.2IBMRational公司的产品 151
7.2.3Compuware公司产品 152
7.2.4Telelogic公司产品 152
7.2.5其他公司产品 152
7.3软件测试工具的利与弊 153
7.3.1软件测试工具的优点 153
7.3.2软件测试工具的局限性 154
7.4如何选择软件测试工具 155
小结 155
思考题 156
思考题答案 157
第二部分黑盒测试工具 171
第1章LoadRunner110测试方法 171
1.1LoadRunner简介 171
1.2性能测试的几个主要术语 175
1.2.1响应时间 175
1.2.2吞吐量 176
1.2.3并发 176
1.3LoadRunner安装 176
1.3.1安装配置要求 176
1.3.2安装的前提条件 177
1.3.3LoadRunner的安装过程 178
1.4LoadRunner的性能测试流程 179
1.5LoadRunner的脚本录制 181
1.5.1新建脚本/选择协议 182
1.5.2录制脚本 183
1.5.3编辑脚本 186
1.5.4选项设置 200
1.6LoadRunner的场景设计 202
1.6.1手动设置场景ManualScenario 203
1.6.2手动设置场景(使用百分比模式) 211
1.6.3面向目标的场景Goal-OrientedScenario 212
1.6.4虚拟IP技术 215
1.7LoadRunner的场景监视 217
1.7.1LoadRunner场景监视概述 217
1.7.2常见监视图表分析 220
1.7.3监测Windows资源 223
1.8LoadRunner的结果分析 226
1.8.1调用结果分析工具Analysis 226
1.8.2Analysis测试报告分析 227
1.8.3Analysis高级使用技巧 231
小结 242
思考题 242
第2章TestDirector80测试方法 244
2.1TestDirector简介 244
2.1.1概述 244
2.1.2TestDirector测试流程 245
2.2TestDirector80安装 247
2.2.1TestDirector80的配置要求 247
2.2.2TestDirector80安装过程 248
2.2.3验证TestDirector安装的组件(仅适用76及以前版本) 254
2.3TestDirector简单使用 255
2.4TestDirector站点管理 259
2.5TestDirector测试管理 267
2.5.1工程选项设置 267
2.5.2测试流程管理 274
2.6TestDirector常见问题分析 311
2.6.1IE70无法访问TD 311
2.6.2如何将TD工程迁移到QC平台上 311
2.6.3TD里面SiteAdministrator的密码忘记了怎么办 313
2.6.4TD里面默认的字体比较小并且都是英文该怎么办 313
2.6.5如何设置MS-SQL的数据库连接 314
2.6.6首页只看到默认的Domain,看不到其他Project 314
2.6.7TheRPCserverisunavailable 314
小结 315
思考题 316
第3章Ranorex自动化测试方法 317
3.1自动化测试的现状和前景 317
3.2Ranorex简介 318
3.2.1Ranorex优势 318
3.2.2RanorexSpy 319
3.2.3RanorexRecorder 320
3.2.4RanorexStudio 322
3.3桌面应用程序的自动化测试 323
3.3.1调试CalculatorTestSample 323
3.3.2独立录制/编写计算器测试脚本 327
3.4Web应用程序的自动化测试 332
3.4.1调试WebTestSample 332
3.4.2独立录制/编写WebTest脚本 339
3.5搭建自动化测试框架 343
3.5.1自动化测试框架简介 343
3.5.2维护测试用例 344
3.5.3输出测试结果 345
3.5.4测试脚本的定时执行 346
3.6Ranorex常见问题解答 347
小结 349
思考题 349
思考题答案 350
第三部分白盒测试工具 353
第1章白盒测试技术简介 354
1.1测试工具分类 353
1.2白盒测试技术概述 354
1.2.1白盒测试与黑盒测试比较 354
1.2.2白盒测试的分类 355
1.3边界值测试 356
1.3.1数据类型的边界值 357
1.3.2数组的边界值 358
1.3.3分支判断语句的边界值 360
1.4逻辑驱动覆盖技术 361
1.4.1语句覆盖测试 362
1.4.2分支覆盖测试 363
1.4.3条件覆盖测试 364
1.4.4分支条件覆盖测试 364
1.4.5条件组合覆盖测试 365
1.4.6路径覆盖测试 365
1.5循环语句测试 367
1.6面向对象测试 369
1.6.1Java简介 370
1.6.2面向对象测试概述 374
1.6.3面向对象程序的单元测试 374
1.7单元测试的评估和总结 379
小结 381
思考题 381
第2章BoundsChecker教程 382
2.1内存管理的相关知识 382
2.2内存相关编程举例 384
2.3BoundsChecker简介 387
2.4BoundsChecker的安装 388
2.5BoundsChecker操作步骤 391
2.5.1BoundsChecker与VC的集成 391
2.5.2ActiveCheck模式 392
2.5.3FinalCheck模式 394
2.5.4检测Win32API函数的兼容性 396
小结 398
思考题 399
第3章Logiscope61教程 400
3.1Logiscope简介 400
3.2Logiscope61安装 401
3.2.1Logiscope61安装配置 401
3.2.2Logiscope61安装过程 402
3.3代码评审模块Audit 406
3.3.1新建一个LogiscopeAudit工程 406
3.3.2LogiscopeAudit与VC的集成 410
3.3.3Logiscope质量模型 411
3.3.4分析Audit结果 414
3.4编码规则模块RuleChecker 424
3.4.1创建一个RuleChecker工程 424
3.4.2LogiscopeRuleChecker与VC的集成 428
3.4.3RuleChecker结果分析 429
3.5动态测试模块TestChecker 435
3.5.1创建一个TestChecker工程 435
3.5.2TestChecker选项设置 439
3.5.3TestChecker测试结果分析 445
小结 449
思考题 449
第4章JUnit38教程 450
4.1JUnit简介 450
4.2JDK与JUnit381的安装与配置 450
4.2.1JDK的安装与配置 450
4.2.2JUnit381的安装与配置 454
4.3JUnit的简单使用 456
4.3.1一个计算器的案例 456
4.3.2JUnit断言 459
4.3.3JUnit测试 460
4.4JUnit的高级使用 463
4.4.1Setup和Tear-down方法 463
4.4.2JUnit的集成模式 465
小结 468
思考题 468
第5章JTest70教程 469
5.1JTest简介 469
5.2JTest安装 470
5.3创建一个示例工程 473
5.4使用JTest检查编码规范 475
5.5使用JTest进行动态测试 481
5.5.1使用JUnit框架进行动态测试 481
5.5.2测试结果分析 485
5.5.3在图形化界面添加测试用例 487
小结 488
思考题 489
思考题答案 490
第四部分 测试英文 497
Chapter1QA Introduction 497
1.1What is testing? 497
1.2Why we go for testing? 498
1.3Why there is need of testing or why there is a need of“independent/ separate testing”? 499
1.4 What is the role of “a tester”? 499
1.5 What is the test scope? 500
1.6Functional vs non-functional testing 500
1.7Defects and failures 500
1.8Finding faults early 501
1.9Compatibility overview 501
1.10 Input combinations and preconditions 502
1.11Static vs dynamic testing 502
1.12 Software verification and validation 503
1.13 Software testing team 503
1.14 Software quality assurance 503
Practice QA 504
Answers to Practice QA 505
Chapter2 Testing Types 506
2.1Funtional/black box test 506
2.2White box test 507
2.3Test safety 507
2.4Types of applications and techniques applicable 508
2.5Test stress&load 508
2.6 GUI 511
2.7Automated test 511
Practice QA 515
Chapter3 Web Application&Desktop Application 521
Practice QA 521
Chapter4 Scrum and Task Reports 522
4.1Induction SCRUM development methodology 522
4.2Important points 522
4.3Life cycle 523
4.4Practice for scrum 524
4.5 The scrum meeting record 526
4.6 The value of scrum meeting 527
4.7 Task report 529
4.8Practice of task report 530
附录 531
附录1常用软件测试术语说明及中英文对照 531
附录2测试工程师面试、笔试时的常见问题 534
附录3C/C++编码规范 540
附录4Java编码规范 544