《软件测试 基于问题驱动学习模式》PDF下载

  • 购买积分:14 如何计算积分?
  • 作  者:朱少民编著
  • 出 版 社:北京:高等教育出版社
  • 出版年份:2017
  • ISBN:9787040472295
  • 页数:422 页
图书介绍:本书以“建构主义”为指导,注重软件测试与应用背景相结合,遵循项目推进的时序过程,以问题驱动方式组织软件测试内容。全书共10章,覆盖软件测试的完整过程所需的知识和技能,包括单元测试、持续集成测试、系统功能测试、性能测试、安全性测试和测试管理等。为了适应当前软件技术的实际应用状态,用专门一章介绍移动App的测试方法、技术和工具;同时,为了进一步提高软件测试的核心技能,包括能够进行更彻底的自动化测试,特别编写了“基于模型的软件测试”这一章。随书提供丰富的配套资源,包括重点知识的讲解视频、相关工具的说明文档、电子教案、示例源代码等。读者可扫描书中的二维码观看视频/阅读文档,也可从数字课程网站获取相关资源。本书可作为高等学校计算机科学与技术专业、软件工程专业软件测试课程教材,也可供有关技术人员参考。

第1章 软件测试入门 1

1.1什么是软件缺陷? 2

1.2什么是软件质量? 5

1.3什么是软件测试? 8

1.4软件测试的主要活动 10

小结 13

思考题1 14

参考文献 14

第2章 需求与设计评审 15

2.1为什么需求和设计评审如此重要? 15

2.2如何做好产品的需求评审? 18

2.2.1如何理解软件需求? 19

2.2.2如何确定传统软件需求的评审标准? 20

2.2.3如何评审敏捷需求——用户故事? 23

2.2.4如何有效地完成需求评审? 24

2.3如何做好软件设计评审? 31

2.3.1软件设计的评审标准 31

2.3.2系统架构设计的评审 34

2.3.3组件设计的审查 34

2.3.4界面设计的评审 35

小结 36

思考题2 37

参考文献 37

实验1需求评审 38

第3章 单元测试 40

3.1如何开始单元测试? 41

3.1.1待测函数 42

3.1.2在研发环境下完成单元测试 43

3.1.3 JUnit的关键组件 45

3.1.4 JUnit的工作原理 50

3.1.5 xUnit家族 51

3.2单元测试用例设计 53

3.2.1测试工作从代码行分析开始 53

3.2.2条件常常会出错 57

3.2.3更充分的测试 59

3.2.4更正式的充分性测试 60

3.2.5执行路径的覆盖测试 61

3.2.6从节点扩展到程序结构 63

3.2.7对循环结构的程序进行测试 66

3.3从函数走向软件包 69

3.3.1待测软件包 69

3.3.2如何测试一个完整的类? 75

3.3.3如何避免非测试对象的影响? 78

3.3.4 Package的测试 84

3.3.5如何完成批量执行测试? 87

3.3.6如何衡量测试效果? 89

3.3.7最常用的覆盖率分析工具有哪些? 90

3.4以逸待劳的测试——代码静态分析 95

3.4.1通过代码评审发现哪类问题? 96

3.4.2常见的代码缺陷模式 98

3.4.3如何借助工具直接发现代码中的错误? 100

3.4.4如何比较好地保证代码的规范性? 108

3.5单元测试的最高境界 110

3.5.1 TDD是最彻底的单元测试 111

3.5.2 TDD与ATDD 114

3.5.3零缺陷质量管理思想应用于编程 115

小结 116

思考题3 117

参考文献 118

实验2用逻辑覆盖法进行JUnit单元测试实验 118

实验3 Mock测试实验 120

实验4单元测试覆盖率分析实验 122

第4章 持续集成测试 126

4.1如何开展集成测试? 127

4.2如何构建持续集成的环境? 128

4.2.1持续集成需求对环境的要求 129

4.2.2源代码管理工具 130

4.2.3版本构建工具 130

4.2.4持续集成管理工具 135

4.3如何完成自动部署和自动集成测试? 139

4.3.1如何在持续集成中实现自动部署? 140

4.3.2如何在构建前实现自动静态分析? 141

4.3.3如何在构建后实现自动验证? 150

小结 151

思考题4 152

参考文献 152

实验5持续集成测试实验 153

第5章 系统功能测试 155

5.1功能测试之前的准备 156

5.1.1系统功能测试究竟测什么? 156

5.1.2系统功能测试应该考虑哪些问题? 156

5.1.3系统功能测试的基本思路 159

5.2 Web应用功能的测试需求分析 162

5.3 Web应用功能的测试设计 167

