热门搜索: 中考 高考 考试 开卷17
服务电话 024-96192/23945006
 

软件测试:一个软件工艺师的方法

编号:
wx1201603571
销售价:
¥69.52
(市场价: ¥79.00)
赠送积分:
70
数量:
   
商品介绍

本书是经典的软件测试教材,也可作为软件测试者、开发者和工程师的参考书。书中对基础知识、方法提供了系统的综合阐述,既涉及基于模型的开发,又介绍了测试驱动的开发,做到了理论与实践的完美结合,反映了软件标准和开发的新进展和变化。

保罗C.乔根森,于1965年获得伊利诺伊大学厄巴纳―尚佩恩分校数学硕士学位,1985年获得亚利桑那州立大学计算机科学和软件工程博士学位。现为大峡谷州立大学荣休教授。他有50多年软件产业界和教育界的从业经验。在其职业生涯的前20年中。主要从事工业软件开发和管理工作。1986年以来,他一直在大学为研究生讲授软件工程课程并进行相关研究,先是在亚利桑那州立大学授课,之后任教于大峡谷州立大学,2017年8月退休。

Software Testing: A Craftsman’s Approach, Fourth Edition
出版者的话
译者序
前言
第一部分 数学基础
第1章 测试概述 2
1.1 基本概念 2
1.2 测试用例 3
1.3 利用维恩图来理解软件测试 3
1.4 构造测试用例 4
1.4.1 基于规格说明的测试 5
1.4.2 基于代码的测试 5
1.4.3 两种测试方法的对比 6
1.5 故障的分类 7
1.6 测试的层次 8
1.7 习题 8
1.8 参考文献 8
第2章 程序示例 9
2.1 通用伪代码 9
2.2 三角形问题 10
2.2.1 问题描述 10
2.2.2 三角形问题的讨论 11
2.2.3 三角形问题的经典实现 11
2.2.4 三角形问题的结构化实现 14
2.3 NextDate日期函数 15
2.3.1 问题描述 15
2.3.2 NextDate函数的讨论 16
2.3.3 NextDate函数的实现 16
2.4 佣金问题 18
2.4.1 问题描述 18
2.4.2 佣金问题的讨论 19
2.4.3 佣金问题的实现 19
2.5 SATM系统 20
2.5.1 问题描述 20
2.5.2 SATM系统的讨论 21
2.6 货币兑换计算器 22
2.7 雨刷控制器 22
2.8 车库门遥控开关 22
2.9 习题 23
2.10 参考文献 24
第3章 面向测试人员的离散数学 25
3.1 集合论 25
3.1.1 集合的成员关系 25
3.1.2 集合的定义方法 25
3.1.3 空集 26
3.1.4 集合的维恩图 26
3.1.5 集合运算 27
3.1.6 集合关系 28
3.1.7 集合划分 29
3.1.8 集合恒等 29
3.2 函数 30
3.2.1 定义域与值域 30
3.2.2 函数类型 30
3.2.3 函数复合 31
3.3 关系 32
3.3.1 集合之间的关系 32
3.3.2 单个集合上的关系 33
3.4 命题逻辑 34
3.4.1 逻辑运算符 34
3.4.2 逻辑表达式 35
3.4.3 逻辑等价 35
3.5 概率论 36
3.6 习题 37
3.7 参考文献 37
第4章 面向测试人员的图论 38
4.1 图 38
4.1.1 节点的度 38
4.1.2 关联矩阵 39
4.1.3 邻接矩阵 39
4.1.4 路径 40
4.1.5 连通性 40
4.1.6 压缩图 41
4.1.7 圈数 41
4.2 有向图 41
4.2.1 入度与出度 42
4.2.2 节点类型 42
4.2.3 有向图的邻接矩阵 43
4.2.4 路径与半路径 43
4.2.5 可达矩阵 44
4.2.6 n连通性 44
4.2.7 强分图 44
4.3 软件测试中常用的图 45
4.3.1 程序图 45
4.3.2 有限状态机 46
4.3.3 Petri网 47
4.3.4 事件驱动Petri网 49
4.3.5 状态图 50
4.4 习题 52
4.5 参考文献 52
第二部分 单元测试
第5章 边界值测试 54
5.1 边界值分析 54
5.1.1 边界值分析的拓展 55
5.1.2 边界值分析的局限性 56
5.2 健壮性测试 56
5.3 最坏情况测试 57
5.4 特殊值测试 57
5.5 示例 58
5.5.1 三角形问题的测试用例 58
5.5.2 NextDate函数的测试用例 59
5.5.3 佣金问题的测试用例 60
5.6 随机测试 62
5.7 边界值测试的原则 63
5.8 习题 65
第6章 等价类测试 66
6.1 等价类 66
6.2 传统的等价类测试 66
6.3 改进的等价类测试 67
6.3.1 弱一般等价类测试 68
6.3.2 强一般等价类测试 68
6.3.3 弱健壮等价类测试 68
6.3.4 强健壮等价类测试 69
6.4 三角形问题的等价类测试用例 69
6.5 NextDate函数的等价类测试用例 71
6.6 佣金问题的等价类测试用例 73
6.7 边缘测试 75
6.8 原则与注意事项 75
6.9 习题 76
6.10 参考文献 76
第7章 基于决策表的测试 77
7.1 决策表 77
7.2 决策表使用技巧 77
7.3 三角形问题的测试用例 80
7.4 Next Date函数的测试用例 81
7.4.1 第一轮尝试 81
7.4.2 第二轮尝试 82
7.4.3 第三轮尝试 83
7.5 佣金问题的测试用例 85
7.6 因果关系图 85
7.7 原则与注意事项 86
7.8 习题 87
7.9 参考文献 87
第8章 路径测试 88
8.1 程序图 88
8.2 DD路径 90
8.3 测试覆盖指标 92
8.3.1 基于程序图的覆盖度量方法 92
8.3.2 E. F. Miller的覆盖度量方法 92
8.3.3 复合条件下的闭合路径 95
8.3.4 示例 96
8.3.5 测试覆盖分析器 99
8.4 基路径测试 99
8.4.1 McCabe的基路径方法 100
8.4.2 McCabe基路径方法的考虑 102
8.4.3 McCabe方法的基本复杂度 103
8.5 原则与注意事项 105
8.6 习题 105
8.7 参考文献 106
第9章 数据流测试 107
9.1 定义/使用测试 107
9.1.1 举例 108
9.1.2 stocks的定义使用路径 110
9.1.3 locks的定义使用路径 110
9.1.4 totalLocks的定义使用路径 113
9.1.5 sales的定义使用路径 113
9.1.6 commission的定义使用路径 115
9.1.7 定义使用路径的测试覆盖指标 115
9.1.8 面向对象编码的定义/使用测试 116
9.2 基于程序切片的测试 116
9.2.1 举例 118
9.2.2 风格与技术 122
9.2.3 切片拼接 123
9.3 程序切片工具 124
9.4 习题 125
9.5 参考文献 125
第10章 单元测试回顾 126
10.1 测试方法的摇摆 126
10.2 测试方法摇摆问题探索 128
10.3 用于评估测试方法的指标 131
10.4 重新

    序言
    译 者 序Software Testing: A Craftsman’s Approach, Fourth Edition人总是会犯错的。在软件的开发过程中,有些错误是显式的,它们可以由编译器发现,而更多的错误却是难以发现甚至难以重现的。如何确保软件产品在实际工作中“不出错”,是我们时刻都要面对的一个很好现实的问题。然而,如何在茫茫代码中找到这些错误?如何评价软件测试的结果?测试后的软件是否还残留有缺陷?残留的缺陷对软件有什么影响?这些问题都缺少一个统一的答案,更多的是依靠个人经验。因此,我们认为,软件开发人员应该是软件测试的行家,软件测试人员也应该是软件开发的高手。将这些个人经验整理成有指导意义的资料并共享,这对于软件测试来说显得尤为重要。
    原著作者Paul C. Jorgensen一直在数学系和计算机系授课,同时还有20多年的工业软件开发和管理经验,这些经历使得他能够很好地理解软件测试。本书就是他融合近年来在软件测试教学工作中的心得体会编写而成的。在第3版的译者序中,我们曾这样形容这本书:“对软件测试理论与技术介绍得层次分明、全面精到;以若干实例为线索展开内容、循序渐进,便于读者掌握;在很多章节的很后,通过深入的对比和讨论,深刻地阐述和总结了在软件测试中普遍存在的实际问题,精辟深刻;此外,原书在语言上还经常不拘一格,多有诙谐灵动之处。”随着第4版的发布,我们看到了作者更为深刻的认识和更为流畅的表达。这一版重新规划了篇章结构,同时根据美国相关标准的要求,扩充了路径测试章节中复杂条件测试和修正的条件判定覆盖率指标等内容,另外,这一版新增了许多紧跟时代、有实用价值的内容。新增的“软件技术评审”章节(第22章)是基于一个软件开发公司20多年来的实际经验撰写的;“软件复杂度”章节(靠前6章)增加了对面向对象编程和系统层面测试的复杂度的处理;在“测试用例的评估”章节(第21章)中,则增加了对愈发普及的变异测试的介绍,用以同漏洞挖掘和故障注入方法进行对比。
    本书靠前~7章和附录由李海峰翻译,第8~23章由马琳翻译,马琳对全书进行了统稿。翻译在某种程度上是再创作的过程,我们在忠实于原文的同时,针对软件测试工作所包含的各种理论与技术的细节进行了深入的整理和推敲。对基础理论和技术概念尽可能采用相关学科的主流说法,对新技术和新名词尽可能使用当前业界流行的说法,以期更标准、更科学和更易于理解地表达原文。对举例时讲述的故事,则力求通俗流畅,以保持原书的语言风格。
    好的作品必然是经过了反复修改才日臻完善的,译著也是一样。由于时间有限,我们无法对所有细节都反复推敲,加上知识水平和实际工作经验有限,不当之处在所难免,恳请读者和同行批评指正。
    译者2017年7月于哈工大

