学习软件测试应该读那些书?

  列表格式为:图书分类、中文书名、英文书名、作者。排名不分先后,用红色标记出我推荐的书籍。


  测试入门

 

  软件测试(第2版)

  Software Testing (2e), Ron Patton

  一本测试入门的好书,较全面地介绍了各种测试领域和方法,为测试新手提供了正确的观念和宽泛的基础。

 

  软件测试的艺术(第2版)

 

  The Art of Software Testing (2e), Glenford J. Myers, Corey Sandler, Tom Badgett, Todd M. Thomas

  一本“久经考验”的测试经典:1979年,第一版面试;25年后,第二版登场。平心而论,有些观点已经不能直接应用在测试实践中,但是仔细品味仍有所收获。毕竟,这是一本需要思考的书,而不是操作手册。


  软件测试实战--测试Web MSN

  蔡为东

  以Web MSN为测试对象,形象生动地介绍了针对图形界面的黑盒测试技术,有很强的实践性。围绕一个实例,全面地的介绍各种测试方法,是此书区别于其他测试书籍的一大特色。附文《胶着》是作者一段开发经历的回顾与小结,有笑有泪,仅凭此文便值回书资。


  软件测试工程师面试指导

 

  蔡为东


  面向初学者,介绍了软件测试行业、测试工程师素质要求、基本测试技术、求职策略、面试技巧、典型试题,对于测试新手或迈向测试行业的朋友有较高的参考价值。此书还收录了一些对读者来信的回复,内容涉及职业规划、大学生业、测试学习、测试实践等,针对当前常见的困惑,做出了谨慎且深思熟虑的回答。附文《我在微软做软件测试外包》对于了解微软中国的流程与文化很有参考价值。

 

  Essential Software Test Design

  Torbjrn Ryber

  该书专注于测试设计,深入浅出讲解了所有测试人员都需要掌握的基本测试技术。全书言简意赅、条理清晰、案例翔实,为测试实践打下了坚实基础。测试专家James Bach受邀编写了第6章“探索式测试解析”(Exploratory Testing Explained),对于理解探索式测试的思想和方法很有帮助。

  通用测试技术


  计算机软件测试(第2版)

  Testing Computer Software (2e), Cem Kaner, Jack Falk, Hung Quo Nguyen

  一本值得反复参考的好书,"The bestselling software testing book of all time" 的美誉绝非浪得虚名。作者将多年的实践经验用平实的语言娓娓道来,内容涉及测试技术、测试管理、开发流程、思考方法、实践模式,可谓是一本测试典籍。部分内容看似有些过时,但是其思想和方法仍旧有很高的借鉴价值。

 

  Black Box Software Testing

  Cem Kaner

  由美国科学基金(National Science Foundation)资助的、Cem Kaner教授主持的黑盒测试在线课程。免费提供了详尽的课程幻灯片、学习资料和教学视频,系统性地讲授了黑盒测试的方法体系和关键方法,具有很高的参考价值。

  Rapid Software Testing

  James Bach, Michael Bolton

  测试专家James Bach与Michael Bolton常年举办Rapid Software Testing培训,为许多测试人员理解并实施探索式测试提供了有益的起点。James Bach的网站提供了培训幻灯片和学习资料,以启发式测试策略模型(Heuristic Test Strategy Model)为核心,详细介绍了探索式测试的方方面面,值得深入学习。


  微软的软件测试之道

  How We Test Software at Microsoft, Alan Page, Ken Johnston, Bj Rollison

  微软的测试者审视微软当前的测试方法,并展望软件测试的未来发展。缺点是没有结合Windows或Office这样的且复杂的产品,详细讨论具体项目的具体技术。优点是提供了许多小故事,讲述了Windows、Office、Live等产品开发中的点滴。从经验传承、启发思路的角度,这些故事是全书的精华,具有很高的参考价值。

  敏捷测试:测试人员与敏捷团队的实践指南


  Agile Testing: A Practical Guide for Testers and Agile Teams, Lisa Crispin, Janet Gregory

  敏捷测试专家全方位讲解敏捷测试的专著,体系完整,论述周详,有正本清源、答疑解惑之功效。其中,“测试自动化金字塔”、“敏捷测试四象限”等思想很有启发性。

  The Little Black Book On Test Design

  Rikard Edgren


  该书是作者十余年测试经验的总结与升华,面向有经验的测试人员,以测试学习、测试分析、测试设计和测试执行为主题提供了大量的启发式方法,具有较高的参考价值。此外,该书的参考文献非常丰富,为深入学习提供了良好的素材。

 

  测试有道:微软测试技术心得

  梁博, 许珊, 徐歆恺

  内容由一系列技术点组成,每一个点都有精要的描述和作者的心得体会,力图以小搏大,以精粹胜广博。但是没有提供一个理论框架将这些点有机地联系起来,读起来有只见树木、不见深林之感,也缺少“授人以渔”的独到见解。大优点是介绍了一批免费且实用的工具,可以放在案头备查。

  软件测试基础:方法与度量

  Software Testing Fundamentals: Methods and Metrics, Marnie L. Hutcheson

  以风险分析为核心,讨论了测试计划、测试组织和测试设计。其中,关于“测试价值的可说明性”和“利用Office Suite来撰写、管理测试计划”的内容有启发性。适合有一定工作经验的测试人员参考。

  软件测试(第2版)

  Software Testing A Craftsman's Approach (2e), Paul C. Jorgensen

  将理论与工艺结合在一起的测试教科书。比较严谨地讨论了软件测试的基础理论,适合软件测试研究者研读。

   面向对象的软件测试

   A Practical Guide to Testing Object Oriented Software, John D. McGregor, David A. Sykes

  介绍了面向对象软件测试的基本思路和方法。第7章“测试类的层次结构”比较有启发性,讨论了针对继承的测试设计和组织,相关内容在其他测试书籍中并不多见。

  软件测试技术大全:测试基础、流行工具、项目实战

  陈能技

  该书由多位作者共同撰写,内容涉及测试理念、测试技术、测试开发、测试自动化、测试管理和常见的测试工具,不愧“测试大全”的书名。有些内容失之于粗糙,一些论述也不够严谨,缺乏参考文献更是此书的硬伤。瑕不掩瑜,此书理论和实践结合紧密,仍值得测试工作者学习和思考。

  测试管理

  笑傲测试--软件测试流程方法与实施

  魏伟

  以小说为体裁的测试管理书籍。通过令狐冲和风清扬的对话,从一个逐渐成长的新人的角度,介绍了测试管理的点点滴滴。全书轻松幽默,全无技术读本的枯燥乏味。附录所收录的文章“从新鲜人到新仙人”对于行业新人颇有帮助。

  步步为赢--软件测试管理全程实践

  蔡为东

  以“管理是负责人”为核心,介绍作者担当测试领导的切身经验:自我管理、自我成长、编写测试计划、编写测试用例、执行测试、沟通、测试计划/用例评审、测试总结、员工管理、测试思想等。也适合第一线的测试工作者阅读,所涉及内容皆和他们的日常工作密切相关。

  专项测试技术

  软件安全测试艺术

  The Art of Software Security Testing: Identifying Software Security Flaws, Chris Wysopal, Lucas Nelson, Dino Dai Zovi, Elfriede Dustin

  软件安全测试的入门书,用很短的篇幅涵盖了软件安全测试的多个领域,为测试人员提供了模型、方法和工具。对于Threat Modeling的介绍很精彩,为进一步的行动提供了良好的理论与实践基础。

  Web安全测试

  Web Security Testing Cookbook: Systematic Techniques to Find Problems Fast, Paco Hope, Ben Walther

  一本实践性很强的Web安全测试手册。从网络安全的角度,介绍了一批免费的网络通信分析、监控、修改、调试工具;以条目为组织,介绍了的测试方法或策略;以实践切入,穿插介绍理论知识,通过精心选材和组织,降低了Web安全测试的门槛。

  探索式软件测试

  Exploratory Software Testing: Tips, Tricks, Tours, and Techniques to Guide Test Design, James A. Whittaker

  测试专家James Whittaker旗帜鲜明地捍卫手工测试,探讨如何用探索式测试来应对严峻的现实挑战。作者以隐喻“漫游”(Touring)为核心,提出了一套有助于探索式测试的测试方法。作者历任微软测试架构师和谷歌测试总监,其理念已经在微软和谷歌的测试产品中逐渐体现。

  实用软件测试指南

  How to Break Software: A Practical Guide to Testing, James A. Whittaker

  软件测试专家编写的实战指南,指导测试人员从攻击的角度展开软件测试。介绍了一些实用的测试工具,对于压力测试、极限测试有较强的参考价值。

  软件测试新技术与实践

  于秀山, 于洪敏

  介绍了组合测试技术在测试中的应用。适合组合测试研究者参考。

  Web应用程序性能测试指南

  Performance Testing Guidance for Web Applications, J. D. Meier, Carlos Farre, Prashant Bansode, Scott Barber, Dennis Rea

  微软模式与实践(pattern & practices)团队的佳作,介绍了性能测试的正确观念、流程和实践。篇幅短小,内容深邃,值得在实践中反复参考和体会。

  应用程序性能测试的艺术

  The Art of Application Performance Testing: Help for Programmers and Quality Assurance, Ian Molyneaux

  经验丰富的软件性能测试专家分享他的经验,内容包含性能测试的架构、模型、典型方法和结果分析。适合有一定经验的测试者参考。

  测试自动化

  Experience of Test Automation:Case Studies of Software Test Automation

  Dorothy Graham, Mark Fewster

  面向有经验测试人员的测试自动化案例分析汇编。第0章是全书案例的经验总结,第1~28章是来自28个不同类型项目的测试自动化报告,第29章则提供了一组真实的测试故事。软件测试是语境驱动的,观察不同团队的实践,分析成败得失,可谓开卷有益。

  .NET软件测试自动化之道

  .NET Test Automation Recipes:A Problem-Solution Approach, James D. McCaffrey

  该书讲解了在.NET平台上编写轻量级测试程序的实用技术。作者曾经在微软工作,该书与微软测试开发工程师的培训材料的契合度很高,实践性很强。对于Windows平台的测试工程师而言,此书的参考价值很高。

  .NET软件测试指南

  A Tester's Guide to .NET Programming, Randal Root, Ary Romero Sweeney

  严格来说,这是一本以测试为目标的讲解.NET编程的书。内容浅显、涉猎面广,适合没有太多.NET开发经验的测试人员参考。

  集成测试框架--用Fit进行敏捷软件测试

  Fit for Developing Software: Framework for Integrated Tests, Rick Mugridge, Ward Cunningham

  Fit是一种编写系统测试的测试框架,作为一种业务交流工具,它深刻地反映出敏捷软件开发的若干特质。此书由Fit之父亲自编写,不但可以了解Fit的方方面面,还能从中体会大师的感悟与实践。

  互联网单元测试及实践

  陈卫俊, 赵璨, 周磊, 陈洪

  介绍了常见的单元测试框架,并结合具体项目讲解了单元测试的基本理论和技术。对于Web测试的新手,有较高的参考价值。

  Visual Studio 2005 Team System软件测试专家教程

  Professional Software Testing with Visual Studio 2005 Team System: Tools for Software Developers and Test Engineers

  介绍如何利用Visual Studio 2005 Team System进行有效的单元测试、数据库测试、Web测试、负载测试和代码分析。以介绍概念和流程为主,适合新手快速上手。

  .NET软件测试实战技术大全:测试基础、流行工具、典型案例

  陈能技

  系《软件测试技术大全》的.NET版,在内容的深度和价值上,皆不及前者。胜在专注于.NET和Windows平台上的测试自动化,介绍了多种测试技术和工具,覆盖面广,且切合实践。适合.NET平台上的新手参考。

  经验总结

  软件测试:经验与教训

  Lessons Learned in Software Testing, Cem Kaner, James Bach, Bret Pettichord

  值得反复研读的经典好书。Tom DeMacro的赞美——“这些经验中的任何一个,都抵得上这本书的价钱”,所言非虚。

  完美软件--对软件测试的各种幻想

  Perfect Software: And Other Illusions about Testing, Gerald M. Weinberg

  该书没有介绍具体的软件测试技术,它讨论的是软件开发中的人、他们对测试的认知、软件测试的目的、实现目的的社会学和心理学上的探索。它试图建立正确的软件测试观念、协调的心理情绪和有效的思考方式。这些要素终会决定在具体的项目中采用何种具体测试技术的组合。

  测试之美

  Beautiful Testing, Tim Riley, Adam Goucher

  该书由27位测试实践者共同撰写,提供了22篇来自不同语境的测试实践小结。其“美感”来自于实践者之间的印证、启发、激励。这要求读者将自己的经验与思考带入阅读,与作者更美的软件测试进行“对话”。

  有效软件测试——提高测试水平的50条建议

  Effective Software Testing: 50 Specific Ways to Improve Your Testing, Elfriede Dustin

  测试领域的Effective C++,广受赞誉,所提供的50条经验有很强的实践指导意义。

  软件测试求生法则

  Surviving the Top Ten Challenges of Software Testing : A People-Oriented Approach, William E. Perry, Randall W. Rice

  作者讨论了测试人员所面临的十大“人际挑战”。从具体案例出发,介绍了挑战的表现形式、产生根源、解决方法和可能遇到的问题。虽然,外企的文化氛围与中国企业有一定差别,但是分析问题、解决问题的思路仍值得借鉴。

  赢在测试:中国软件测试先行者之道

  蔡为东

  介绍了一批测试先行者的个人经验的书。学习他人经验可以用较低的成本去扩大自己的体验,自然是他山之石可以攻玉,开卷有益。不过,个人经验非批判性地阅读与理解,不能有效,甚至有害,所以该书适合愿意学习且有能力学习的测试爱好者。不足是大部分被采访者都是管理者,没有真正的测试技术专家。

  软件测试精要

  董杰

  作者分享他在测试领域的经验与思考,其热情和思辨跃然纸上。缺点是内容却有些散乱,即便是一章,其系统性也有些不足;对于测试工具背后的测试思想,挖掘得比较浅,没有上升到测试理论的高度。