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

软件测试的艺术(原书第3版)
作者 : (美)Glenford J. Myers, Tom Badgett, Corey Sandler 著
译者 : 张晓明 黄琳 译
出版日期 : 2012-04-11
ISBN : 978-7-111-37660-6
定价 : 39.00元
扩展资源下载
扩展信息
语种 : 简体中文
页数 : 201
开本 : 16
原书名 : The Art of Software Testing
原出版社: John Wiley & Sons(UK)
属性分类: 店面
包含CD :
绝版 : 未绝版
图书简介

本书从第1版付梓到现在已经30余年,是软件测试领域的经典著作。本书结构清晰、讲解生动活泼,简明扼要地展示了久经考验的软件测试方法和智慧。
本书以一次自评价测试开篇,从软件测试的心理学和经济学人手,探讨了代码检查、走查与评审、测试用例的设计、模块(单元)测试、系统测试、调试等主题,以及极限测试、互联网应用系统测试等高级主题,全面展现了作者的软件测试思想。 第3版在前两版的基础上,结合软件测试的最新发展进行了更新,覆盖了可用性测试、移动应用测试以及敏捷开发测试等内容。
本书适合软件开发人员、IT项目经理,以及学生或更多相关的读者阅读,还可以作为高等院校计算机相关专业软件测试课程的教材或参考书。

图书前言

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

Glenford J. Myers
Tom Badgett
Todd M. Thomas
Corey Sandler

上架指导

计算机\程序设计

封底文字

自从本书第1版付梓到现在30余年,计算机软硬件发生了翻天覆地的变化。不过这本书却经受住了时间的考验。与大多数的软件测试书籍都偏重于介绍某些特别的开发技术、脚本语言或者测试方法不同,本书以简洁明快的写作风格全面而细致地展示了那些久经考验的软件测试方法和智慧。

第3版将原来那些经典的法则应用到当今最热门的技术领域之中,包括:
iPhone、iPad、BlackBerry、Andriod 以及其他移动设备的应用测试
可用性测试
互联网应用、电子商务和敏捷编程环境的测试

对于软件开发人员、IT项目经理,以及学生或更多相关的读者,本书将成为案头不可缺少的资料,当你通过本书发现第一个bug并fix之后,一定会觉得本书物超所值。

图书序言

1979年,Glenford J. Myers出版了一本现在仍被证明为经典的著作,这就是本书第1版。本书经受住了时间的考验,25年来一直列在出版商提供的书目清单中。这个事实本身就是对本书可靠、精粹和珍贵品质的佐证。
  在同一时期,本书第3版的几位合著者共出版了200余本著作,大多数都是关于计算机软件的。其中有一些很畅销,再版了多次(例如Corey Sandler的《Fix Your Own PC》自付梓以来已出版到第8版,Tom Badgett关于微软PowerPoint及其他Office组件的著作已经出版到第4版)。然而,那些作者的著作中没有哪一本书能够像本书一样持续数年之后仍畅销不衰。
  区别究竟在哪里呢?那些新书只涵盖了短期性的主题:操作系统、应用软件、安全性、通信技术及硬件配置。20世纪80年代和90年代以来的计算机硬件与软件技术的飞速发展,必然使得这些主题频繁变动和更新。
  在此期间出版的有关软件测试的书籍已数以百计,这些书也对软件测试的主题进行了简要的探讨。然而,本书为计算机界一个最为重要的主题提供了长期、基本的指南:如何确保所开发的所有软件做了其应该做的,并且同样重要的是,未做其不应该做的?
  本书第3版中保留了同样的基本思想。我们更新了其中的例子以包含更为现代的编程语言。我们还研究了在Myers编著本书第1版时尚无人了解的主题:Web编程、电子商务、极限编程与测试及移动应用测试。
  但是,我们永远不会忘记,新的版本必须遵从其原著,因此,新版本依然向读者展示Glenford Myers全部的软件测试思想,这个思想体系以及过程将适用于当今乃至未来的软件和硬件平台。我们也希望本书能够顺应时代,适用于当今的软件设计人员和开发人员掌握最新的软件测试思想及技术。

作者简介

(美)Glenford J. Myers, Tom Badgett, Corey Sandler 著:暂无简介

译者简介

张晓明 黄琳 译:暂无简介

译者序