前    言Software Testing: A Craftsman’s Approach, Fourth Edition此次再版,我们增加了四章新内容,同时更加深入地讨论了基于路径的测试,从而拓展了本书18年以来一直侧重基于模型测试的传统。此前本书已经再版三次,经过了18年的教学和业界使用的检验。借助精心挑选的简单易懂的实例,本书把理论与实践紧密地结合在一起。此外,很多第3版中的内容被合并、重组在一起,使全书内容更加简洁流畅。把很多面向对象软件测试的内容和过程软件测试(procedural software testing)整合在一起形成了一个有机的整体。还有就是针对美国联邦航空管理局和美国国防部有关标准的要求,在“路径测试”一章中扩充了复杂条件测试(complex condition testing)和修正的条件判定覆盖率(modified condition decision coverage)指标等内容。    这一版新增加的章节如下:    软件技术评审(第22章)。侧重软件技术检验,这实际上被视为“静态测试”,而本书的前三版一直侧重于讨论如何利用精心挑选的测试用例来执行代码的“动态测试”。本章内容实际上来自一个软件开发公司20多年来的产业实践经验,该公司具有完善的技术评审流程。    附录。附录中给出了一套完整的用例集(采用UML),可以针对典型的客户需求实现实际产业开发所要求的技术检验。其中包括用例标准、用例故障严重程度定义、潜在问题的技术检验事项表,以及典型评审报告和最终报告的格式文档。    基于模型的综合系统测试(第17章)。由系统构成复杂系统的问题相对还是较新的(始于1999年)。软件测试从业人员现在是在追随几位大学研究人员的步伐,主要关注如何界定一个由若干系统构成的复杂系统。这一章介绍了“泳道事件驱动Petri网”,在表达能力上接近著名的状态图方法。有了它就可以对复杂系统实施基于模型的测试。    软件复杂度(第16章)。目前大部分文献都仅考察了在单元层面上的圈复杂度(cyclomatic,也称为McCabe)。本章从两个方面拓展了对单元层面复杂度的考量,引进了两种集成层面上的复杂度。对面向对象编程和系统层面的测试来说,需要涉及对复杂度的处理。在任何层面上,对复杂度的考量都是提升设计、编码、测试和维护工作的重要手段。保持一种一致的软件复杂度表述,对每个阶段都有很大的促进作用。    测试用例的评估(第21 章)。新增的这一章要研究一个难题:如何评估一个测试用例集?测试覆盖性是长期以来为人所接受的指标,但是其中总有一定程度的不确定性。古罗马关于“谁来守卫卫兵”的问题,在此变成了“谁来评估测试”的问题。十几年来,变异测试(mutation testing)逐渐成为一种解决方案,所以本章对其效果和贡献进行了介绍,同时也介绍了另外两种方法:漏洞挖掘(fuzzing)和故障注入(fault insertion)。    做了47年的软件开发人员和大学教授,我认为自己的软件测试知识既有深度也有广度。在大学里,我一直在数学系和计算机系授课,同时我还有20多年的工业软件开发和管理经验,这些经历使我能够很好地编写和改进我的软件测试教程并不断加深对于软件测试的理解。在我讲到书本以外的内容时,我经常会不断地产生新的看法。所以,我把本书的出版视为我对软件测试领域做出的一点贡献。最后,我还要感谢我的三位同事Roger Ferguson博士、Jagadeesh Nandigam博士和Christian Trefftz博士,感谢他们在面向对象测试这几章的撰写中给予我的巨大帮助。    非常感谢!    Paul C. Jorgensen于密歇根州罗克福德市

商品参数
基本信息
出版社 机械工业出版社
ISBN 9787111581314
条码 9787111581314
编者 (美)保罗C.乔根森(Paul C.Jorgensen) 著; 马琳,李海峰 译
译者 马琳,李海峰
出版年月 2017-11-01 00:00:00.0
开本 16开
装帧 平装
页数 324
字数 270
版次 1
印次 1
纸张
商品评论

暂无商品评论信息 [发表商品评论]

商品咨询

暂无商品咨询信息 [发表商品咨询]