搜索
高级检索
高级搜索
书       名 :
著       者 :
出  版  社 :
I  S  B  N:
文献来源:
出版时间 :
全程软件测试
0.00    
图书来源: 浙江图书馆(由图书馆配书)
  • 配送范围:
    全国(除港澳台地区)
  • ISBN:
    9787121048784
  • 作      者:
    朱少民著
  • 出 版 社 :
    电子工业出版社
  • 出版日期:
    2007
收藏
编辑推荐
  基于国际一流软件企业的软件测试流程和实践,以两个典型项目为背景,按实际测试项目运转方式,逐步向前推进,最终贯穿整个软件测试全过程。从软件测试项目启动、测试计划开始,然后深入到测试用例设计、测试工具选择、脚本开发、功能测试和系统测试等各项测试活动,清楚地演绎测试的方法和实践。在完全掌握测试的技术和方法的基础上,对测试管理的各个层次和环节做了系统的介绍,包括测试策略制定、风险控制、缺陷跟踪和分析、测试管理系统的应用等。最后,随着软件测试的总结和思考,逐渐理解所面对的现实和应坚持的原则,领会软件测试方法的应用之道和品味测试的最佳实践,并在软件测试成熟度模型前停住脚步,久久不想离去。
  测试专家朱少民老师最新力作,深邃洞察软件测试整体架构,囊括软件测试的思想、流程、方法、技术和最佳实践,系统介绍测试管理的各个层次及其细节。全书以两个典型项目为背景,按实际测试项目运转方式,逐步向前推进,最终贯穿整个软件测试全过程。从软件测试项目启动、测试计划开始,然后深入到测试用例设计、测试工具选择、脚本开发、功能测试和系统测试等各项测试活动,清楚地演绎测试的方法和实践。在完全掌握测试的技术和方法的基础上,对测试管理的各个层次和环节做了系统的介绍,包括测试策略制定、风险控制、缺陷跟踪和分析、测试管理系统的应用等。最后,随着软件测试的总结和思考,逐渐理解所面对的现实和应坚持的原则,领会软件测试方法的应用之道和品味测试的最佳实践。
  这是一本为软件测试团队创作的融实践性、专业性、思想性和实用性为一体的软件测试书籍。全书以完整测试项目的规划和执行过程为主线,以典型测试项目案例为分析和应用实例,把作者丰富的测试实践经验与具体测试方法和技术总结出来与读者分享。本书适合于指导软件公司测试经理和测试工程师阅读和实践,对准备从事软件测试的从业人员也是不可多得的学习和培训教材。
  ——崔启亮 昱达软件科技有限公司 技术与培训总裁
  非常欣喜地得知又一本国内原创的软件测试专著问世了,目前国内的软件测试书籍理论偏多,介绍最佳实践的偏少,希望本书能成为软件测试工程师的案头手册,为国内软件测试行业的蓬勃发展添砖加瓦。
  ——贺炘 慧灵科技 首席测试专家、北京软件行业协会测试工作委员会副秘书长
  如果你想通过一本切合实际而不仅仅是纸上谈兵的书来学习软件测试,《全程软件测试》会是一个很好的选择!
  ——周泽睿 百度高级测试工程师 兴趣:模块级测试、性能压力测试、网络编程、算法等
  很难得,久未看到如此让人畅快的文章。能将软件工程实践系统地贯穿在一起,并不失理论佐证,这本身就是个胜利。
  ——高磊 百度高级测试工程师 致力于软件测试前沿理论的探索及其与工程实践的结合
  优秀的测试思想,体现着对人生反思的哲学。从某种意义上说,生活和软件开发一样,要在试错的磨炼中成长。
  ——李晓杰 百度测试与项目管理工程师
  本书最吸引我的地方在于其真实的项目背景,这对于缺乏丰富实践经验的从业人员来说无疑是最宝贵的材料。
  ——周可杉 对外经济贸易大学信息学院在读硕士研究生 研究方向:管理信息系统与电子商务
  作者对于测试项目从启动、计划、验证、设计、工具和脚本开发等多个角度由浅入深的介绍,非常有利于初学者对于测试流程的理解。
  ——曹辉 某公司软件测试工程师 计算机信息管理专业