《软件测试的艺术》(下简称《艺术》)作为元老级的测试书在国内可能没那么出名,但它的确非常经典且很有口碑,书中所提出的“软件测试为求错而非求证”的观点至今仍在学术界被广泛争议与讨论。随着软件测试的重要性越来越受到现代软件企业的重视,这本书就好像尘封已久的宝藏被人们挖掘出来并受到追捧。与此同时,也正是因为测试市场的需求激增,书店里的测试书籍也似乎是“忽如一夜春风来,千树万树梨花开”了。
  我和《艺术》的第一次接触并不是在书店里发现了它,而是因为我阅读的一个习惯。我喜欢在阅读之前先看参考文献部分,也由此发现国内的很多软件测试书籍都把《艺术》作为首要的参考书目,这让我不得不对该书刮目相看,现在我终于明白了,原来《艺术》一书就是现在各种测试书籍参考的源头之一。以我个人的观点,今天书店里的软件测试理论书籍(注意我是指理论方面)已经饱和甚至是富营养化,如果你打算系统地学习软件测试理论知识,我不敢向你保证这本书是最全面最详细的,但是绝对是恰到好处的,它精悍凝练的篇幅可以让你在最短时间内获得关于软件测试的真知灼见。
  对于那些已经成为测试工程师甚至是高级测试工程师的人来说,本书同样值得一读,书中的很多内容读起来仿佛醍醐灌顶,本书所涵盖的测试知识经过千锤百炼和时间的考验,而把这些理论知识结合你的测试经验,能系统化并巩固加深你对测试这门学科的理解,而这种对软件测试技术系统的、深刻的理解,将使你在今后的工作以及事业中受益匪浅。
  因此,作为一名测试工程师,我对读者的建议是,初学者可将本书作为入门书;而有经验者更应该将本书作为理论指南,花点时间翻阅一下,梳理自己的经验和知识;本书对开发人员也相当有用,可以让你在最短的时间内建立起对测试的框架认知,从而在编码的过程中能够在脑海里多一些测试的思想,十分有益,当然有些测试类型本身就需要开发者参与,比如本书所介绍的极限编程与测试,开发者需要编写单元测试用例。对于测试管理者而言,本书的重要性不言而喻,本书内容非常精炼,将有助于你根据项目情况制定更合理、更有效的测试计划。
  作为本书第3版的译者,我十分有幸能够接到这样的经典书籍翻译任务,而且还是本人的处女译,心中的忐忑自不必多说,只希望我的翻译能够不辱原著的经典,更能够得到读者的认可。
  此次第3版相对于之前的第2版增加了全新的两章(第7章和第11章),由此使得本书包含了当下最新的测试分类和技术。除了第9章的改动增补较大外,其他的章节基本是略有改动。
  在翻译过程中,我尽量保证在准确翻译原文的基础上增加了一些个人的见解,通常以译者注的形式给出,我相信这些注释有助于国内的读者理解和消化书中内容;也有一些地方做了勘误。有时候直译的效果并不那么好,我也会尝试一些意译,比如在11.4节,作者强调了移动应用必然越来越火这一现象和趋势,我便借用著名诗歌《见与不见》来意译:
  你用,或者不用
  移动应用就在那里
……
  因为是站在巨人的肩膀上(前两版译文)进行翻译,所以我必须感谢前两版的翻译人员,这使得我此次翻译的精力主要聚焦在新增的两章以及改动较大的章节上。同时要感谢黄琳为我的原始译稿所做的详尽审稿和勘误工作,这也是我们之间的二度合作。
  最后请大家注意书名中的“艺术”二字,这暗示本书并不是那么晦涩难懂或写得很深奥,我觉得即使你没多少计算机基础知识,只要用过电脑软件,本书的很多章节读起来应该都不会太吃力。我希望有越来越多各行各业的人们加入测试的世界,从本书第7章的可用性测试我们看到,测试需要领域内经验,如果某公司针对音乐爱好者推出了一款混音软件,他们肯定会想,要是能够把周杰伦请来做首席用户体验师该有多好。总之,测试,这是个相比较开发来讲门槛不算太高的职业(当然要做到精深未必容易,甚至难度还要高),而且收入还算不错,在这里与各位读者共勉了。
张晓明
2012年2月6日

图书目录

