首页>参考读物>计算机科学与技术>软件工程及软件方法学

软件测试的艺术(原书第2版)
作者 : Glenford J.Myers,Tom Badgett,Todd M. Thomas,Corey Sandler
译者 : 王峰 陈杰
出版日期 : 2005-11-01
ISBN : 7-111-17319-8
定价 : 22.00元
扩展资源下载
扩展信息
语种 : 简体中文
页数 : 122
开本 : 16开
原书名 : The Art of Software Testing(Second Edition)
原出版社: John Wiley & Sons
属性分类: 店面
包含CD :
绝版 : 未绝版
图书简介

成功、有效地进行软件测试的实用策略和技术:

● 基本的测试原理和策略     ● 验收测试
● 程序检查和走查         ● 安装测试
● 代码检查           ● 模块(单元)测试
● 错误列表           ● 测试规划与控制
● 同行评分           ● 独立测试机构
● 黑盒、白盒测试        ● 调试原理
● 错误猜测           ● 错误分析
● 自顶向下与自底向上测试    ● 极限测试
● 高级测试           ● 测试因特网应用系统
● 功能和系统测试        ● 电子商务体系结构的高级测试

图书特色

图书前言

在本书1979年第1版出版的时侯,有一条著名的经验,即在一个典型的编程项目中,软件测试或系统测试大约占用50%的项目时间和超过50%的总成本。
  25年后的今天,同样的经验仍然成立。现在出现了新的开发系统、具有内置工具的语言以及习惯于快速开发大量软件的程序员。但是,在任何软件开发项目中,测试依然扮演着重要角色。
  在这些事实面前,读者可能会以为软件测试发展到现在不断完善,已经成为一门精确的学科。然而实际情况并非如此。事实上,与软件开发的任何其他方面相比,人们对软件测试仍然知之甚少。而且,软件测试并非热门课题,本书首次出版时是这样,遗憾的是,今天仍然如此。现在有很多关于软件测试的书籍和论文,这意味着,至少与本书首次出版时相比,人们对软件测试这个主题有了更多的了解。但是,测试依然是软件开发中的“黑色艺术”。
  这就有了更充足的理由来修订这本关于软件测试艺术的书,同时我们还有其他一些动机。在不同的时期,我们都听到一些教授和助教说:“我们的学生毕业后进入了计算机界,却丝毫不了解软件测试的基本知识,而且在课堂上向学生介绍如何测试或调试其程序时,我们也很少有建议可提供。”
  因此,本书再版的目的与1979年时一样:填充专业程序员和计算机科学学生的知识空缺。正如书名所蕴涵的,本书是对测试主题的实践探讨,而不是理论研究,连同了对新的语言和过程的探讨。尽管可以根据理论的脉络来讨论软件测试,但本书旨在成为实用且“脚踏实地”的手册。因此,很多与软件测试有关的主题,如程序正确性的数学证明都被有意地排除在外了。
  本书第1章介绍了一个供自我评价的测试,每位读者在继续阅读之前都须进行测试。它揭示出我们必须了解的有关软件测试的最为重要的实用信息,即一系列心理和经济学问题,这些问题在第2章中进行了详细讨论。第3章探讨的是不依赖计算机的代码走查或代码检查的重要概念。不同于大多数研究都将注意力集中在概念的过程和管理方面,第3章则是从技术上“如何发现错误”的角度来进行探讨。
  聪明的读者都会意识到,在软件测试人员的技巧中最为重要的部分是掌握如何编写有效测试用例的知识,这正是第4章的主题。本书第5章和第6章分别探讨了如何测试单个模块或子程序及测试更大的对象,而第7章则介绍了一些程序调试的实用建议,第8章讨论了极限编程和极限测试的概念,第9章介绍了如何将本书其他章节中详细讨论的软件测试的知识运用到Web编程,包括电子商务系统中去。
  本书面向三类主要的读者。尽管我们希望本书中的内容对于专业程序员而言不完全是新的知识,但它应增强专业人员对测试技术的了解。如果这些材料能使软件人员在某个程序中多发现一个错误,那么本书创造的价值将远远超过书价本身。第二类读者是项目经理,因为本书中包含了测试过程管理的最新的、实用的知识。第三类读者是计算机科学的学生,我们的目的在于向学生们展示程序测试的问题,并提供一系列有效的技术。我们建议将本书作为程序设计课程的补充教材,让学生在学习阶段的早期就接触到软件测试的内容。

作者简介