展开
作者简介
  朱少民 (Kerry Zhu),男,1964年出生,1988年硕士毕业 、1995年破格提升为副教授,目前担任一家跨国公司的中国区高级质量总监。先后在大学的研究和教学工作、国际一流的跨国企业工作,从事软件开发、测试、QA和过程改进等工作近二十年,先后获得机械工业部、安徽省、合肥市、青岛市等多项科技进步奖。在美国硅谷工作两年。
  主要研究领域:软件测试、软件质量管理和软件过程改进。
  主要著作: 《全程软件测试》、《软件测试方法和技术》、《软件质量保证和管理》、《软件过程管理》和《软件工程导论》等。
展开
内容介绍
  本书以两个典型项目为背景,按实际项目进行的先后次序,循序渐进地阐述了软件测试的全过程。从软件项目启动、需求评审、测试计划开始,然后深入到测试用例设计、测试工具选择、脚本开发、功能测试和系统测试等不同阶段,生动地演绎了必需而实用的测试方法、技术和实施技巧。本书还系统地介绍了测试管理的各个层次及其细节,包括测试策略制定、风险控制、缺陷跟踪和分析、测试管理系统的应用等。最后,本书呈现了软件测试成熟度模型和对软件测试的总结和思考,帮助读者了解软件测试所面对的现实问题和应恪守的原则、领会测试方法的应用之道和品味测试的最佳实践。
  本书是作者长期从事软件测试工作的经验与智慧的结晶,是软件测试工程师的良师益友。本书也可作为软件开发人员、项目经理等的参考书,更适合用作软件测试的培训教材或教学用书。
展开
精彩书摘
  引子
  在本书的开头,有必要介绍软件测试在软件开发中的位置、地位和作用,也就是帮助读者建立起有关软件测试的基本轮廓(big picture),这样对阅读和理解以后各章的内容会有很大帮助。要建立起软件测试的基本轮廓,也就需要回答下列几个问题:
  软件测试的作用是什么?
  软件测试在软件开发生命周期(SDLC)中的位置在哪里?
  软件测试过程是怎样的?
  软件测试团队的地位如何?
  软件测试和软件质量保证(SQA)有何区别?
  下面我们先简单回答这些问题。即使您不能完全理解也不要急,后面会逐步帮助您解开软件测试之谜。但有一点是明确的,在看完这段“引子”后,您对软件测试会有一个整体的认识,从而不至于陷入“盲人摸象”的困境。
  1. 软件测试的作用
  在购买商品时,会发现商品上贴有一个“QC”标签,这就是产品经过质量检验(Quality Control)的标志。软件测试就好比制造工厂的质量检验工作,是对软件产品和阶段性工作成果进行质量检验,力求发现其中的各种缺陷,并督促修正缺陷,从而控制和保证软件产品的质量。所以,软件测试是软件公司致力于提高软件产品质量的重要手段之一。
  2. 软件测试在SDLC中的位置
  在著名的软件瀑布模型中,软件测试处在“编程”的下游,在“软件维护”的上游,先有编程后有测试,测试的位置很清楚,但瀑布模型没有反映SDLC的本质,没能准确无误地反映测试的位置。
  实际上,测试贯穿整个SDLC,从需求评审、设计评审开始,就介入到软件产品的开发活动或软件项目实施中了。测试人员借助于需求定义的阅读、讨论和审查,不仅能发现需求定义的问题,而且可以了解产品的设计特性、用户的真正需求,进而确定测试目标,准备用例(Use Case)并策划测试活动。同理,在软件设计阶段,测试人员可以了解系统是如何实现的,以及构建在什么样的平台之上等各类问题,这样可以提前准备系统的测试环境,包括硬件和第三方软件的采购,并着手研究如何测试系统,完成系统测试用例设计、测试工具的选型或启动测试工具的开发,进一步完善测试计划等。所有这些准备工作,都要花去很多时间,应尽早开展起来。
  当设计人员在做详细设计时,测试人员就应直接参与具体的设计、参与设计的评审,找出设计的缺陷。同时,完成功能特性测试的用例,并基于这些测试用例开发测试脚本。
  在编程阶段就进行单元测试,是一种很有效的办法,可以尽快找出程序中的错误。充分的单元测试可以大幅度提高程序质量,减少开发成本。
  软件测试在SDLC中的位置,可以通过图0-1充分地体现出来。软件测试和软件开发构成一个全过程的交互、协作的关系,两者自始至终一起工作,共同致力于同一个目标——按时、高质量地完成项目。
  
  图0-1  软件测试和SDLC的关系
  
  3. 软件测试过程
  软件测试的全过程,要经历如图0-2所示的很多个里程碑,其中主要的里程碑有:
  产品需求文档(PRD)或市场需求文档(MRD)的评审和签发;
  产品规格说明书(Spec)的评审和签发;
  测试计划、测试计划书的评审和签发;
  测试用例的设计、评审和签发;
  功能测试;
  系统测试;
  验收测试。
  图0-2  测试全过程的跟踪示意图
  4. 软件测试团队的地位
  在软件开发中,虽然有很多角色,有各种各样的人员参与,包括项目经理、产品经理、UI(用户界面)设计人员、文档人员等,但最大的两个团队就是测试团队和开发团队(由设计人员/程序员组成),也就是说,在一个软件公司,测试人员和程序员,占有最大比重。当然,有些软件公司,销售人员或客户支持人员也比较多。由此可见,软件测试团队的地位应该是举足轻重的。
  5. 软件测试和SQA的区别
  如前面所说,软件测试属于软件控制,它和SQA(质量保证)的区别概括起来有4点,见表0-1。
  表0-1
  项目 软件测试 SQA
  工作性质 技术性工作 管理性工作
  对象 软件产品(包括阶段性产品) 软件过程
  焦点 事后检验 强调预防
  范围 在研发(R&D)部门或技术部门 在公司层次,跨所有部门,包括市场、销售、客户服务、行政、后勤、人事等部门