译者序
序言
前言
第1章  一次自评价测试 1
第2章  软件测试的心理学和经济学 4
2.1  软件测试的心理学 4
2.2  软件测试的经济学 7
2.2.1  黑盒测试 7
2.2.2  白盒测试 8
2.3  软件测试的原则 10
2.4  小结 14
第3章  代码检查、走查与评审 15
3.1  代码检查与走查 16
3.2  代码检查 17
3.2.1  代码检查小组 17
3.2.2  检查议程与注意事项 18
3.2.3  对事不对人,和人有关的注意事项 19
3.2.4  代码检查的衍生功效 19
3.3  用于代码检查的错误列表 19
3.3.1  数据引用错误 20
3.3.2  数据声明错误 22
3.3.3  运算错误 23
3.3.4  比较错误 23
3.3.5  控制流程错误 24
3.3.6  接口错误 26
3.3.7  输入/输出错误 27
3.3.8  其他检查 27
3.4  代码走查 29
3.5  桌面检查 30
3.6  同行评审 31
3.7  小结 32
第4章  测试用例的设计 33
4.1  白盒测试 34
4.2  黑盒测试 40
4.2.1  等价划分 40
4.2.2  一个范例 43
4.2.3  边界值分析 45
4.2.4  因果图 50
4.3  错误猜测 66
4.4  测试策略 67
4.5  小结 68
第5章  模块(单元)测试 70
5.1  测试用例设计 70
5.2  增量测试 81
5.3  自顶向下测试与自底向上测试 84
5.3.1  自顶向下的测试 84
5.3.2  自底向上的测试 89
5.3.3  比较 90
5.4  执行测试 91
5.5  小结 92
第6章  更高级别的测试 93
6.1  功能测试 96
6.2  系统测试 97
6.2.1  能力测试 99
6.2.2  容量测试 100
6.2.3  强度测试 100
6.2.4  可用性测试 101
6.2.5  安全性测试 101
6.2.6  性能测试 102
6.2.7  存储测试 102
6.2.8  配置测试 102
6.2.9  兼容性/转换测试 103
6.2.10  安装测试 103
6.2.11  可靠性测试 103
6.2.12  可恢复性测试 104
6.2.13  服务/可维护性测试 105
6.2.14  文档测试 105
6.2.15  过程测试 105
6.2.16  系统测试的执行 105
6.3  验收测试 106
6.4  安装测试 107
6.5  测试的计划与控制 107
6.6  测试结束准则 109
6.7  独立的测试机构 114
6.8 小结 114
第7章 可用性(或用户体验)测试 116
7.1 可用性测试基本要素 116
7.2 可用性测试流程 118
7.2.1 测试用户的选择 119
7.2.2 需要多少用户进行测试 120
7.2.3 数据采集方法 122
7.2.4 可用性调查问卷 124
7.2.5 何时收工,还是多多益善 125
7.3 小结 126
第8章  调试 127
8.1  暴力法调试 128
8.2  归纳法调试 129
8.3  演绎法调试 132
8.4  回溯法调试 135
8.5  测试法调试 135
8.6  调试的原则 136
8.6.1  定位错误的原则 136
8.6.2  修改错误的技术 138
8.7  错误分析 139
8.8  小结 140
第9章 敏捷开发模式下的测试 142
9.1 敏捷开发的特征 143
9.2 敏捷测试 144
9.3 极限编程与测试 145
9.3.1 极限编程基础 146
9.3.2 极限测试:概念 149
9.3.3 极限测试的应用 152
9.4 小结 155
第10章  互联网应用测试 156
10.1  电子商务的基本结构 157
10.2  测试的挑战 159
10.3  测试的策略 161
10.3.1  表示层的测试 163
10.3.2  业务层的测试 165
10.3.3  数据层的测试 167
10.4  小结 169
第11章 移动应用测试 171
11.1 移动环境 171
11.2 测试面临的挑战 173
11.2.1 移动设备多样性 173
11.2.2 运营商网络基础设施 174
11.2.3 脚本编程 176
11.2.4 可用性测试 177
11.3 测试方法 177
11.3.1 真机测试 179
11.3.2 基于模拟器的测试 181
11.4 小结 182
附录A  极限编程示例程序 184
附录B  小于1000的素数 190

教学资源推荐
作者: 梅宏 王千祥
作者: 黎连业 王华 李龙 黎照 李淑春 编著
作者: Joseph Phillips
参考读物推荐
作者: 李龙 刘文贞 铁坤 编著
作者: Andrew Haigh
作者: (加)Scott W. Ambler, Mark Lines 著