软件测试实践

当前位置:首页 > 教材 > 研究生/本专科 > 软件测试实践

出版社:清华大学出版社
出版日期:2008
ISBN:9787302186526
作者:Rex Black
页数:246页

章节摘录

插图:第一部分 目标、策略和战术第1章 实用意味着什么关于实用测试,让我们从探讨一些明显的问题开始,这些问题的答案却并不那么明显,并不那么普遍地为人接受。从一个实用的,或者实践的观点看,实用涉及在测试软件时什么是有效且高效的。什么是有效的软件测试?什么是高效的软件测试?到底什么是软件测试?什么是质量?这些问题可能貌似不切实际而且很哲学,但在我的经验中,它们并非如此。你对这些问题的回答决定了你作为测试者期待去做些什么。其他人对于这些问题的回答则决定了他们期待作为测试者的你去做些什么。在一个公司组织中,在贯穿整个项目里,上下都对此有个相同的期望对成功来说是至关重要的。没有这样一个共识,不管你做什么,总有人会感到失望。有了共同的期望,就都会为着同一个目标而努力,并支持他人的勤奋工作。 有效和高效意味着什么韦氏字典定义词汇有效(effective)为“产生确定的、明确的或者所期待的结果;给人印象深刻的”。所以,作为一个有效的软件测试者,你必须决定你的测试工作所期待的结果。类似地,韦氏字典定义高效(effcient)为“能够产生所期待的效果;尤其是在生产过程中并不产生浪费的。”所以,作为一个高效的测试者,你必须合理地分配资源(时间和金钱)。

前言

软件测试是软件开发过程中不可或缺的阶段,自20世纪70年代开始,业界就公认,在一个典型的编程项目中,测试会占到一半乃至更多的时间和资源。30年来编程语言和软件开发技术的发展日新月异,今天我们拥有了更成熟更丰富的手段来便利地构造精妙复杂的软件,但是测试依然扮演着同样重要的角色。并且,随着计算机软件技术在各行各业的普及运用,人们对软件质量的要求也越来越专业化和多样化。软件开发团队必须尽可能地在交付产品之前控制未来的质量风险,这就必然需要依赖于卓有成效的软件测试。软件测试远比人们所直观想象的要复杂,哪怕是测试一个简单的系统,也会是一个潜在的旷日持久的任务。在经费和进度紧张的情况下,测试者需要切合实用的技术,亲自实践的经验和正确的策略来有效而高效地进行软件测试。在现实生活中,有效而高效的软件开发技能常常成为业界人员的热门话题和追逐目标,有效而高效的软件测试技能却相对为人们所冷落。正如软件测试泰斗Glenford Myers在其经典著作《软件测试艺术》中所言,“我们的学生每年毕业进入业界,几乎全无软件测试方面的知识,甚至,我们几乎从未指导过学生应该如何来测试和调试他们写下的课程程序。”IBM的测试教育专家Gerald D. Everett在他的著作《软件测试:贯穿整个生命周期的测试》中谈到,在他对美国21所大学进行的一个调查中发现,其中18所大学均没有开设任何软件测试方面的课程。这说明软件测试的培训与教育并无法满足当今IT产业的需求。这个现象在中国的软件产业中也有所反映,尽管客户对高质量高可靠度软件产品的需求日益增加,尽管软件测试愈来愈为国内业界重视,高效的软件测试工程师依然是各开发团队争相网罗的人才。另一方面,随着敏捷开发方法等新一代软件工程概念的风靡,软件编码和测试过程多次迭代,测试人员更积极地参与到软件生命周期的各个阶段中,使得整个项目团队收取事半功倍的成效。编码和测试人员越来越紧密地协同工作,优秀的程序员必然需要了解测试的方法和概念,优秀的测试人员所具备的技能也不再是仅仅是对现成的程序进行直观的功能测试,软件测试的涵义和策略日益复杂,软件质量风险控制涉及到愈来愈多的方面。故而软件企业对员工进行测试概念、过程、技巧、工具等方面的培训,能显著地提高整个团队的工作效率。本书是一本测试技术的入门手册。即使对软件测试毫无所知的读者,阅读完本书后也会对软件测试的概念和方法有一个较为扎实的知识基础,从而可以参与实际的软件测试活动。作者Rex Black是一个有20余年软件和系统工程经验的资深专家,曾出版《管理测试过程》等著作。他也是国际软件测试认证委员会和美国软件测试认证委员会的主席。本书深入浅出地探讨了测试专业人员须知的方法和概念。阐述了测试的基础技术,并且清晰地展示给你在经费和时间有限的情况下,如何选择和运用成功的策略来测试一个系统。本书将为读者提供下列各方面的指导:如何分析系统的质量风险,并且依据风险级别来分配测试工作的侧重点。介绍多种不同的测试策略,以及如何每一次实践中如何选择最好的策略。如何依据系统的期望行为(黑盒)来设计测试。如何依据系统的内部结构(白盒)来设计测试。如何采用你的直觉、经验、知识来更好地进行测试。值得特别指出的是,本书把测试与风险分析结合起来,详尽探讨了通过测试来控制风险的方法。质量风险概念成为指引测试活动的量标。这种视角有助于测试人员站在软件质量保证的高度上来思考所从事的测试活动,在学术探讨和实际应用中均颇具价值,即使是新入门的测试人员,也能藉此为线索,领悟到软件开发过程的精华理念。本书涉及的软件测试实践中大多数耳熟能详的经典概念和技术,主要包括如下内容。第一部分:测试的基本知识简介。包括测试的目标、策略、与技巧。本部分是全书的基础,后面介绍的内容都围绕这些基本目标展开。第二部分:基于风险的测试介绍。通过理解系统质量风险,把测试与风险控制结合起来,是本书提供给读者的一个新的视角。第三部分:静态测试。本部分简要介绍静态测试的主要方法之一:复审的技术以及相关练习。第四部分:行为测试。本部分详细介绍了多种主要的行为测试技术,包括同等类与边界值、决策表、状态迁移图、领域测试、正交数组等测试方法,每种测试技术均配备了练习与参考解答。第五部分:结构测试。本部分涉及到的主要技术包括控制流测试、数据流测试、集成测试,每种测试技术均配备了练习与参考答案。本书的叙述简明清晰,可操作性强,并且提供了大量有价值的练习以供实践。本书适合从事软件测试与软件开发的IT从业人员或者高等院校计算机专业的高年级本科生以及研究生阅读。鉴于译者的水平有限,书中错误与疏漏在所难免,敬请读者批评指正。

