软件测试的艺术

出版时间:2006-1  出版社:机械工业出版社  作者:梅尔斯  页数:122  
Tag标签:无  

前言

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

内容概要

本书以一次自评价测试开篇,从软件测试的心理学和经济学入手,探讨了代码检查、走查与评审、测试用例的设计、模块测试、系统测试、调试等主题,以及极限测试、因特网应用系统测试等高级主题,全面展现了作者的软件测试思想。本书是软件测试领域的佳作,其结构合理、内容简洁、语言流畅。本书适合作为软件测试做从业人员的参考手册,以及高等院校软件测试课程的教材或参考书。

作者简介

梅尔斯,Spectrum Signals的现任主管,IBM系统研究院前高级成员,同时还是RadiSys有限公司的前任CEO和创始人。

书籍目录

第1章  一次自评价测试        第2章  软件测试的心理学和经济学         2.1  软件测试的心理学         2.2  软件测试的经济学          2.2.1  黑盒测试          2.2.2  白盒测试         2.3  软件测试的原则         2.4  小结        第3章  代码检查、走查与评审         3.1  代码检查与走查         3.2  代码检查         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.1.1  逻辑覆盖测试          4.1.2  等价划分          4.1.3  一个范例          4.1.4  边界值分析          4.1.5  因果图         4.2  错误猜测         4.3  测试策略        第5章  模块(单元)测试        5.1  测试用例设计         5.2  增量测试         5.3  自顶向下测试与自底向上测试          5.3.1  自顶向下的测试          5.3.2  自底向上的测试          5.3.3  比较         5.4  执行测试        第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  可恢复性测试          ……第7章  调试        第8章  极限测试      第9章  测试因特网应用系统        附录A  极限测试应用程序样例        附录B  小于1000的素数        词汇表

编辑推荐

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

图书封面

图书标签Tags

评论、评分、阅读与下载


    软件测试的艺术 PDF格式下载


