软件测试的艺术
2012-4-15
机械工业出版社华章公司
Glenford J. Myers,Tom Badgett
201
张晓明
无
1979年,GlenfordJ.Myers出版了一本现在仍被证明为经典的著作,这就是本书第1版。本书经受住了时间的考验,25年来一直列在出版商提供的书目清单中。这个事实本身就是对本书可靠、精粹和珍贵品质的佐证。在同一时期,本书第3版的几位合著者共出版了200余本著作,大多数都是关于计算机软件的。其中有一些很畅销,再版了多次(例如CoreySandler的《FixYourOwnPC》自付梓以来已出版到第8版,TomBadgett关于微软PowerPoint及其他Office组件的著作已经出版到第4版)。然而,那些作者的著作中没有哪一本书能够像本书一样持续数年之后仍畅销不衰。区别究竟在哪里呢?那些新书只涵盖了短期性的主题:操作系统、应用软件、安全性、通信技术及硬件配置。20世纪80年代和90年代以来的计算机硬件与软件技术的飞速发展,必然使得这些主题频繁变动和更新。在此期间出版的有关软件测试的书籍已数以百计,这些书也对软件测试的主题进行了简要的探讨。然而,本书为计算机界一个最为重要的主题提供了长期、基本的指南:如何确保所开发的所有软件做了其应该做的,并且同样重要的是,未做其不应该做的?本书第3版中保留了同样的基本思想。我们更新了其中的例子以包含更为现代的编程语言。我们还研究了在Myers编著本书第1版时尚无人了解的主题:Web编程、电子商务、极限编程与测试及移动应用测试。但是,我们永远不会忘记,新的版本必须遵从其原著,因此,新版本依然向读者展示GlenfordMyers全部的软件测试思想,这个思想体系以及过程将适用于当今乃至未来的软件和硬件平台。我们也希望本书能够顺应时代,适用于当今的软件设计人员和开发人员掌握最新的软件测试思想及技术。
本书从第1版付梓到现在已经30余年,是软件测试领域的经典著作。本书结构清晰、讲解生动活泼,简明扼要地展示了久经考验的软件测试方法和智慧。
本书以一次自评价测试开篇,从软件测试的心理学和经济学入手,探讨了代码检查、走查与评审、测试用例的设计、模块(单元)测试、系统测试、调试等主题,以及极限测试、互联网应用测试等高级主题,全面展现了作者的软件测试思想。第3版在前两版的基础上,结合软件测试的最新发展进行了更新,覆盖了可用性测试、移动应用测试以及敏捷开发测试等内容。
本书适合软件开发人员、IT项目经理等相关读者阅读,还可以作为高等院校计算机相关专业软件测试课程的教材或参考书。
第3版阐述了如何将经典软件测试法则应用到解决当今计算机行业所面临的最紧迫的问题之中,这些 问题包括:
移动设备的应用测试
各种设备上的软件代码走查、代码审查(从技术以及如何发现错误的角度讨论)
可用性测试(随着直接面向广大终端用户的应用在数量上呈爆发性增长,可用性变得越来越重要)
互联网应用、电子商务和敏捷编程环境的测试
Glenford J. Myers,IBM系统研究所前高级研究员,同时还是RadiSys公司的创始人和前CEO。
Tom
Badgett,曾经主管大型企业软件开发团队,已出版超过60本关于计算机软件和硬件的技术书籍,同时他还是PcJr,Digital
News等主流计算机杂志的技术编辑。
Corey Sandler,计算机新闻的先锋,他曾经负责Gannett Newspapers 和the Associated
Press的技术部分以及之后成为Pc Magazine的第一任主编。他同时还是Digital
News(针对DEC小型机的一份报纸)的编辑创始团队成员,他著作等身,目前已经出版了超过150本书籍,覆盖了从计算机到商业以及很多其他领域。
译者序
序言
前言
第1章 一次自评价测试
第2章 软件测试的心理学和经济学
2.1 软件测试的心理学
2.2 软件测试的经济学
2.2.1 黑盒测试
2.2.2 白盒测试
2.3 软件测试的原则
2.4 小结
第3章 代码检查、走查与评审
3.1 代码检查与走查
3.2 代码检查
3.2.1 代码检查小组
3.2.2 检查议程与注意事项
3.2.3 对事不对人,和人有关的注意事项
3.2.4 代码检查的衍生功效
3.3 用于代码检查的错误列表
3.3.1 数据引用错误
3.3.2 数据声明错误
3.3.3 运算错误
3.3.4 比较错误
3.3.5 控制流程错误
3.3.6 接口错误
3.3.7 输入/输出错误
3.3.8 其他检查
3.4 代码走查
3.5 桌面检查
3.6 同行评审
3.7 小结
第4章 测试用例的设计
4.1 白盒测试
4.2 黑盒测试
4.2.1 等价划分
4.2.2 一个范例
4.2.3 边界值分析
4.2.4 因果图
4.3 错误猜测
4.4 测试策略
4.5 小结
第5章 模块(单元)测试
5.1 测试用例设计
5.2 增量测试
5.3 自顶向下测试与自底向上测试
5.3.1 自顶向下的测试
5.3.2 自底向上的测试
5.3.3 比较
5.4 执行测试
5.5 小结
第6章 更高级别的测试
6.1 功能测试
6.2 系统测试
6.2.1 能力测试
6.2.2 容量测试
6.2.3 强度测试
6.2.4 可用性测试
6.2.5 安全性测试
6.2.6 性能测试
6.2.7 存储测试
6.2.8 配置测试
6.2.9 兼容性/转换测试
6.2.10 安装测试
6.2.11 可靠性测试
6.2.12 可恢复性测试
6.2.13 服务/可维护性测试
6.2.14 文档测试
6.2.15 过程测试
6.2.16 系统测试的执行
6.3 验收测试
6.4 安装测试
6.5 测试的计划与控制
6.6 测试结束准则
6.7 独立的测试机构
6.8 小结
第7章 可用性(或用户体验)测试
7.1 可用性测试基本要素
7.2 可用性测试流程
7.2.1 测试用户的选择
7.2.2 需要多少用户进行测试
7.2.3 数据采集方法
7.2.4 可用性调查问卷
7.2.5 何时收工,还是多多益善
7.3 小结
第8章 调试
8.1 暴力法调试
8.2 归纳法调试
8.3 演绎法调试
8.4 回溯法调试
8.5 测试法调试
8.6 调试的原则
8.6.1 定位错误的原则
8.6.2 修改错误的技术
8.7 错误分析
8.8 小结
第9章 敏捷开发模式下的测试
9.1 敏捷开发的特征
9.2 敏捷测试
9.3 极限编程与测试
9.3.1 极限编程基础
9.3.2 极限测试:概念
9.3.3 极限测试的应用
9.4 小结
第10章 互联网应用测试
10.1 电子商务的基本结构
10.2 测试的挑战
10.3 测试的策略
10.3.1 表示层的测试
10.3.2 业务层的测试
10.3.3 数据层的测试
10.4 小结
第11章 移动应用测试
11.1 移动环境
11.2 测试面临的挑战
11.2.1 移动设备多样性
11.2.2 运营商网络基础设施
11.2.3 脚本编程
11.2.4 可用性测试
11.3 测试方法
11.3.1 真机测试
11.3.2 基于模拟器的测试
11.4 小结
附录A 极限编程示例程序
附录B 小于1000的素数
版权页: 插图: 第1章 Chapter1 一次自评价测试 自本书30年前首次出版以来,软件测试变得比以前容易得多,也困难得多。软件测试何以变得更困难?原因在于大量的编程语言、操作系统以及硬件平台的涌现。在20世纪70年代只有相当少的人使用计算机,而在今天几乎人人离不开计算机。而今天计算机不仅仅是指摆在你书桌上的计算机了,几乎所有我们所接触和使用的电子设备都内置了一个“计算机”或者计算芯片,以及运行在其上的软件系统。不妨回想一下在今天的社会中还在使用哪些不需要软件驱动的设备,没错,锤子和手推车是,但是这些工具也大量使用在由软件控制和操作的车间中。软件的普遍应用提升了测试的意义。今天的设备已经千百倍强于它们的“前辈”,今天的“计算机”这个概念也变得越来越广泛和越来越难准确地定义。数字电视、电话、游戏产品、汽车等都有一颗计算机的“心”以及运行其中的软件,以至于在某些情况下它们自己本身也能够被看做是一台特别的计算机。因此,现在的软件会潜在地影响到数以百万计的人,使他们更高效地完成工作,反之也会给他们带来数不清的麻烦,导致工作或事业的损失。这并不是说今天的软件比本书第1版发行时更重要,但可以肯定地说,今天的计算机(以及驱动它的软件)无疑已影响到了更多的人、更多的行业。 就某些方面而言,软件测试变得更容易了,因为大量的软件和操作系统比以往更加复杂,内部提供了很多已充分测试过的例程供应用程序集成,无须程序员从头进行设计。例如,图形用户界面(GUI)可以从开发语言的类库中建立起来,同时,由于它们是经过充分调试和测试的预编程对象,将其作为自定义应用程序的组成部分进行测试的要求就减少了许多。另外,尽管市场上的测试书籍越来越多,甚至有过剩之嫌,似乎依旧有很多开发人员对全面的测试并不那么欢迎。引入更优秀的开发工具、使用已经通过测试的GUI(图形界面控件)控件、紧张的交付日期以及高度集成的便利开发环境会让测试变得仅仅是让那些最基本的测试用例走走过场罢了。影响不大的bug也许只不过会让最终用户觉得使用不方便而已,然而严重的bug则可能造成经济损失甚至是人身伤害。本书所阐述的方法旨在帮助设计人员、开发工程师以及项目经理更好地理解全面综合测试的意义所在,并提供行之有效的指南以帮助达成测试的目标。 所谓软件测试,就是一个过程或一系列过程,用来确认计算机代码完成了其应该完成的功能,不执行其不该有的操作。软件应当是可预测且稳定的,不会给用户带来意外惊奇。在本书中,我们将讨论多种方法来达到这个目标。
《软件测试的艺术(原书第3版)》编辑推荐:软件测试的经典著作最新版!
无
经典就是经典!开发人员可以看一下。我喜欢第4章(测试用例的设计)第9章(敏捷开发模式下的测试--使用java设计一个判断素数的程序,配合使用JUnit)第10章(互联网应用测试---WEB应用中的表示层,业务层,数据层的测试)
软件测试是我的方向,老师推荐的教材,是软件测试的经典教材
软件测试的经典,不管是不是软件工程的看着都受益匪浅!
软件测试的入门圣经,内容非常基础,看了下后,觉得实例可以再多点就好,总体还是不错,很适合我这个初学者。
本书是软件测试方面的教材,老师推荐的,很不错,很有用。
软件测试的入门书籍之一,通俗易懂。
软件测试,朝阳行业
这本书确实是不错的、、、看了相信对面试软件测试的工作很有帮助
软件测试方面非常权威的书,理解深刻。
软件测试入门比较好的书
软件测试必读之书。新版更加给力!
软件测试读本,值得推荐!
软件测试必备用书,收获很大。
介绍了软件测试的概念。对工作和软考有一定参考意义。
书的纸张质量不错,书的内容适合有一定基础知识的测试人员查阅,是本好书,值得一读!
经典测试书籍,就是全是理论,看着犯困哈哈
很经典的一本测试书籍。
隔段时间可以再看看,每次看都有不同的收获。
测试经典力作。朴实的语言,带领到家走入到测试深处
是好书,测试行业必备的基础知识
书名很有艺术感,测试组的书,还没有看,应该还不错的。
比较基础,适合刚入门测试的学习
了解测试不错的一本书
想学测试的人必看的一本书
一直想看看测试的东西,就买了这本书,感觉还不错
比认识的测试方法不太一样,开拓思路啦
非常好的一本测试系列书,我喜欢
测试基础理论知识很详细,但是例子很少,可以作为入门基础书先看看。
对测试有较详细的描述,能帮助建立正确的测试思路
测试难得的好书
书很容易看懂,但是现在不搞软件了,转硬件了
20世纪发展较晚的技术行业,未来社会的方向。
很经典的一本书,适合各个阶段的读者
真的很经典的书呢。而且容易理解。现在很难找到这样的
经典书,值得珍藏。此书一直都是经典中的经典。书虽然薄,但思想很强大
还是很不错的 拿到手翻了几页 一定是正版的啦 这个书是老师推荐给我们的 说是很经典 因为学的这个专业所以就想看看!好评
语言生动,覆盖面广,书中的思想也很有启发性,不错的入门教材。
这本书和我想象中少了一些内容,适合初学者
这本书我很喜欢,很适合我们学习
我以前在网上看过电子版,这次是想买原书收藏,值得一看
内容讲述的挺好的,逻辑比国内的书籍好多了。
这本书很不错,内容很丰富
大概看了一下内容比较全,适合初学者
这本书很好,浅显易懂,对我的实习很有帮助
非常 非常不错 很好的一本书
一直很期待这本书 终于买到了。。。
一次性买了三本,这本书还只是粗略翻了下,感觉不错。
还没看呢,不知道内容如何,书看着还可以
很不错,书质量很好,内容也不错
还没读,据说不错
看了两章,还不错,通俗易懂!
阅读完再来写评论。
很不错值得专业人士看一看 自己看了就知道了
书很好的,可以看一看的
很不错的书,看了之后学到很多
据说这是一本不错的书~~
书还不错,正在看,希望能对我有帮助
很基本的书,看看不错
书很好,很快就收到
还没看,不过看书的纸张是正版。
书还没看,不过质量挺满意的。
书很好 朋友很赞
书的质量还好,到货很快
好书,内容易读,翻译得很好。
内容还行,纸张差了点
不错,以为很厚,感觉挺好
价格很实惠,要是再搞些活动就更好啦、、、
很好很不不错,写得很清楚
很好,正在看,物流也很快!
嗯,确实不错。
不错不错!不错不错!不错不错!不错不错!
非常经常,值得推荐
喜欢,喜欢,喜欢,喜欢~~~~~~~~~~~~~~~~~~~~~~~~
还行吧,老外的思维比较务实i
好评,当当值得推荐
举的列子比较易懂,不会太理论化和太概括。
还没看,信赖当当。
暂时还没看呢,不是过朋友介绍的,说是写得很好,老师也推荐过的
不错哦!可以买来看看
值得细细的反复看
老师推荐的 应该会对我的学习有帮助
精品图书,值得购买,强烈推荐
值得购买的好书,很有收获
给女友买的,比较喜欢
精简易懂,初学者很容易懂的
这本书内容浅显易懂,受益匪浅。特别适合软件测试初学者。如果印刷质量再好一点 ,那就更棒了。
软件测试的内容很赞,值得推荐!
如题。对测试很有帮助
书质量不错,看起来挺舒服的,这本书包装得也好一点,没有被压皱~
内容精细适合初学者
虽然这本书的理论性太强,但是总体来说收获还是很大的
全面详细,初学者值得看下
大概看了一遍,错别字很多,纸张也不怎么样
打开包裹一看,书是损坏的。书直接是断裂的。
黑盒与白盒的较好的一本书
讲解的很不错,作为入门级写得很好。
书还是挺新的,内容不错
书的质量不错 ,内容也还好。
简单的内容,一般般了
内容不错很不错很不错
不错 真的不错,要好好学习