今天参加了《测试小道消息》的线上讨论,大家希望推荐一些书,我把我读过的认为还不错的书推荐给大家,里面的评语纯属个人观点,仅供参考,测试人员看的开发类书籍后续介绍吧,不然内容太多了。
适合所有测试人员读的书籍:
软件测试:经验与教训:如果只让推荐一本书,我就推荐这一本。书以很多看似零散的小知识点组成,但是字字珠玑。真正做过2年~20年测试的人,拿起它来,每一条和自己的工作做对照,都会有共鸣或者”原来如此“的感受。工作经验越多,体会越深,是一本常看常新,并且能够一直指导你的书。从某种意义上,它教会测试人员的是“思辨思维”,这才是最重要的财富。
有效软件测试: 跟《软件测试,经验与教训一样》是一部分实战很强的总结类书籍,我觉得也可以列入经典。推荐阅读的时候同自己的工作一条一条做对照,肯定会有很深体会。(里边的一些观点也许你不同意,但是,能够促进你思考就是好事情)。btw,我非常喜欢checklist类型的书。一条一条漫漫嚼,味道很好。
软件测试基础教程:如果你入行不深,想从最基本的地方补一下测试理论。这本书无疑是相当合适的教材。看过很多书,ISTQB系列还是最成体系化,内容也最好的书之一。
高级软件测试:高级软件测试分析师,高级软件测试:高级软件测试经理 这两本书是ISTQB高级认证的培训教材。如果你做测试工作超过3年,可以买2本来看看,里边很多东西很实用。如果看着无感,可以放着,工作几年再看。如果这些年间你一直在进步,看着一定会有感。里边的东西不见得全对,也不见得全实用,但是当你能够理解里边大部分内容,并可以取精去糟的使用到工作中时,你可以说,测试我做的不错了。这算是个自查手册。
探索吧:我心中14年最好的测试书,也是近些年难得的测试好书籍。这本书中对探索式软件测试的定义,作用,局限性和实施方法我认为是最好的。就算不是做纯粹的ET,这本书的很多内容都能直接帮助你提高测试质量。强烈推荐。
软件测试:大学的课本,这本书还留着,有些内容有点儿过时,但是现在看也还是一本非常好的入门书籍,值得新手购买。
How to break software:我上学时候买到的书,已经绝版了,但网上有英文电子版。测试大牛James wittaker早期的作品,你可以的读到他后期的《探索式软件测试》和《谷歌测试之道》。这些书秉承了一贯的自成体系的方法,抛弃了上层次,玩体系化这些道路,怎样让团队更好的测试就怎么来。三本书里边有很多经典案例,也有很多让人耳目一新的简单直接的方法(可以很快尝试使用)。但是,请注意,能够做到像他说的测试的team都是google和微软身经百战内功深厚的工程师团队,不要盲目崇拜,要根据自身团队的能力选取采用。如果你的领导读了以后觉得你们公司就可以这么干了,一定要好好读读这本书,告诉他那些真的可以用,那些真的需要缓行。
持续交付:发布可靠软件的系统方法:持续集成、持续交付的概念越来越被各个开发团队所接受,良好的测试是持续交付能够真正实现的重要基石,这是每个测试人员都应该掌握的知识(起码从概念上能够掌握,并且能够 do your part),这本书信息量极大,对于平时只做系统测试的同学来说可能很难懂,但是建议啃一下,慢慢消化里边的一些知识,在读的过程中多与开发人员,SQA,产品人员,运维人员交流。
实例化需求:团队如何交付正确的软件: 每个测试人员都值得一读(应该推荐团队所有成员读),你绝对会眼前一亮并说:太棒了!就该这么干!书的最高境界是一个理想的“活文档系统”,实际上这很难完全实现,但里边的东西每实现一部分,测试的效果就会提高一部分,团队离失败就会远一点。
Scrum要素:近年来,国内的团队都在做敏捷转型。所以很多测试人员都会遇到在敏捷团队工作的经历。敏捷实施给软件人员带来的冲击还是很大的,过程中我们也听到了各种声音。Scrum元素以很多小故事的形式讲述了敏捷团队如何工作,非常实用,测试人员值得一读。如果你实用Kanban的敏捷方式,其实也没有关系,读了同样受益。另外《敏捷软件测试》这本书也不错,就是读着很累。如果你受敏捷转型困扰,可以读读这两本书,会有很大帮助。仍然要说的是:这两本书里边很多建议不是绝对正确的,也可能不适合你的团队,要对自己的团队有深刻理解之后再谨慎的选用。
The little black book on test design:一个资深测试工程师写的一本免费的测试设计的书,他说的测试设计可不是我们传统意义上的测试设计,而是一套全新的方法论。在他的眼里,测试设计不是一个静态的过程,而是一个动态迭代的过程。仔细读,会大有收获。最值得一提的是,书中引用了很多素材,这些素材都是精华中的精华,从某种意义上来讲,那些素材的索引占了本书一半的价值。
软件测试实战:最近觉得很不错的一本书。由微软资深测试工程师史亮编写,国人写的少有的好书。书最大的价值就是作者总结了大量的业界测试牛人的体系和方法论,并结合了实际的工作例子来做解释。深入学习的话,对测试能力的提高会有很大帮助,眼界也能得到很大的拓展。建议读书的时候也拿自己的工作与书中所述做比较。
软件需求最佳实践:测试人员也该看的需求相关的书,读完以后我们能够知道:如何以正确的方式获取需求,分析需求,描述需求,维护需求。这其实是测试人员的有力武器。
想上层次?从组织级层次推动需求不爽带来的恶果?你需要在方法论上碾压挡路的同志们,推荐这本书给你:《需求工程:基础原理和技术》。德国人写的,绝对高屋建瓴。其实里边的方法很厚重,不能全部采纳,但是里边的建模方式和很多知识点非常启发人。
-----------------------------------------------------------------------------------------------
性能测试:
应用程序性能测试的艺术 软件性能测试过程解析与案例剖析 :这两本书,一本外国人写的,一本是国人段念写的。主要告诉你性能测试如何来做,为什么要这么做,还有评判准则,还有很好的案例。如果真正的做性能测试,推荐一定要读这两本,因为这是在讲方法论的东西,没有方法论指导,你就不知道怎么建模,怎么设计场景,怎么评判测试结果。这两本甩开国内很多 《loadrunner XXX》的一坨图书一百条街。学loadrunner其实看它的官方文档就足够了。但是,你真的是小白,一点儿基础也没有,不妨找本网上评价比较高的《loadrunner xxx》系列图书来读,可以帮助迅速上手,体验一下怎么操作,但价值也仅限如此了。
如果你性能测试做得比较深入了,其实可以看相关的开发书籍,比如架构相关的书,数据库管理、调优,JVM调优,web服务器管理、调优,高性能程序设计、调优等。对被测物理解越深,性能测试才能越深入。这方面的书可以自行根据关键字进行搜索。
安全测试:
渗透测试实践指南:最好的渗透测试入门书,也是一本目录,可以由它打开安全测试之门。
自动化测试:
没有什么特别好的书,如果非要推荐,推荐:《自动化测试最佳实践》 这是一本案例教学的书。里边有几十个例子,其中一半的例子我认为非常有参考价值。自动化要做好我认为至少要有4点:合适的技术,合适的策略,合适的团队,合适的时机。技术对于自动化实施成功充其量只占到四分之一。书里讲了很多技术之外的东西。真正做自动化实施的同学读了肯定会有很多感触。如果是初学者,建议你先买了放着,经过一两个失败的项目(没有非常好的工程师带,没有好的团队,通常第一次实施肯定是失败的)后再反过来读。另外《测试之美》里边也有几章是自动化测试相关的案例,值得一看。
还想说的是,别把自动化同QTP这个玩意儿划等号。除非你的单位明确使用QTP,否则绝对不要买QTP的书来看了,这东西基本上已经是明日黄花了,不要被骗钱。在我眼里,最值得学习的测试的三个通用测试框架是”Junit“,”cucumber“,”Robotframeork“。你可以从中学到很多框架测试的理念,并举一反三。特定测试框架建议从selenium学起。它们最好的学习方法就是泡论坛,泡官网,泡邮件组,泡国内社区,多认识相关的人,自己动手。
其它:
云服务测试:如果对新技术感兴趣,可以试着买一本看。看似很高大上,看完后你会发现:哦,原来如此。老瓶装新酒。这本书的好处在于:教了你方法论。你可以把书的云服务换成现在更流行的”大数据“,”移动测试“。换完了以后,你发现,怎么测本质上是一样的,不同的地方就是:被测物变了,熟悉你的被测物,并建立针对被测物特性的测试体系就行了。当然你为了完成工作需要学习被测物的相关技术,尤其是测试相关的技术。这样具体的书籍有很多,测什么的时候买一本风评不错的书。比如搜索”移动测试“:)
我的主要工作是测试后台系统,对于很多其他领域了解的并不是很深。如果在特定领域有很好的书籍,也请大家跟帖回复,跟大家分享吧。
-----------------------------------------------------------
特别吐槽,千万别买:《测试反模式:有效规避常见的92种测试陷阱》(中文版),英文版还是很赞的。只是翻译的相当垃圾,基本上是金山快译后直接出版的水平,毁了一本好书。
最后要说的是:读书和工作是相互促进的。别太信书,它很多时候不能解决具体问题。但是书的最大作用就是启迪你。