软件测试的艺术

梅尔斯

出版时间

1970-01-01

ISBN

9787111173199

评分

★★★★★
书籍介绍

《软件测试的艺术》(原书第2版)成功、有效地进行软件测试的实用策略和技术:

   基本的测试原理和策略      验收测试

   程序检查和走查         安装测试

   代码检查            模块(单元)测试

   错误列表            测试规划与控制

   同行评分            独立测试机构

   黑盒、白盒测试         调试原理

   错误猜测            错误分析

   自顶向下与自底向上测试     极限测试

   高级测试            测试因特网应用系统

   功能和系统测试         电子商务体系结构的高级测试

AI导读
核心看点
  • 本书确立了软件测试的根本目的:测试是为了发现错误而执行程序的过程,而非为了证明软件正确。书中详细阐述了软件测试的十大原则,包括禁止程序员测试自己的代码、必须定义预期输出、需检查无效输入等,强调测试人员应保持独立性与批判性思维,这是构建高质量软件体系的基石。
  • 作者深入探讨了黑盒测试与白盒测试的辩证关系,推荐先使用黑盒方法设计用例,再视情况补充白盒测试。同时,书中详细讲解了代码检查、走查等静态测试技术,强调这些方法在发现逻辑错误方面的有效性,并警告读者需辩证看待其功效,避免陷入形式主义或引发团队对立情绪。
  • 尽管出版年代较早,但书中关于测试经济学、错误猜测、错误分析以及测试规划与控制的核心思想具有永恒价值。它揭示了软件测试的本质是思维艺术而非单纯工具操作,帮助读者理解为何穷举测试无效,以及如何用有限资源发现最多错误,这些原则在当今敏捷开发与复杂系统测试中依然适用。
适合谁读
  • 适合软件测试初学者及计算机专业学生阅读,作为入门经典教材,帮助建立正确的测试观念与理论基础。书中对测试原理、策略及各类测试方法的系统讲解,能为缺乏实践经验的新人提供清晰的知识框架,避免陷入盲目测试的误区,是进入测试领域的必读启蒙读物。
  • 适合软件开发者及程序员阅读,帮助他们理解测试的重要性及边界条件处理。书中强调程序员应避免测试自己代码的原则,以及单元测试、代码检查等实践建议,有助于开发者提升代码质量意识,学会从测试角度审视自身代码,减少低级错误,促进开发与测试的良性协作。
  • 适合希望提升测试思维深度的资深测试人员阅读,作为理论回顾与反思的素材。虽然具体技术可能过时,但其对测试本质、伦理及策略的深刻洞察,能促使从业者跳出工具依赖,重新审视测试工作的核心价值,理解如何在资源受限情况下进行有效的测试规划与风险控制。
读前提醒
  • 阅读时需明确本书的理论属性,书中未涉及具体自动化测试工具或现代测试框架的操作指南。读者应专注于理解测试原则、思维模式及方法论背后的逻辑,而非寻找即插即用的技术解决方案。切勿因缺乏现代技术细节而低估其价值,其核心思想是构建测试能力的根基。
  • 书中部分观点如‘禁止测试自己代码’在现实项目中难以完全执行,读者应辩证看待,理解其背后的独立性原则而非教条式遵守。同时,书中关于代码检查的态度警示非常重要,读者需意识到测试与检查的目的是改进软件而非攻击个人,避免在实际工作中引发团队矛盾。
  • 建议结合当前实际项目经验进行批判性阅读,识别书中哪些原则依然适用,哪些需根据现代开发模式调整。对于涉及具体测试技术如白盒测试、逻辑覆盖等内容,可结合现代测试规范进行对比学习,切勿生搬硬套旧有流程,而应汲取其严谨的逻辑思维与风险控制意识。
读者共识
  • 读者普遍认可本书为软件测试领域的经典之作,虽出版年代久远,但其核心测试原则与思想至今未过时。多数评论指出,尽管书中技术细节可能滞后,但其对测试本质的阐述、对错误发现的强调以及对独立测试的坚持,仍是行业共识,任何从事测试工作的人都应阅读此书以正本清源。
  • 读者反馈本书内容偏理论且部分章节较为零散,不适合寻求具体操作手册的读者。但同时也指出,这种理论性正是其价值所在,它帮助读者摆脱工具依赖,建立正确的测试价值观。对于初学者而言,书中关于测试用例设计、错误分析等基础概念的讲解清晰且重要,是构建知识体系的必要环节。
  • 读者强调书中关于‘测试是为了发现错误’的观点具有颠覆性且极具启发性,纠正了许多人认为测试是为了证明软件正确的错误认知。同时,读者警告不要机械执行书中所有建议,如完全禁止自测,而应理解其精神实质。总体而言,本书被视为提升测试思维、理解软件工程伦理的重要读物,常读常新。

本导读基于书籍简介、目录、原文摘录、短评和书评生成,不等同于全文精读。

精彩摘录
  • "测试是为发现错误而执行程序的过程"
  • "1. 测试用例中一个必需部分是对预期输出或结果进行定义 2. 程序员应该避免测试自己缩写的程序 3. 编写软件的组织不应当测试自己编写的软件 4. 应当彻底检查每个测试的执行结果 5. 测试用例的缩写不仅应当根据有效和预料到的输入情况,而且也应当根据无效和末预料到的输入情况 6. 检查程序是否“末做其应该做的”仅是测试的一半,测试的另一半是检查程序是否“做了其不应该做的” 7. 应避免测试用例用后即弃,除非软件本身就是一个一次性的软件 8. 计划测试工作时不应默许假定不会发现错误 9. 程序某部分存在更多错误的可能性,与该部分已发现错误的数量成正比 10. 软件测试是一项极富创造性、极具智力挑"
  • "在代码检查进行时,主要进行两项活动: 1. 由程序编码人员逐条语句讲述程序的软件结构。……换句话说,对着大家大声朗读程序,这种简单的做法看来是一个非常有效的错误检查办法 2. 对着历来常见的编码错误列表分析程序"
  • "我们推荐的步骤是先使用黑盒测试方法来设计测试用例,然后视情况需要使用白盒测试方法来设计补充的测试用例"
  • "(即任意三角形等边的对角也相等) Moreover, the angles opposite the equal sides in an isosceles triangle also are equal (it also follows that the sides opposite equal angles in a triangle are equal), and all angles in an equilateral triangle are equal."
  • "要辩证看待码检查的这些功效"
  • "目录"
  • "测试是为发现错误而执行的过程(这句话有无穷的内涵)"
用户评论
每一种技术或者语言背后都有一种模式或者思想,这类书是一种很好的呈现。
必读的一本~
回想刚参加工作的时候,只是为了完成需求,没有写过单元测试。有一段时间刷leetcode,有些case过不去,开始意识到测试的重要性。现在也开始写单元测试了,考虑各种边界条件去写test case!但是这本书里写的要把代码里的每个路径都测试一遍,这样做的话测试的时间都要占去好多了
很薄的一本书,但是很经典,常读常新
可能因为我不是测试人员,学到的东西很少。
还好
软件测试真的是一个领域性特别强的专业。
前半部分里面的软件测试观点很有用,有着很不错的思考,但是内容太过陈旧,很多方法在实际用途上并不适用了,而且后半部分内容较浅
测试工作必修书 第2章 软件测试的经济学和心理学,把测试背后的用户心理预期和测试投入产出比这些“道”的东西讲清楚 后面的每章技术都很实用、细致 发现自己的思路是属于敏捷测试
下载
收藏