展开
目录
前 言
引 子
第1章 测试项目启动
1.1 了解软件的质量需求 2
1.1.1 软件产品的质量需求 2
1.1.2 软件质量的对立面——软件缺陷 5
1.1.3 软件缺陷产生的原因 7
1.1.4 究竟什么是软件测试 8
1.1.5 软件测试的目标 11
1.2 选定测试组长 13
1.2.1 测试过程和开发过程的关系 13
1.2.2 测试组长的人选 15
1.2.3 测试在项目团队中的位置 17
1.3 掌控项目背景 18
1.3.1 软件测试的项目要素 18
1.3.2 两个典型项目的介绍 20
1.3.3客户端软件Google Talk功能简介 21
1.3.4 Web应用——雅虎日历功能介绍 22
1.4 制定测试规范 23
1.5 小结 28

第2章 测试计划
2.1 产品需求文档审查和评审 30
2.1.1需求评审的重要性 30
2.1.2 测试人员在需求评审中的角色 32
2.1.3 需求评审的标准 34
2.2 项目的测试需求和任务 36
2.2.1 确定软件功能测试需求 36
2.2.2 非功能性的系统测试需求 38
2.2.3 软件即服务的测试需求 39
2.2.4 各个阶段的测试任务 41
2.3 测试范围分析和工作量估计 43
2.3.1 功能测试范围的分析 43
2.3.2系统测试范围的分析 46
2.3.3 工作量的估计 48
2.3.4 工作分解结构表方法 49
2.3.5 工作量估计的实例 51
2.4 测试资源需求和团队组建 53
2.4.1 测试资源需求 53
2.4.2 团队组建 54
2.4.3 培训 55
2.5 测试里程碑和进度安排 56
2.6 测试风险分析 57
2.7 制定有效的测试策略 61
2.8 完整生成测试计划书 65
2.9 小结 66

