近来,软件测试行业发展迅速,企业越来越重视测试了。越来越多的人加入了测试大军中,很多人也想通过自学来学习软件测试技术加入这个行业,但是现在软件测试的书籍越来越多,也良莠不齐,而且软件测试涉及的技术也越来越多。本文主要说明的是从事软件测试行业需要必备的知识,以及该如何学习,主要给大家提供一些比较优秀的书籍,并给出学习的顺序。希望通过阅读本文,读者可以明确该如何学习测试,并学习哪些知识。由于仅是个人建议,如有错误不妥的地方,敬请提出批评。
一、软件测试基础知识
要想进入测试这个行业,就必须要了解什么是软件测试,该如何测试?
这部分的学习目标:掌握软件测试的基本概念、软件测试的流程,并能熟练的应用常见的用例设计方法来设计测试用例。掌握常见的测试方法和类型,并知道如何进行每个阶段的测试。
下面是推荐的参考书:
1、软件测试(原书第2版) (美)佩腾(Patton,R.) 著,张小松 等译
这本书可以用来作为进入行业的第一本书,本书讲解的都是实用的技术,通过阅读本书可以快速的去学会如何测试软件。个人建议,这本书至少要读3遍以上。
看完这本书,自己可以去找一个项目(可以到开源中国上查找)来测一测,应用一下学的知识,找一找缺陷。在测试这个项目中要体会一下测试的流程,学习如何搭建测试环境。
2、软件测试的艺术(原书第3版) (美)梅耶 等
第二本就是这本软件测试的“圣经”,这本书据说是硅谷测试人员必备的书。这本书最值得看的地方就是测试的思想。阅读这本书可以让你有豁然开朗的感觉。
3、计算机软件测试(原书第2版) (美)卡尼尔
这本书也是值得一读的,同样也是非常适合初学者阅读的。
4、全程软件测试 朱少民
上面的都是外国人写的,来本国产的。
还有很多经典的测试书,例如:Paul C.Jorgensen的软件测试(第2版)这本书,但是笔者认为他不是很适合初学者,这本书都是用来做研究生教材的,做过一段测试的可以来看看。
二、软件测试进阶书籍
这部分主要是针对有过一年左右测试经验的,真正测试过几个项目的。推荐的参考书主要是提高测试效率的,一些测试的经验。
1、有效软件测试
这本书主要是给软件测试的各个阶段提出了一些建议,一共50条。这些建议都十分中肯,值得一读。
2、软件测试经验与教训
听书名也应该了解了一大半了吧,这本书一共给出了293条经验,阅读它吧。它会让你重新思考关于测试的基本理论。
还有一些很好的书籍了,但是没有读过的就不做推荐了。
三、自动化测试
我们都知道,目前自动化测试是软件测试的趋势,而且目前公司在招聘的过程中都会考察自动化相关的知识。这里我们介绍一下QTP和Loadrunner等测试工具。
目标:掌握自动化测试的概念、流程和方法。能够使用相关的工具进行自动化的测试。
QTP部分:
目标:掌握QTP的测试流程、工作原理和基本使用。能够使用QTP进行自动化测试。进阶需要掌握自动化框架设计的原理,并能独立设计自动化框架。
目前网络资源很丰富,有很多前辈录制了很多视频,大家可以先来看看。
1、IT播吧 - 小强老师零基础学习软件测试系列视频教程之QTP学习指南
首先可以先看这套视频,这里主要讲的是QTP的基本使用。学习视频的过程中,最好能够独立的测试QTP自带的飞机订票的例子。这个最好了,QTP的基本使用就没问题了。
2、精通QTP——自动化测试技术领航 余杰 赵旭斌 编著
第一个视频还是讲的录制和回放,并且也是以飞机订票作为的例子,但是实际工作中,很少有录制的项目,基本上都是需要自己开发脚本的。所以这本书会给你很大帮助的。
3、QTP自动化测试权威指南(第二版)
这本是QTP的大牛Tarun Lalwani的经典力作,公认的QTP测试的“圣经”。无论是初学者还是使用过QTP的都应该好好的读一读。
LoadRunner部分:
目标:掌握性能测试的常见术语,性能测试的方法和流程。能够熟练使用Loadrunner。进阶的话需要学会分析性能报表,找到性能瓶颈,进行性能调优。但是这个过程并不是看基本书就可以达到的,需要不断的积累测试经验才能做到的。(努力吧)
1、IT播吧 - 小强老师零基础学习软件测试系列视频教程之Loadrunner学习指南
还是这个视频,学过这个视频基本上可以独立的使用Loadrunner执行性能测试用例了。
2、精通软件性能测试与LoadRunner最佳实战
在来一本入门的书,这本书基本上算是Loadrunner的百科全书了吧,各个方面都有所涉及。
3、捉虫记——大容量Web应用性能测试与LoadRunner实战
这部分还需要掌握,类似QC这样的测试管理工具和Mantis等缺陷管理工具。
自动化理论部分:
1、软件测试自动化 (美)Daniel J.Mosley 等著
2、软件自动化测试技术与实例详解(一本很老的书)
3、自动化测试最佳实践
四、其他技术
上面的是和软件测试理论相关的知识,但是真正的想做好测试这些还是不够,还有一些必须要掌握的知识,下面一一列举一下。
1、数据的技术
目标:掌握SQL语句,重点在增删改查上。可以参考:http://blog.csdn.net/xc5683/article/details/8678255
2、编程语言
这里推荐的是Java,毕竟现在Java用的比较多。而且学会一门语言,在学习其他语言也是很容易的。
目标:掌握程序设计的逻辑和面向对象的思想。掌握一门语言。
目前这方面的视频非常多,大家可以找来自己看看。
3、UML
UML还是必须要会的,至少应该能看懂。毕竟大部分需求都是用它画的啊。
4、操作系统
这里说的服务器的系统,以Linux为例。
目标:能够搭建常见的服务,解决相关故障。
推荐大家看《鸟哥的私房菜这个系列》,除此之外,还有学会Shell编程。
5、Web技术
如果测试Web,对Web还是需要了解的啊。主要是Html+Css+JavaScript。
先分享这么多,欢迎大家补充。
最后奉上一些书籍的电子版:http://pan.baidu.com/share/link?shareid=2289639571&uk=2433286629