内容概要

Rex Black 拥有长达1/4个世纪的软件与系统工程的丰富经验,他现任Rex Black 咨询公司(RBCS)的总裁与首席咨询师,RBCS是软件、硬件和系统测试领域的领先者。在过去十多年间,RBCS为全球范围内的许多客户提供了与测试和质量保证相关的咨询、外包、评测和培训服务。RBCS的100多个客户分布在全球六大洲的20个国家,这些客户包括Adobe(India)、ASB Bank、Bank One、Cisco、Comverse、Dell、美国国防部、Hitachi、NDS以及Schlumberger。
Rex已经出版了4本相关著作,是当今在测试和质量保证领域著作最多的作者。他的第一本书《管理测试过程》(Managing the Testing Process)非常流行,现在已经出了第2版,并已在全世界销售了超过25 000本,其中包括在日本、中国和印度发行的版本。他的另外一本关于测试管理的书,《关键测试过程》(Critical Testing Process),以及本书的早期版本,当时题为《有效且高效的软件测试》(Effective and Efficient Software Testing),都已经销售了数千本,并出版了希伯来语、印度语、日语,以及俄语的版本
Rex还是国际软件测试认证委员会(ISTQB)(www.istqb.org)和美国软件测试认证委员会(ASTQB)(www.astqb.org)的主席。他是ISTQB现在使用的基础课程大纲(2005版),以及将要出版的高级课程大纲(2007版)的主要作者,并同Isabel Evans、Dorothy Graham和Erik van Veenendaal一起编写了ISTQB考试使用的权威教材——《软件测试基础》(Foundations of Software Testing)。
除了上述著作之外,Rex还发表了超过25篇期刊论文;并在会议和研讨会上发布了数百篇论文;他还在世界各地的学术会议和活动中发表过十多次主题演讲。
Rex除了环游世界进行工作和旅游之外,其他时间居住在美国德克萨斯州的Bulverde小镇,和他一起居住的还有:他的妻子Laurel Becker;两个女儿Emma Grace和Charlotte Catherine;还有他的两条狗Cosmo 和 Hank。

书籍目录