第3章 设计验证
3.1 系统架构的审查 68
3.1.1 系统架构选型的确认 68
3.1.2软件设计评审标准 69
3.1.3 系统组件设计的审查 72
3.2 产品设计规格说明书的复审 74
3.2.1 重视设计规格说明书的审查 74
3.2.2 设计规格说明书的多层次审查 75
3.2.3 界面设计的评审 76
3.2.4 验证过程与确认过程 77
3.3 系统部署设计的审查 78
3.3.1 系统部署逻辑设计的审查 79
3.3.2 软件部署物理设计的审查 80
3.3.3 系统部署可用性设计的审查 82
3.3.4 系统部署可伸缩性设计的验证 85
3.3.5 系统部署安全性设计的验证 86
小结 87

第4章 测试设计
4.1 测试用例框架的设计 89
4.1.1为什么需要测试用例 89
4.1.2 测试用例设计考虑因素 90
4.1.3 测试用例框架的构成 91
4.1.4 测试用例的元素 93
4.2 功能测试用例的设计 94
4.2.1 功能测试用例的内容 95
4.2.2 功能测试用例的设计方法 96
4.2.3 等价类划分法 97
4.2.4 边界值分析法 100
4.2.5 因果图法 104
4.2.6 功能图法 105
4.2.7 错误推测法 106
4.2.8 正交实验设计方法 107
4.3 系统测试用例的设计 108
4.3.1 故障转移的测试用例设计 109
4.3.2 系统安全性的测试用例设计 110
4.4 测试用例的审查 112
4.4.1 测试用例书写标准 112
4.4.2 测试用例评审要点 113
4.6 测试套件的创建 115

第5章 测试工具选择和脚本开发 
5.1 测试工具的需求分析 119
5.1.1 测试工具的优势 119
5.1.2 测试工具的实现原理 120
5.2 测试工具的选择 124
5.2.1 测试工具选择的标准 124
5.2.2 测试工具评估报告实例 126
5.2.3 测试工具选择的误区 127
5.3 测试工具完整方案之商业版 128
5.3.1 GUI功能测试工具的比较 129
5.3.2 负载和性能测试工具 131
5.3.3 基于Web应用的测试工具 133
5.4 测试工具完整方案之开源版 135
5.4.1 开源测试工具总览 135
5.4.2 Web功能测试工具—Selenium 137
5.4.3  强大的性能测试工具—JMeter 142
5.4 测试脚本录制和回放 145
5.4.1 创建自动化脚本项目 145
5.4.2 录制Selenium脚本 147
5.4.3 用Robot录制客户端测试的脚本 150
5.5 测试脚本的开发 152
5.5.1 适应测试脚本开发的测试用例 152
5.5.2 测试脚本的重构和优化 153

第6章 测试和编程的交互
6.1 程序代码的审查 154
6.1.1 代码审查的方法和范围 154
6.1.2 代码风格的审查 156
6.1.3 编程规则的审查 158
6.2 单元测试 160
6.2.1 什么是单元测试 161
6.2.2单元测试的现状和作用 162
6.2.3单元测试的方法 163
6.3 单元测试用例的设计 164
6.3.1 语句覆盖法 165
6.3.2 判定和条件覆盖法 166
6.3.4 基本路径测试法 169
6.3.5 多种白盒测试方法的比较和总结 169
6.3.6 循环结构的测试用例 170
6.3.7 单元测试的典型实例 172
6.4 单元测试工具 174
6.4.1 静态代码分析 175
6.4.2 测试覆盖率工具EMMA 176

第7章 功能测试的执行

7.1 测试执行概述 180
7.2 测试执行的准备 181
7.2.1 培训和知识传递 182
7.2.2 测试任务安排 183
7.2.3 测试环境的建立 184
7.2.4 测试环境的设置 185
7.2.5 测试自动化运行平台 187
7.3 如何有效地创建测试套件 188
7.3.1 功能测试套件的创建 188
7.3.2 测试环境的爆炸性组合 190
7.3.3 环境组合优化 191
7.4 功能测试自动化的执行 194
7.5 用户界面和适用性测试 197
7.6 回归测试 200
7.6 软件缺陷的报告 202
7.6.1 缺陷的属性 202
7.6.2 缺陷描述的详细描述 205
7.6.3 如何报告缺陷 206
小结 207