5.3.1有哪些常用的系统功能测试方法? 168

5.3.2如何减少测试数据量? 170

5.3.3如何完成组合测试? 175

5.3.4组合爆炸如何测试? 178

5.4面向接口的Web测试 182

5.4.1基于SOAP接口的测试 183

5.4.2基于REST接口的测试 189

5.5基于场景的测试方法 191

5.6 Web应用功能的测试执行 193

5.6.1如何避免单调重复的手工测试? 194

5.6.2没有测试用例也可以吗? 201

5.7 Web应用功能的回归测试 204

5.8 功能相关的其他各种类型测试 206

小结 207

思考题5 208

参考文献 209

实验6系统功能测试实验 210

实验7探索式测试实验 211

第6章 系统性能测试 213

6.1什么是性能测试? 213

6.1.1有哪些常见的性能问题? 214

6.1.2如何区分性能测试中不同的目的? 214

6.2如何确定系统的性能需求? 217

6.2.1关键性能指标分析 217

6.2.2关键业务分析 219

6.3如何完成性能测试的设计? 220

6.3.1如何模拟用户操作? 220

6.3.2如何有效地模拟加载过程? 221

6.3.3如何实时准确地控制加载? 224

6.4如何选择合适的性能测试工具? 225

6.4.1性能测试工具需要哪些关键特性? 225

6.4.2有哪些常见的性能测试工具? 233

6.5如何执行性能测试? 235

6.5.1脚本开发 235

6.5.2环境设置 239

6.5.3执行与过程监控 240

6.6如何分析和评估测试结果? 242

6.7客户端的性能测试有何不同? 245

小结 249

思考题6 250

参考文献 250

实验8系统性能测试 251

第7章 系统安全性测试 253

7.1什么是安全性测试? 253

7.1.1如何认识系统的安全性? 253

7.1.2系统存在哪些安全性漏洞? 256

7.1.3清楚安全性测试的目标与任务 259

7.2如何进行安全性测试? 260

7.2.1贯穿研发生命周期的安全性测试 260

7.2.2有哪些安全性测试方法? 263

7.3安全性静态测试 266

7.4渗透测试 269

7.5模糊测试方法 272

7.6 Web安全性测试 273

小结 279

思考题7 280

参考文献 280

实验9安全性测试实验 281

第8章 移动App的测试 283

8.1移动应用测试有哪些特点? 283

8.2如何完成移动App功能的自动化测试? 285

8.2.1优先选择面向接口的自动化测试 286

8.2.2 Android App用户界面自动化测试 292

8.2.3 iOS App用户界面自动化测试 303

8.2.4跨平台的App用户界面自动化测试 310

8.3专项测试 311

8.3.1耗电量测试 312

8.3.2流量测试 315

8.4性能测试 317

8.4.1 Android内存分析 318

8.4.2 iOS内存分析 320

8.5移动App“闪退”的测试 323

8.6安全性测试 323

8.7用户体验测试 325

小结 328

思考题8 328

参考文献 329

实验10移动App自动化测试实验 329

第9章 基于模型的软件测试 331

9.1究竟什么是MBT? 332

9.2目前有哪些有效的MBT方法? 335

9.3基于业务建模的MBT方法 338

9.3.1基于业务流程建模 338

9.3.2基于事件流、应用场景的建模 340

9.3.3因果图法 343

9.4基于UML的MBT方法 348

9.5有限状态机的测试方法 354

9.6定理证明 357

9.7符号执行 360

9.8模型检验 365

9.8.1建模方法 366

9.8.2检测算法 368

9.8.3检测工具 371

9.9模糊测试方法 371

小结 375

思考题9 376

参考文献 377

第10章 测试与缺陷管理 379

10.1测试计划 379

10.1.1测试计划内容 380

10.1.2测试计划过程 381

10.1.3测试目标 382

10.1.4测试策略 383

10.1.5制定有效的测试计划 388

10.2测试风险的控制 389

10.2.1风险的识别与分析 389

10.2.2控制风险的对策 391

10.2.3测试执行策略 393

10.3缺陷的管理 395

10.3.1软件缺陷生命周期 395

10.3.2如何描述软件缺陷? 397

10.3.3有效的缺陷描述可达目标如何? 401

10.3.4 如何跟踪和处理缺陷? 402

10.3.5如何进行缺陷分析? 403

10.3.6有哪些缺陷跟踪系统? 409

10.4软件测试的原则 410

10.5测试报告 413

10.5.1评估测试覆盖率 414

10.5.2基于软件缺陷的质量评估 416

10.5.3测试报告的书写 418

10.6测试管理工具 419

小结 421

思考题10 422

参考文献 422