用户评论 (总计33条)

 
 

  •   做软件测试工作的人一定要看的一本书。虽然这本书年代久远,但是正式时间证明了其存在的价值。各种测试工具测试技术测试理念都在更新,但是基本的原理都不会变。这么书很好的结合了测试的各方面,值得一看哦。
  •   以前软件测试的书很少,最近多起来了,这本书是其中最好的之一,我认为。书虽然薄,但内容丰富,仔细阅读,绝对对得起你花的时间。书的第一版已经出来好多年了,但其中的原理今天仍然不过时。
  •   一本经典的软件测试入门书籍,强烈推荐软件测试新手阅读。
  •   测试是为发现错误而执行程序的过程。
  •   其中对代码审查(静态测试)的描述对我帮助很大^_^。
  •   如书的名字,测试也是门艺术。呵呵,慢慢体会吧。
  •   一本在测试领域经久不衰的著作,时间已经证明了它的价值
  •   非常好的书测试必看
  •   书很薄,但是理论却比较全面,经典的书。
  •   本书深入浅出,翻译得很不错,正在研读当中~~
  •   意料之中的好书,像九阴真经的总纲,应该说很不错,书就是要这样写看的人才会轻松愉快有帮助
  •   书比想象中的要薄,不过看了目录后感觉蛮不错,现在正在阅读中,等看完了在来品论。
  •   觉得很不错,值得一看
  •   虽然书很薄,只有100页左右,但是讲得很全面。软件测试经典书籍!
  •   该书有点老,不是专门给测试人员看的,但有些思想还行
  •   很不错,不过,一直在看测试那本书,这本还没看。嘿嘿!大概的看了一下,内容挺多了。不错!
  •   挺好的,值得一看,应该是比较适合有基础的人员。。
  •   从老师口中知道这本书,买了以后,觉得还是挺不错的
  •   写得很浓缩,每页都包含了有用信息,看起薄,读起来很“厚”。有一定项目经验后理解会更深刻,或者说会对作者产生“真知灼见”的感叹。推荐阅读。
  •   书很好,服务也很好,送货很快,很方便
  •   内容浅显易懂,就是纸张太差,看着有点不爽。
  •   快递速度很好。但纸张的质量不是特别好。
  •   这本书还没有到货就让我评论,真是搞笑…………
  •   书不厚 一般般
  •   纸质很差,准确说非常差,感觉内容也一般
  •     1. 测试是为了发现错误而执行程序的过程。
      
      2. 软件测试的原则
       (1)测试用例中必须包含对预期输出或结果的定义。
       (2)程序员或组织应避免测试自己编写的程序。
       (3)应仔细检查每个测试的执行结果。
       (4)测试用例的编写不仅应当根据有效和预期的输入情况,而且也应当根据无效和未预料到的输入情况。
       (5)检查程序是否“未做其应该做的”仅是成功的一半,测试的另一半是检查程序是否“做了其不应该做的”。
       (6)应避免测试用例用后即弃。
       (7)进行测试工作时不应事先假定不会发现错误。
       (8)程序某部分存在更多错误的可能性,与该部分已发现错误的数量成正比。
      
      3. 测试策略
       (1)如果规格说明中包含输入条件组合的情况,应首先使用因果图分析法。
       (2)在任何情况下都应该使用边界值分析方法,对输入和输出边界进行分析。
       (3)为输入和输出确定有效和无效等价类,补充测试用例。
       (4)使用错误猜测技术补充测试用例。
       (5)使用多重条件覆盖准则检查程序的逻辑结构
      
      4. 多重条件覆盖准则:将每个判定中的所有可能的条件的组合,以及所有的分支入口点都至少执行一次(不能保证对所有可能的路径都走一次)。
      
      5. 测试结束的准则
       第一类
       模块测试的结束准则:
       (1)满足多重条件覆盖准则。
       (2)对模块接口规格说明进行边界值分析的所有测试用例都通过。
       功能测试的结束准则:
       (1)因果图分析,(2)边界值分析,(3)错误猜测的所有测试用例都通过。
       第二类:以确切的数量来描述结束测试的条件。
       第三类:记录单位时间内发现的错误数量,通过检查统计曲线的形状来判定测试是否应结束。
      
      6. 调试的原则
       (1)动脑筋
       (2)如果遇到僵局,就留到稍后解决
       (3)把问题描述给别人听
       (4)仅将调试工具作为头脑思考的辅助手段
       (5)避免使用试验法
       (6)改正错误时增加的代码比程序中原有的代码更易发生错误
       (7)应修改源代码,而不是目标代码
      
      7.极限编程的12个实践
       (1)市场和业务开发人员在一起以场景的形式编写软件需求并确定优先级
       (2)小规模地、递增地发布
       (3)系统隐喻
       (4)简要设计
       (5)连续测试
       (6)重构
       (7)结对编程
       (8)代码的集体所有权
       (9)持续集成
       (10)每周40小时工作
       (11)客户在现场
       (12)按标准编码
       归纳为4个概念:
       (1)聆听客户和其他程序员的谈话
       (2)与客户合作,开发应用程序的规格说明和测试用例
       (3)结对编程
       (4)测试代码库
  •     软件测试的艺术这本书只草草看了一遍,虽然本身是计算机系,却只是半吊子,所以对书中提到的理论能看懂,却并没有太多印象。
      我至今仍记得Java老师在忽悠了我们半年之后说,其实我给你们上这个课只是告诉你们有Java这个东西。
      这本书大抵也是这样的作用,给没有软件测试概念的人一个概念,给想了解软件测试的人一种思路,给企图应征软件测试却没有任何经验的人一点谈资。
      经典之所以经典,就是因为其浅显易懂,背后却包藏着大智慧。
      
      
  •     软件测试的10个原则:
      测试用例中一个必需部分是对预期输出或结果进行定义
      程序员应当避免测试自己编写的程序
      编写软件的组织不应当测试自己编写的软件
      应当彻底检查每个测试的执行结果
      测试用例的编写不仅应当根据有效和预料到的输入情况,而且也应当根据无效和未预料到的输入情况
      检查程序是否“未作其应该做的”仅是测试的一半,测试的另一半是检查程序是否“做了其不应该做的”
      应避免测试用例用后即弃,除非软件本身就是一个一次性的软件
      计划测试工作时不应默许假定不会发现错误
      程序某部分存在更多错误的可能性,与该部分已发现错误的数量成正比
      软件测试时一项极富创造性、极具智力挑战性的工作
      
  •     本书的观点与传统软件测试理论形成了鲜明的对比,作者提出:软件测试的目的不是为了验证软件能够达到设计文档的要求,而是为了发现软件错误而运行软件的过程。当我刚开始学习测试技术的时候,很为该观点所动,但随着工作经验的增长,发现实际操作中无论是组织还是个人都很难达成作者的美好目标。毕竟,公司的预算、资源都很难让测试人员有机会进行所谓的完美测试。但,不管怎样,本书中提到的软件测试方法论对于任何一个从事软件测试甚至是开发人员都是大有裨益的。
      推荐,5颗星!
  •     每天花1个小时,一周就可以看完。
      
      该书历史悠久,1979年第一版,2004年(估计)第二版,可见其生命力。工具,环境语言都在变化,但是根本的测试思想没有变。怪不得有人称该书为测试领域的"开山鼻祖"。
      
      该书信息密度不低,第一章以一个小测试作为引子,第二章阐述全书的核心思想,后面各章就讨论了详细的方式方法。所谓详细也是相对而言,能打下进一步学习的基础就足够了。实例很少,偏向于原则、理论、概念。
      
      个人感觉有没有开发测试经验的都能看懂。
      如果想应聘测试工程师,也可以作为恶补书籍,也是就该书小而全:)
      
      最大的收获:
      1.测试是为了发现错误而执行程序的过程。正向测试验证功能,但核心内容是反向测试,发现错误。
      测试人员首先要直觉认为被测物有错误需要去发现。
      
      2.从心理学观点论述了为什么开发人员不能做测试。以及如何逐渐一个合理的团队,最好是独立的测试部门。
      
      3.能发现错误的测试用例才是成功的用例。 全部测试用例通过,不能作为测试结束的标志。给出了3个测试结束准则。
      
      4.该书多次提到,任何方式方法都有局限性,需要对不同问题采取不同的方法。
      
      5.调试(Debug)一章强调了用思考去解决问题,而非大量的print,trace和debugger的内存观察。有时人会偷懒而采取暴力调试,及不去思考,胡乱修改代码来猜测问题。
      调试方式也是启发式解决问题的方法。
      
      6.两次提到“采集-分析-汇总-提高”。及开发、测试过程要留心去总结提高,建立项目和个人的 bug、易犯错误表,调试错误分析表等。
      
      7.增量测试和XP方法: 做事先有计划,然后由小到大,一步一个脚印,后一步踩在前一步上。
      
      8.测试过程有很多方法都需要经验和直觉。测试是个复杂的脑力劳动。
  •   是不是看了你的读书笔记之后,就不用看原文了哇。
    哈哈哈
  •   最近也在看,同时有英文版和中文版,感觉英文版的好点儿,但是看的太慢了,并且同样的意思,看英文要花更长的时间,这样会影响记忆的效率,累,但是中文版的有些地方翻译的貌似不太好,一会儿看看英文版一会儿看看中文版的,好纠结
  •   刚刚下载了中文版看--不懂英文的人
 

250万本中文图书简介、评论、评分,PDF格式免费下载。 第一图书网 手机版

京ICP备13047387号-7