第一部分 目标、策略和战术
第1章 实用意味着什么 2
1.1 你想有什么样的效果 2
1.2 什么是高效性的正确级别 3
1.2.1 避免冗余 3
1.2.2 控制费用 3
1.2.3 软件测试不是(但是经常被误认为是)什么 4
1.3 测试者认知的5个阶段 5
1.4 测试的其他基本观点 6
1.5 将测试作为质量风险管理的一种形式 6
1.6 测试团队到底是干什么的 7
第2章 三角形测试练习 9
2.1 练习:三角形测试 9
2.2 你的三角形测试解答 9
2.3 作者的三角形测试解答 10
第3章 测试与项目的协调 13
3.1 为什么要进行测试 13
3.2 测试的视角 13
3.3 在上下文环境中测试 14
3.4 常见的测试阶段和目标 14
3.5 贯穿组织的测试 15
3.6 V模型 16
3.7 演化式和增量式模型 18
3.8 螺旋模型 18
3.9 遗憾的常用模型:编码和修正 19
3.10 测试维护性发布 20
3.11 系统集成 20
3.12 硬件开发和软件开发 22
3.13 测试过程 22
第4章 理解测试策略、战术和设计 24
4.1 让任务、策略和战术保持协调 24
4.2 分析的测试策略 25
4.3 基于模型的测试策略 25
4.4 系统的测试策略 26
4.5 面向过程的测试策略 26
4.6 动态测试策略 27
4.7 哲学的测试策略 28
4.8 回归 28
4.8.1 回归策略1:重复所有测试 29
4.8.2 回归策略2:重复一些测试 30
4.9 其他3种回归策略 31
4.10 战术:测试技术类别 31
4.11 策略与战术方面的考虑 33
4.12 测试系统 34
4.13 测试设计的经典原则 35
4.14 测试开发的阶段 36
4.15 测试策略、战术和设计的提要 37
第二部分 基于风险的测试
第5章 理解系统质量的风险 40
5.1 测试风险分类 40
5.1.1 功能 41
5.1.2 性能和可靠性 41
5.1.3 压力、容量和规模 43
5.1.4 状态 43
5.2 事务 44
5.2.1 安装和卸载 45
5.2.2 操作 45
5.2.3 维护和可维护性 46
5.3 回归 46
5.3.1 可用性和用户界面 47
5.3.2 数据质量 47
5.3.3 错误和灾难处理以及恢复 48
5.3.4 日期和时间处理 49
5.3.5 本地化 50
5.3.6 配置和兼容性 51
5.3.7 联网的、Internet上的和分布式的 51
5.3.8 符合标准和法规 51
5.3.9 安全 52
5.3.10 计时和协同 52
5.3.11 文档 53
5.4 你能想到其他质量风险吗 53
第6章 协调测试和质量风险 54
6.1 为系统质量风险划分优先级 54
6.2 测试、客户使用和系统配置 55
6.3 质量风险分析的方法 56
6.4 非正式的质量风险分析 57
6.5 风险分析的小技巧 60
6.6 风险分析的挑战 61
第7章 质量风险分析练习 63
7.1 我的解答 63
7.2 关于我的解答的评论 66
7.3 在迈向质量风险的途中我遇见了一件有趣的事 67
7.4 额外练习 69
7.5 模板 69
7.6 我的解答 72
7.7 对我的解答的评论 73
7.8 额外范例:“灰和蓝”质量风险分析 74
第三部分 静态测试
第8章 复审和其他静态测试 78
8.1 测试需求和设计 78
8.2 复审的开销和收益 78
8.3 复审的类型 79
8.4 为验证和确认而复审 79
8.5 将复审作为一种改进过程、改进系统、节约开销的手段 80
8.6 关于静态测试三个问题的答案 82
8.7 复审作为一种取得共识和理解的手段 82
8.8 复审过程、角色和责任 83
8.9 来自复审的交付品和基本章程 84
8.10 常见的需求和风险缺陷 85
8.11 复审(和测试)文档 86
8.12 其他静态测试 87
第9章 复审练习 88
9.1 复审 88
9.2 你的解答 88
9.3 我的解答 90
9.4 对我的解答的评论 93
9.5 额外练习:复审三角形需求首页 93
9.6 你所找到的需求缺陷 94
9.7 我的解答:需求缺陷 97
9.8 对我的解答的评论 98
第四部分 行为测试
第10章 等价类和边界值 100
10.1 等价性划分 100
10.2 边界值分析 101
10.2.1 整数 102
10.2.2 实数 103
10.2.3 字符和字符串 104
10.2.4 日期 107
10.2.5 时间 108
10.2.6 货币 109
10.2.7 功能之外的类和边界 110
第11章 等价类和边界值练习 111
11.1 功能性边界和类 111
11.2 我的解答和评论 112
11.3 非功能的边界和类 116
11.3.1 Omninet市场需求文档(v0.3) 116
11.3.2 Omninet系统需求文档(v0.2) 117
第12章 用况、实况数据和决策表 118
12.1 用况和场景测试 118
12.2 名词与动词、形容词与副词 120
12.3 实况数据和客户测试 120
12.4 决策表 121
第13章 决策表练习 123
13.1 决策表测试 123
13.2 我的解答和评论 124
13.3 决策表和边界值 126
13.4 我的解答和评论 127
13.5 为测试建立一个决策表 131
13.6 我的解答和评论(业务规则是互斥的) 132
第14章 状态转换图 136
14.1 使用状态转换图描述具有状态的系统 136
14.2 状态表 137
14.3 打印服务器状态转换图 138
第15章 状态转换图练习 140
15.1 自助服务机状态 140
15.2 我的解答和评论 140
15.3 ATM状态模型 146
15.4 我的解答和评论(ATM状态模型) 147
15.5 “灰和蓝”状态转换图 148
15.6 我的解答和评论(状态转换图) 149
第16章 域测试 151
16.1 组合的爆炸式剧增 151
16.2 使用飞行里程计划的域例子 152
16.3 可能的域测试值 153
16.4 一个航空例子 154
16.5 当域规则变化时 155
16.6 域分析总结 155
16.7 复杂的域测试例子 156
16.8 复杂域的一个通用规则 158
第17章 域测试练习 161
17.1 我的解答和评论 161
第18章 正交表和所有对值 164
18.1 组合的爆炸式剧增 164
18.2 正交表和所有对值表 165
18.3 两个正交表 166
18.4 选择一个正交表 167
18.5 将正交表运用到一个复杂的真实世界例子中 167
18.6 所有对值表 178
18.7 配置测试上的其他观点 179
第19章 正交表练习 181
19.1 我的解答和评论 182
第20章 反应测试 185
20.1 反应测试的基本事实 185
20.2 错误猜测、攻击和缺陷归类 186
20.3 缺陷围猎 187
20.4 探索式测试 187
20.5 清单 188
20.6 其他反应测试的灵感来源 189
20.7 优点和缺点 190
20.8 探索式测试的一个案例研究 191
第五部分 结构测试
第21章 控制流测试 196
21.1 代码覆盖 196
21.2 McCabe圈复杂度 198
第22章 控制流测试练习 200
22.1 我的解答和评论 201
22.1.1 理解潜在的测试用况的数量 201
22.1.2 为语句、分支、条件和循环的全覆盖创建一套测试用况集 201
22.1.3 计算McCabe复杂性,写出基本路径,并创建基本测试 202
第23章 数据流测试 205
第24章 数据流测试练习 207
24.1 我的解答和评论 208
第25章 集成测试 214
25.1 驱动和桩 214
25.2 集成技术 215
25.3 主干集成 217
25.4 集成的McCabe基本路径 218
25.5 增强的十六进制转换器程序 220
25.6 调用流 222
第26章 集成基本测试练习 225
26.1 我的解答和评论 225
第六部分 附 录
附录A Omninet市场需求文档 230
A.1 范围 230
A.1.1 术语、缩写和简称 230
A.1.2 适用文档 231
A.2 发布时间要求 231
A.3 需求描述 231
A.3.1 通用的技术需求 231
A.3.2 管理 232
附录B Omninet系统需求文档 235
B.1 系统功能需求 235
B.2 系统可靠性需求 237
B.3 可用性需求 238
B.4 系统高效性需求 239
B.5 系统维护性需求 240
B.6 可移植性系统需求 240
B.7 设计模型 241
B.7.1 Omninet系统架构 241
B.7.2 付费处理决策表 241
B.7.3 自助服务机模块流 242
B.7.4 自助服务机状态转换图 242
B.7.5 自助服务机状态转换表 243
B.7.6 自助服务机操作系统/
浏览器/连接速度配置的正交表 243
附录C 书目和其他推荐阅读材料 245