Glenford J.Myers,Tom Badgett,Todd M. Thomas,Corey Sandler:Glenford J.Myers:  Spectrum Signals的现任主管,IBM系统研究院前高级成员,同时还是RadiSys有限公司的前任CEO和创始人。
Tom Badgett:  IdleAire科技有限公司的CIO,管理着一个软件开发小组,该小组为该公司设计并维护复杂、实时的财务和客户支持系统。他已出版超过50本关于软件和硬件的书籍,并是《PCjr Magazine》和《Digital News》的技术编辑。他为主流计算机刊物撰写过数以百计的文章。
Todd M. Thomas: 专业的软件研发人员和数据库管理员,有9年以上的从业经验,在其职业生涯中接触过各种规模的政府部门和私人的软件项目。他曾编著《Java Data Access》,该书描述了如何使用Java技术来充分利用企业数据的存储。
Corey Sandler: Word协会的主席,为很多大型出版公司策划过计算机、科技、商务和旅游书籍。他是畅销书《Fix Your Own PC》的作者,并且是《Dgital News》的前编辑主任和主编。他还曾是《PC Week》的纽约办事处主管,《PC Magazine》的首任执行编辑。

译者简介

王峰 陈杰:暂无简介

译者序

按照一般的规矩,出版社的编辑要我作为译者为本书的中译本写一个“译者序”。
  说什么呢?
  书中的真知灼见,是作者原创的。作为译者,我们只是把他们的思想尽量用我们的母语原封不动地传达给读者,实在没有什么非说不可的东西。是好是坏,全在书中,读了之后自有论断。
  然而,当我翻译完原书封底最后一行文字的时候,还是想对读者朋友们说几句话。
  首先,这是我表示不再翻译“软件测试”同类书之后,又“旧病重犯”接的活。两年前,我们应机械工业出版社华章分社编辑之约,翻译了Cem Kaner等人的《Testing Computer Software》第2版,由机械工业出版社和中信出版社于2004年5月出版。当时翻译工作基本上是在编辑的不断催促下在八小时工作以外完成的,很辛苦。结束之后,觉得太累,决定这种活以后不干了。2004年12月,编辑打电话约我去华章分社,递给我这本Glenford J. Myers的《The Art of Software Testing》。又是一个第2版,还是自1979年首版25年之后的第2版,当时我想这肯定是本好书。在我的记忆当中,除了大学的教材,计算机专著很少能“活”25年的。因此,当编辑问我翻不翻译时,我不加思索地答应了。另外,心想这本书薄,肯定没有翻译上本书那么累。
  其次,这是我惟一一本从头到尾彻底看完的外文专业书,正文内容至少读了三遍,有些话反复揣摩,不下五遍。在我桌上一直放着商务印书馆出的两本词典,一本是中国人编的《英华大词典》,一本是外国人编的《朗文当代高级英语辞典(英英.英汉双解)》,为了翻译得准确些,很多单词我都同时查过这两本词典。在本书中,作者提出了“测试是为发现错误而执行程序的过程”、“测试的目标是建立‘软件做了其应该做的,未做其不应该做的’信心”等观点,与众不同。同时书中明确定义并区分了“代码检查”、“代码走查”、“同行评审”等概念,这在一般的书中是很少讲到的。由于工作的原因,译者参加过很多软件的测试工作,曾自认对软件测试还有所了解,自从读完本书之后,深深感到自己的认识原来是多么肤浅,所完成工作的质量原来是多么有待提高。当然,不要指望读了一两本书就能改变现状。
  再次,关于全书的内容和结构,浏览一下目录就清楚了,我在这里就不赘言了。这本书“活”了25年,自有它的道理,请慢慢体会。
  最后,如果条件允许,最好阅读原著。译者水平再高,也很难将原书所有的优美之处完全准确地表达出来。
  1979年,Glenford J. Myers出版了一本现在仍被证明为经典的著作,这就是本书的第1版。本书经受住了时间的考验,25年来一直被列在出版商可供书目的清单中。这个事实本身就是对本书稳定、基础和珍贵品质的佐证。
  在同一时期,本书第2版的几位合著者共出版了120余本著作,大多数都是关于计算机软件的。其中有一些很畅销,再版了多次(例如Corey Sandler的《Fix Your Own PC》自付梓以来已出版到第7版,Tom Badgett关于微软PowerPoint及其他Office组件的著作已经出版到第4版以上)。然而,这些作者的著作中没有哪一本书能够像本书一样持续数年之后仍畅销不衰。
  区别究竟在哪里呢?这些新书只涵盖了短期性的主题:操作系统、应用软件、安全性、通信技术及硬件配置。20世纪80年代和90年代以来的计算机硬件与软件技术的飞速发展,必然使得这些主题频繁地变动和更新。
  在此期间出版的有关软件测试的书籍已数以十计、甚至数以百计。这些书也对软件测试的主题进行了简要的探讨。
  然而,本书为计算机界一个最为重要的主题提供了长期、基本的指南:如何确保所开发的所有软件做了其应该做的,并且同样重要的是,未做其不应该做的?
  本书第2版中保留了同样的基本思想。我们更新了其中的例子以包含更为现代的编程语言。我们还研究了在Myers编著本书第1版时尚无人了解的主题:Web编程、电子商务及极限编程与测试。
  但是,我们不会忘记,新的版本必须遵从其原著,因此,新版本依然向读者展示Glenford Myers全部的软件测试思想,这个思想体系以及过程将适用于当今乃至未来的软件和硬件平台。我们也希望本书能够顺应时代,适用于当今的软件设计人员和开发人员掌握最新的软件测试思想及技术。

