友情提示:如果本网页打开太慢或显示不完整,请尝试鼠标右键“刷新”本网页!
软件测试的艺术(中文清晰版)(PDF格式)-第1部分
快捷操作: 按键盘上方向键 ← 或 → 可快速上下翻页 按键盘上的 Enter 键可回到本书目录页 按键盘上方向键 ↑ 可回到本页顶部! 如果本书没有阅读完,想下次继续接着阅读,可使用上方 "收藏到我的浏览器" 功能 和 "加入书签" 功能!
?…………………………………………………………Page 1……………………………………………………………
…………………………………………………………Page 2……………………………………………………………
软件工程技术丛书
软件测试的艺术
(原书第3版)
The Art of Software Testing; Third Edition
Glenford J。 Myers
(美) Tom Badgett 著
Corey Sandler
张晓明 黄 琳 译
…………………………………………………………Page 3……………………………………………………………
本书从第1版付梓到现在已经30余年,是软件测试领域的经典著作。本书结构清晰、讲
解生动活泼,简明扼要地展示了久经考验的软件测试方法和智慧。
本书以一次自评价测试开篇,从软件测试的心理学和经济学入手,探讨了代码检查、
走查与评审、测试用例的设计、模块(单元)测试、系统测试、调试等主题,以及极限测试、
互联网应用测试等高级主题,全面展现了作者的软件测试思想。第3版在前两版的基础上,
结合软件测试的最新发展进行了更新,覆盖了可用性测试、移动应用测试以及敏捷开发测试
等内容。
本书适合软件开发人员、IT项目经理等相关读者阅读,还可以作为高等院校计算机相
关专业软件测试课程的教材或参考书。
Glenford J。 Myers; Tom Badgett; Corey Sandler: The Art of Software Testing; Third
Edition (ISBN: 978…1…118…03196…4)。
Authorized translation from the English language edition published by John Wiley &Sons; Inc。
Copyright (c) 2012 by Word Association; Inc。 Published by John Wiley &Sons; Inc。
All rights reserved。
本书中文简体字版由约翰…威利父子公司授权机械工业出版社独家出版。未经出版者
书面许可,不得以任何方式复制或抄袭本书内容。
封底无防伪标签均为盗版
版权所有,侵权必究
本书法律顾问 北京市展达律师事务所
本书版权登记号:图字:01…2011…7872
图书在版编目 (CIP )数据
软件测试的艺术(原书第3版)/ (美)梅耶(Myers; G。 J。 )等著;张晓明,黄琳译.
—北京:机械工业出版社,2012。3
(软件工程技术丛书)
书名原文:The Art of Software Testing; Third Edition
ISBN 978…7…111…37660…6
Ⅰ。 软… Ⅱ。 ①梅… ②张… ③黄… Ⅲ。 软件测试 Ⅳ。 TP311。5
中国版本图书馆CIP数据核字(2012 )第040000号
机械工业出版社 (北京市西城区百万庄大街22号 邮政编码 100037)
责任编辑:吴 怡
印刷
2012年4月第1版第1次印刷
170mm ×242mm ·12。75印张
标准书号:ISBN 978…7…111…37660…6
定价:39。00元
凡购本书,如有缺页、倒页、脱页,由本社发行部调换
客服热线:(010 )88378991 ;88361066
购书热线:(010 )68326294 ;88379649 ;68995259
投稿热线:(010 )88379604
读者信箱:hzjsj@hzbook。
…………………………………………………………Page 4……………………………………………………………
译 者 序
《软件测试的艺术》(下简称《艺术》)作为元老级的测试书在国内可能没那么
出名,但它的确非常经典且很有口碑,书中所提出的“软件测试为求错而非求证”
的观点至今仍在学术界被广泛争议与讨论。随着软件测试的重要性越来越受到现
代软件企业的重视,这本书就好像尘封已久的宝藏被人们挖掘出来并受到追捧。
与此同时,也正是因为测试市场的需求激增,书店里的测试书籍也似乎是“忽如
一夜春风来,千树万树梨花开”了。
我和《艺术》的第一次接触并不是在书店里发现了它,而是因为我阅读的一个
习惯。我喜欢在阅读之前先看参考文献部分,也由此发现国内的很多软件测试书
籍都把《艺术》作为首要的参考书目,这让我不得不对该书刮目相看,现在我终
于明白了,原来《艺术》一书就是现在各种测试书籍参考的源头之一。以我个人
的观点,今天书店里的软件测试理论书籍(注意我是指理论方面)已经饱和甚至
是富营养化,如果你打算系统地学习软件测试理论知识,我不敢向你保证这本书
是最全面最详细的,但是绝对是恰到好处的,它精悍凝练的篇幅可以让你在最短
时间内获得关于软件测试的真知灼见。
对于那些已经成为测试工程师甚至是高级测试工程师的人来说,本书同样值
得一读,书中的很多内容读起来仿佛醍醐灌顶,本书所涵盖的测试知识经过千锤
百炼和时间的考验,而把这些理论知识结合你的测试经验,能系统化并巩固加深
你对测试这门学科的理解,而这种对软件测试技术系统的、深刻的理解,将使你
在今后的工作以及事业中受益匪浅。
因此,作为一名测试工程师,我对读者的建议是,初学者可将本书作为入门
书;而有经验者更应该将本书作为理论指南,花点时间翻阅一下,梳理自己的经验
和知识;本书对开发人员也相当有用,可以让你在最短的时间内建立起对测试的框
架认知,从而在编码的过程中能够在脑海里多一些测试的思想,十分有益,当然有
些测试类型本身就需要开发者参与,比如本书所介绍的极限编程与测试,开发者需
…………………………………………………………Page 5……………………………………………………………
IV
要编写单元测试用例。对于测试管理者而言,本书的重要性不言而喻,本书内容非
常精炼,将有助于你根据项目情况制定更合理、更有效的测试计划。
作为本书第3版的译者,我十分有幸能够接到这样的经典书籍翻译任务,而且
还是本人的处女译,心中的忐忑自不必多说,只希望我的翻译能够不辱原著的经
典,更能够得到读者的认可。
此次第3版相对于之前的第2版增加了全新的两章(第7 章和第11章),由此使
得本书包含了当下最新的测试分类和技术。除了第9章的改动增补较大外,其他的
章节基本是略有改动。
在翻译过程中,我尽量保证在准确翻译原文的基础上增加了一些个人的见解,
通常以译者注的形式给出,我相信这些注释有助于国内的读者理解和消化书中内
容;也有一些地方做了勘误。有时候直译的效果并不那么好,我也会尝试一些意
译,比如在11。4节,作者强调了移动应用必然越来越火这一现象和趋势,我便借用
著名诗歌《见与不见》来意译:
你用,或者不用
移动应用就在那里
……
因为是站在巨人的肩膀上(前两版译文)进行翻译,所以我必须感谢前两版
的翻译人员,这使得我此次翻译的精力主要聚焦在新增的两章以及改动较大的章
节上。同时要感谢黄琳为我的原始译稿所做的详尽审稿和勘误工作,这也是我们
之间的二度合作。
最后请大家注意书名中的“艺术”二字,这暗示本书并不是那么晦涩难懂或写
得很深奥,我觉得即使你没多少计算机基础知识,只要用过电脑软件,本书的很
多章节读起来应该都不会太吃力。我希望有越来越多各行各业的人们加入测试的
世界,从本书第7章的可用性测试我们看到,测试需要领域内经验,如果某公司针
对音乐爱好者推出了一款混音软件,他们肯定会想,要是能够把周杰伦请来做首
席用户体验师该有多好。总之,测试,这是个相比较开发来讲门槛不算太高的职
业(当然要做到精深未必容易,甚至难度还要高),而且收入还算不错,在这里与
各位读者共勉了。
张晓明
2012年2月6 日
…………………………………………………………Page 6……………………………………………………………
序 言
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全部的软件测试思想,这个思想体系以及过程将适用于当
今乃至未来的软件和硬件平台。我们也希望本书能够顺应时代,适用于当今的软
件设计人员和开发人员掌握最新的软件测试思想及技术。
…………………………………………………………Page 7……………………………………………………………
前 言
在本书1979年第1版出版的时侯,有一条著名的经验,即在一个典型的编程项
目中,软件测试或系统测试大约占用50% 的项目时间和超过50% 的总成本。
30 多年后的今天,同样的经验仍然成立。现在出现了新的开发系统、具有内
置工具的语言以及习惯于快速开发大量软件的程序员。但是,在任何软件开发项
目中,测试依然扮演着重要角色。
在这些事实面前,读者可能会以为软件测试发展到现在不断完善,已经成为
一门精确的学科。然而实际情况并非如此。事实上,与软件开发的任何其他方面
相比,人们对软件测试仍然知之甚少。而且,软件测试并非热门课题,本书首次
出版时是这样,遗憾的是,今天仍然如此。现在有很多关于软件测试的书籍和论
文,这意味着,至少与本书首次出版时相比,人们对软件测试这个主题有了更多
的了解。但是,测试依然是软件开发中的“黑色艺术”。
这就有了更充足的理由来修订这本关于软件测试艺术的书,同时我们还有其他
一些动机。在不同的时期,我们都听到一些教授和助教说:“我们的学生毕业后进
入了计算机界,却丝毫不了解软件测试的基本知识,而且在课堂上向学生介绍如何
测试或调试其程序时,我们也很少有建议可提供。”
因此,本书再版的目的与前两版一样:填充专业程序员和计算机科学学生的
知识空缺。正如书名所蕴涵的,本书是对测试主题的实践探讨,而不是理论研究,
还包括对新的语言和过程的探讨。尽管可以根据理论的脉络来讨论软件测试,但
本书旨在成为实用且“脚踏实地”的手册。因此,很多与软件测试有关的主题,
如程序正确性的数学证明都被有意地排除在外了。
第1章介绍了一个供自我评价的测试,每位读者在继续阅读之前都须进行测试。
它揭示出我们必须了解的有关软件测试的最为重要的实用信息,即一系列心理和
经济学问题,这些问题在第2 章中进行了详细讨论。第3章探讨的是不依赖计算机
的代码走查或代码检查的重要概念。不同于大多数研究都将注意力集中在概念的
…………………………………………………………Page 8……………………………………………………………
VII
过程和管理方面,第3章则是从技术上“如何发现错误”的角度来进行探讨。
读者可能会意识到,在软件测试人员的技巧中最为重要的部分是掌握如何编
写有效测试用例的知识,这正是第4 章的主题。第5章探讨了如何测试单个模块或
子例程,第6章讲述了如何测试更大的对象。第7 章围绕用户体验或可用性测试这
一重要的软件测试概念进行阐述,在更复杂且拥有更广大用户量的软件不断涌现
的今天,可用性测试变得越来越重要。第8章介绍了一些程序调试的实用建议,第
9章着重研究了极限编程及其测试(一种在今天称为敏捷开发环境中的编程和测试
方法)。第10章介绍如何将本书所涵盖的软件测试知识运用到Web开发中,包括电
子商务系统以及社交网络 的开发。第11章描述了如何测试移动设备上的应用。
本书主要面向三类读者。第一类是专业的程序员。尽管我们希望本书的内容
对于他们来说不是全新的知识,但本书能使专业程序员对测试技术增强了解。如
果这些材料能使软件开发人员在某个程序中多发现了一个错误,那么本书创造的
价值将远远超过书价本身。
第二类读者是项目经理,他们将会直接受益于本书所介绍的实用的测试管理
理论与知识。第三类读者是软件或计算机专业的学生,我们的目的在于向学生展
示程序测试的问题,并提供一系列有效的技术。对于最后一类读者群,我们建议
本书作为程序设计课程的补充教材,使学生在学习阶段的早期就接触到软件测试的
内容。
Glenford J。 Myers
Tom Badgett
Todd M。 Thomas
Corey Sandler
具有高度的和用户交互性质的Web应用,也即是所谓的Web 2。0 。—译者注
…………………………………………………………Page 9……………………………………………………………
目 录
译者序
序言
前言
第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
…………………………………………………………Page 10……………………………………………………………
IX
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 自顶向下测试与自底向上测试 ……………�
快捷操作: 按键盘上方向键 ← 或 → 可快速上下翻页 按键盘上的 Enter 键可回到本书目录页 按键盘上方向键 ↑ 可回到本页顶部!
温馨提示: 温看小说的同时发表评论,说出自己的看法和其它小伙伴们分享也不错哦!发表书评还可以获得积分和经验奖励,认真写原创书评 被采纳为精评可以获得大量金币、积分和经验奖励哦!