编辑推荐

《软件测试实践:成为一个高效能的测试专家》的叙述简明清晰,可操作性强,并且提供了大量有价值的练习以供实践。《软件测试实践:成为一个高效能的测试专家》适合从事软件测试与软件开发的IT从业人员或者高等院校计算机专业的高年级本科生以及研究生阅读。

作者简介

哪怕是测试一个简单的系统,也可能会是一个旷日持久的任务。在经费和进度紧张的情况下,测试者需要使用实用的技术,亲自实践的经验和正确的策略来有效而高效地进行软件测试。
本书将会把这些内容交到你的手中。通过一系列表述完好,清晰透彻而实用的章节,你将掌握对软件测试至关重要的技能。
* 如何分析系统的质量风险,并根据风险的级别来恰当地安排你的测试工作。
* 不同的测试策略,以及每次如何选择正确的测试策略,包括选择处理回归测试的高效策略。
* 如何基于系统的预期行为来设计(黑盒)测试,包括边界值(boundary value)、等价性划分( equivalence partitioning)、决策表(decision table)、用况(use case)、状态转换图表(state diagram and table)、所有对值表 (all-pairs table)、正交表(orthogonal arrays),以及域分析(domain analysis)。
* 如何基于一个系统的内部结构来设计(白盒)测试,包括代码覆盖等级、数据流覆盖和基本路径覆盖。
* 如何规划和执行集成测试。
* 如何使用你的直觉、经验和知识去探测和攻击系统。
* 如何让你的辛勤工作服务于项目的需要。
* 因为测试是一个切身实践体验的活动,本书包括11个完整章节,以真实而原汁原味的练习来展示所有主要的测试技术,以及具体的解决方案 。
如果你从来没有读过一本关于测试设计的书,如果你已经读过其他的测试设计的书却发现它们很难付诸实施,如果你已经读过某本测试设计的书却发现它在事情变得真正有意思的时候就嘎然而止,那么这本书就是为你写的。读完本书后,你学到的关于测试的具体技巧会比多数测试人员在其整个职业生涯中学到的还要多,你将会胸有成竹地把这些知识运用到你下一个测试项目中去。