第8章 国际化和本地化测试的执行
8.1 国际化测试 208
8.1.1 软件国际化的基本要求 209
8.1.2 国际化测试 212
8.1.3  I18N测试实例 214
8.2 本地化测试 215
8.2.1 软件本地化的质量需求 215
8.2.2 本地化测试的基本内容 217
8.2.3 L10N的功能测试 219
8.2.4 L10N的数据格式验证 221
8.2.5 L10N的UI验证 224
8.2.6 L10N的配置和兼容性验证 225
8.2.7 L10N的翻译验证 226
8.3 I18N和L10N测试工具 228
小结 230

第9章 系统测试的执行
9.1 如何进行系统测试 232
9.1.1 进一步了解系统测试 232
9.1.2 系统测试的实施策略 234
9.2  Web应用服务器的负载测试 236
9.2.1 负载测试的加载方式 237
9.2.2 负载测试的准备工作 238
9.2.3 负载测试的执行 239
9.2.4 负载测试的结果分析 241
9.3 Web应用服务器的性能测试 242
9.4 Web安全性测试 244
9.5 容错性测试 246
9.6 数据库的性能测试 247
9.7 兼容性测试 250
9.8 安装测试 253
9.8.1 客户端软件安装测试 253
9.8.2 软件服务模式下的安装测试 255
小结 256

第10章 后续测试
10.1 验收测试 256
10.2 文档测试 259
10.3 α测试和β测试 260
10.4 产品后继版本的测试 261
小结 263

第11章 测试的跟踪和管理
11.1 测试管理 265
11.1.1 测试管理的全局性 265
11.1.2 测试策略的执行 266
11.1.3 测试管理系统的应用 267
11.1.4 测试管理工具 269
11.2 测试用例的管理 271
11.2.1 测试用例创建的管理 271
11.2.2 测试用例执行的管理 273
11.2.3 测试用例的维护 273
11.3 测试自动化的管理 275
11.3.1 测试自动化的框架 275
11.3.2 测试自动化的流程 277
11.4 缺陷跟踪和分析 278
11.4.1 缺陷生命周期 278
11.4.2 缺陷状态的跟踪 280
11.4.3 缺陷的分析 281
11.4.4 累计缺陷趋势分析 284
11.5 测试进度和风险的控制 286
11.5.1 测试进度管理 286
11.5.2 测试风险的控制 289
11.6 测试覆盖度和结果分析 291
11.6.1 测试覆盖评估 291
11.6.2 基于软件缺陷的质量评估 293
11.6.3 软件缺陷清除率 294
11.6.4 测试报告的模板、实例 296
小结 298

第12章 总结和思考
12.1软件测试的现实和原则 300
12.1.1 测试的现实 300
12.2 软件测试的多维空间 304
12.3 软件测试方法的应用之道 306
12.3.1 白盒测试方法和黑盒测试方法 307
12.3.2静态测试和动态测试 307
12.3.3 手工测试和自动化测试 308
12.3.4 有计划测试和随机测试 309
12.3.5 新功能测试和回归测试 310
12.3.6 测试方法综合应用的总结 311
12.3.7 测试方法的有效性和风险性 312
12.4 软件测试的最佳实践 312
12.4.1 测试计划的最佳实践 313
12.4.2 测试用例设计中的最佳实践 314
12.4.3 测试自动化中的最佳实践 315
12.4.4 测试执行中的最佳实践 319
12.4.5 测试团队建设中的最佳实践 321
12.5 软件测试成熟度模型 323
12.5.1 从CMM/CMMI得到的启发 323
12.5.2 目前TMM存在的问题 325
12.5.3 实用测试成熟度模型的建立 326

附录A 软件测试全景图
附录B 完整的项目检查表
附录C 软件测试计划通用模板(GB8567-88)
附录D 完整的测试工具列表
附录E 代码审查的示范性列表
附录F 软件测试术语中英文对照
附录G LoadRunner和OpenSTA比较分析
参考文献
展开
加入书架成功!
收藏图书成功!
我知道了(3)
发表书评
读者登录

请选择您读者所在的图书馆

选择图书馆
浙江图书馆
点击获取验证码
登录
没有读者证?在线办证