-
1 电子教材
-
2 PPT
-
3 实训任务
人力资源是各项工作中最有价值也是最重要的资源之一,测试工作也一样,没有一个合格的、积极的测试小组,测试就不可能实现。然而,现在在国内很多公司有一个普遍的现象,就是让那些经验较少的新手去做测试工作。没有人愿意做测试,公司觉得培养测试人员是一件高成本低回报的事情。这绝对是一种目光短浅的行为,因为软件测试既是软件提交的出口,又是客户意见反馈的入口。优秀的测试人员是很难得的,对一个系统进行有效的测试所需要的技能绝对不比进行软件开发所需要的少。事实上,测试者将获得极其广泛的经验,他们将遇到许多开发者不可能遇到的问题。
随着软件测试的发展,要想成为一个优秀的测试人员,必须具备一些专业技能和素质已成为毋庸置疑的事实。
计算机领域的专业技能是测试工程师应该必备的一项素质,是做好测试工作的前提条件。尽管没有任何IT背景的人也可以从事测试工作,但是一名要想获得更大发展空间或者持久竞争力的测试工程师,则计算机专业技能是必不可少的。计算机专业技能主要包含三个方面:
1. 测试专业技能
测试专业知识很多,本书内容主要以测试人员应该掌握的基础专业技能为主。测试专业技能涉及的范围很广:既包括黑盒测试、白盒测试、测试用例设计等基础测试技术,也包括单元测试、集成测试、系统测试、性能测试等测试方法,还包括基础的测试流程管理、缺陷管理、自动化测试技术及LoadRunner、QTP、QC工具使用等知识。
2. 软件编程技能
软件编程技能实际应该是测试人员的必备技能之一,在微软,很多测试人员都拥有多年的开发经验。因此,测试人员要想得到较好的职业发展,必须能够编写程序。只有能编写程序,才可以胜任诸如单元测试、集成测试、性能测试等难度较大的测试工作。
此外,对软件测试人员的编程技能要求也有别于开发人员,测试人员编写的程序应着眼于运行正确,同时兼顾高效率,尤其体现在与性能测试相关的测试代码编写上,因此测试人员要具备一定的算法设计能力。依据资深测试工程师的经验,测试工程师至少应该掌握Java、C#、C++之类的一门语言以及相应的开发工具。
3. 网络、操作系统、数据库、中间件等知识
与开发人员相比,测试人员掌握的知识具有“博而不精”的特点,“艺多不压身”是个非常形象的比喻。由于测试中经常需要配置、调试各种测试环境,而且在性能测试中还要对各种系统平台进行分析与调优,因此测试人员需要掌握更多网络、操作系统、数据库等知识。
在网络方面,测试人员应该掌握基本的网络协议以及网络工作原理,尤其要掌握一些网络环境的配置,这些都是测试工作中经常用到的知识。
操作系统和中间件方面,应该掌握基本的使用以及安装、配置等。例如很多应用系统都是基于Unix、linux来运行的,这就要求测试人员掌握基本的操作命令以及相关的工具软件。而Tomcat、Jboss、WebLogic、Websphere等中间件的安装、配置很多时候也需要掌握一些。
数据库知识则是更应该掌握技能,现在的应用系统几乎离不开数据库。因此不但要掌握基本的安装、配置,还要掌握SQL语句。测试人员至少应该掌握Mysql、SQL Server、Oracle、Sybase、DB2等常见数据库的使用。
行业主要指测试人员所在企业涉及的行业领域,例如很多IT企业从事电信、银行、电子政务、电子商务等行业领域的产品开发。行业知识即业务知识,是测试人员做好测试工作的又一个前提条件,只有深入地了解了产品的业务流程,才可以判断出开发人员实现的产品功能是否正确。
很多时候,软件运行起来没有异常,但是功能不一定正确,只有掌握了相关的行业知识,才可以判断出用户的业务需求是否得到了实现。
行业知识与工作经验有一定关系,一般通过时间即可以完成积累。
作为一名优秀的测试工程师,首先要对测试工作有兴趣,测试工作很多时候都是显得有些枯燥的,因此热爱测试工作,才更容易做好测试工作。因此,除了具有前面的专业技能和行业知识外,测试人员应该具有一些基本的个人素养。
1. 五心
1)专心:主要指测试人员在执行测试任务的时候要专心,不可一心二用。经验表明,高度集中精神不但能够提高效率,还能发现更多的软件缺陷,业绩最棒的往往是团队中做事精力最集中的人员。
2)细心:主要指执行测试工作时要细心,认真执行测试,不可以忽略一些细节。某些缺陷如果不细心很难发现,例如一些界面的样式、文字等。
3)耐心:很多测试工作有时候显得非常枯燥,需要很大的耐心才可以做好。如果比较浮躁,就不会做到“专心”和“细心”,这将让很多软件缺陷从你眼前逃过。
4)责任心:责任心是做好工作必备的素质之一,测试工程师更应该将其发扬光大。如果测试中没有尽到责任,甚至敷衍了事,这将会把测试工作交给用户来完成,很可能引起非常严重的后果。
5)自信心:自信心是现在多数测试工程师都缺少的一项素质,尤其在面对需要编写测试代码等工作的时候,往往认为自己做不到。要想获得更好的职业发展,测试工程师们应该努力学习,建立能“解决一切测试问题”的信心。
2. 沟通能力
测试是连接开发和客户的接口,因此理想的测试人员需要能够与涉及测试的所有人进行很好的沟通,包括技术人员(开发者)和非技术人员(客户、管理人员)。这两类人的出发点和角度是不同的,开发人员是从程序实现的角度来衡量和沟通,而用户则是从系统的实际使用上来提出问题和需求,他们关心的是系统是否符合自己的要求。因此测试人员就成为一个桥梁,要对每一方都具有足够的理解,把两种信息从不同的角度和不同的方式表达出来,使二者之间的信息得到良好的沟通,将矛盾和冲突降到最低。
3. 团队合作精神
现代企业的运作尤其重视团队合作精神。团队精神强调通过沟通、交流、协调、协作、互补、合作等,来发挥团队整体的最大功效,从而更好地实现整体的既定目标另外,测试和开发从一定意义上讲一个是破坏性的,一个是建设性的,二者之间本身就有很大的冲突,需要很好地协调。因此就需要所有成员富有团队合作精神,相互合作,从而达到预定的目标。
4. 时时保持怀疑态度,并且有缺陷预防的意识
测试人员的职责就是尽量多地从开发人员的程序中找出问题。因为有些开发人员总是找一些有利于自己程序执行的数据,甚至有些开发人员认为不利于程序执行的数据是对代码的玷污和亵渎。而软件测试却需要策略性地准备各种数据,不去想当然地假定任何一个数据是可行的,这样才能不断地发现问题,解决问题。
另外,测试人员要有缺陷预防的意识。也就是说,要分析出产生缺陷的原因,从而避免它们的再次发生。有些缺陷可能发生在当前测试项目的早期阶段,也可能发生在其他测试项目中,所以缺陷预防是不同项目间互相吸取教训的有效手段。要根据各个项目的实际情况,来分析确定缺陷发生的根本原因,来认清缺陷发生之前所具有的征兆,从而避免其产生。
Ø 软件及软件的分类
Ø 软件测试产生的背景
Ø 软件测试的概念及意思
Ø 软件测试的目的
Ø 软件测试的现状和发展前景
Ø 一个软件测试工程师必备的专业技能和素质