图书封面


 软件测试实践下载 更多精彩书评



发布书评

 
 


精彩书评 (总计2条)

  •     作者在软件测试领域可能是一个知名人物。但是这本书,我觉得不应该是翻译的问题,的确是作者在某些技术的应用方面可能想告诉读者一些东西,罗罗嗦嗦半天,读者仍然云里雾里。本书的取材来自于作者的一些培训材料,可能在培训班上应用效果会更好一些。换言之,不是一本很好的“教材”,同时也缺乏习题。
  •     作者在组织内容的功力有点欠缺,很多东西随手拈来,味如嚼蜡。很多表格排版很不科学,很多冗余信息。测试最主要的就是做用最少的测试用例找到更多的BUG(有效和高效)这本书的内容却是用尽量多的东西描述尽量少的内容。喜欢逻辑性比较强的书的读者可能不会喜欢这本书。

精彩短评 (总计11条)

  •     书很好,质量不错,亚以逊发货不是很好,本来一个定单,给我折成了好几个定单,结果发票也给漏发 ,不过客服态度还是很不错的。
  •     从目录结构上整体感不强,在内容的组织逻辑上不够缜密。不知道是翻译的缘故还是原著就是这样。内容分散,没有任何重点突出,同时与当前的测试行业的技术脱轨。看了这本书以后感觉很多东西说的不是很切合实际。不太实用。
  •     个人觉得非常不实用,而且是英文版翻译过来的,读起来相当别捏
  •     说实话翻译的真不像人话……
  •     内容还不错,就是翻译过来较为生硬,每每看此书,感觉生硬非常,消化半天才能吞下。
  •     这本书非常具有指导意义。
  •     网上查看时没有看页码,到手后一看薄薄的一本,才246页。内容较基础,翻译句子还算通顺,但不够简洁。定价35元太贵了,若定价35/2=17.5,在大个八折=14元,这个价格才是合理的
  •     同事反应不错,会一直留意,还会再来买书~
  •     很实用的书 很适合初学者 很好
  •     非常简单但是很实用的书,看完了去面试感觉提供啊还是很快的。了解了很多正规的测试方法,值得推荐
  •     总的来说发货很快,纸质质量也不错
 

外国儿童文学,篆刻,百科,生物科学,科普,初中通用,育儿亲子,美容护肤PDF图书下载,。 零度图书网 

零度图书网 @ 2024