图书目录

第1章  一次自评价测试 1
第2章  软件测试的心理学和经济学 3
2.1  软件测试的心理学 3
2.2  软件测试的经济学 5
2.2.1  黑盒测试 5
2.2.2  白盒测试 6
2.3  软件测试的原则 7
2.4  小结 10
第3章  代码检查、走查与评审 11
3.1  代码检查与走查 11
3.2  代码检查 12
3.3  用于代码检查的错误列表 14
3.3.1  数据引用错误 14
3.3.2  数据声明错误 15
3.3.3  运算错误 15
3.3.4  比较错误 16
3.3.5  控制流程错误 16
3.3.6  接口错误 17
3.3.7  输入/输出错误 18
3.3.8  其他检查 18
3.4  代码走查 20
3.5  桌面检查 21
3.6  同行评分 21
3.7  小结 22
第4章  测试用例的设计 23
4.1  白盒测试 24
4.1.1  逻辑覆盖测试 24
4.1.2  等价划分 28
4.1.3  一个范例 29
4.1.4  边界值分析 31
4.1.5  因果图 35
4.2  错误猜测 48
4.3  测试策略 49
第5章  模块(单元)测试 51
5.1  测试用例设计 51
5.2  增量测试 59
5.3  自顶向下测试与自底向上测试 61
5.3.1  自顶向下的测试 61
5.3.2  自底向上的测试 65
5.3.3  比较 66
5.4  执行测试 66
第6章  更高级别的测试 69
6.1  功能测试 71
6.2  系统测试 72
6.2.1  能力测试 73
6.2.2  容量测试 73
6.2.3  强度测试 74
6.2.4  易用性测试 74
6.2.5  安全性测试 75
6.2.6  性能测试 75
6.2.7  存储测试 76
6.2.8  配置测试 76
6.2.9  兼容性/配置/转换测试 76
6.2.10  安装测试 76
6.2.11  可靠性测试 76
6.2.12  可恢复性测试 77
6.2.13  适用性测试 78
6.2.14  文档测试 78
6.2.15  过程测试 78
6.2.16  系统测试的执行 78
6.3  验收测试 79
6.4  安装测试 79
6.5  测试的计划与控制 79
6.6  测试结束准则 80
6.7  独立的测试机构 84
第7章  调试 85
7.1  暴力法调试 85
7.2  归纳法调试 87
7.3  演绎法调试 89
7.4  回溯法调试 91
7.5  测试法调试 91
7.6  调试的原则 91
7.6.1  定位错误的原则 92
7.6.2  修改错误的技术 92
7.7  错误分析 93
第8章  极限测试 95
8.1  极限编程基础 95
8.2  极限测试:概念 98
8.2.1  极限单元测试 98
8.2.2  验收测试 99
8.3  极限测试的应用 99
8.3.1  测试用例设计 100
8.3.2  测试驱动器及其应用 101
8.4  小结 102
第9章  测试因特网应用系统 103
9.1  电子商务的基本结构 104
9.2  测试的挑战 105
9.3  测试的策略 106
9.3.1  表示层的测试 108
9.3.2  业务层的测试 109
9.3.3  数据层的测试 111
附录A  极限测试应用程序样例 113
附录B  小于1000的素数 119
词汇表 121

教学资源推荐
作者: [美]罗杰 S.普莱斯曼(Roger S. Pressman),[美]布鲁斯 R. 马克西姆(Bruce R. Maxim) 著
作者: 麻志毅
作者: [美]居瓦·洛瑞(Juval Löwy)著
作者: Jakob Nielsen
参考读物推荐
作者: John D.McGregor David A.sykes 著
作者: (美)Richard C.Lee,William M.Tepfenhart
作者: Stephen Withall
作者: (美)Paul E.McMahon