软件测试应该掌握哪些技能-转载

上一篇 / 下一篇  2012-08-03 14:15:18 / 个人分类:测试者

Java编程技能

作为一个合格的测试人员,除了要掌握相关的测试理论、测试方法和测试工具外,还应该对软件编程有一定的了解,这样,才能更容易的发现问题,本课程的目的在于让学员掌握作为测试工程师所需要的具备的基本的Java编程技能

  • Java编程基础:Java面向对象编程、Java API、Java异常处理、Java流等
  • Java Web编程:JSP/Servlet编程、Java Bean、Struts等
  • Java EE应用部署:WebLogic、JBoss应用服务器、Java EE企业级应用的部署

搭建测试环境-操作系统

软件测试过程中,测试人员经常要面对的是不同的测试环境:不同的操作系统、不同的数据库,本课程的目的在于让学员掌握几种典型的主流操作系统

  • Windows操作系统的安装、维护;Windows操作系统的安全管理、用户管理;使用ghost进行备份和恢复
  • AIX系统介绍/系统安装;系统管理工具的使用;软件安装与维护;系统的启动与关闭;存储管理;安全管理;任务与进程管理;系统备份与恢复
  • Linux系统介绍/系统安装;系统管理工具的使用;软件安装与维护;系统的启动与关闭;存储管理、安全管理、任务与进程管理;系统备份与恢复

搭建测试环境-数据库

在软件测试过程中,测试人员经常要面对的是不同的测试环境:不同的操作系统、不同的数据库,本课程的目的在于让学员掌握几种典型的主流数据库

  • SQL语言及开发技术:DDL、DML、DCL、DQL;子查询、多表查询、游标、存储过程、用户定义函数、触发器、数据库设计等
  • SQL Server数据库:Microsoft SQL Server数据库的安装、管理;SQL Server数据库备份和恢复
  • Oracle数据库安装配置:Oracle数据库基础知识;Windows/Linux上的数据库的安装、卸载;用户管理、网络连接、数据库备份与恢复;Oracle数据库中的函数和存储过程
  • MySQL数据库:MySQL数据库的安装、配置;MySQL数据库的备份和恢复等

软件工程

作为测试人员的使命是对整个软件的质量负责,因此,他必须对整个软件的开发规范和流程很熟悉。本课程的目的在于让学员熟悉软件工程的相关知识

  • 软件生命周期
  • 软件工程目标和过程
  • RUP(Rational Unified Process)

软件测试基础

此部分课程,主要让学员掌握软件测试相关的理论、熟悉软件测试的流程,掌握测试文档、测试计划、测试用例的编写;如何跟踪Bug

  • 单元测试、集成测试、外部功能测试、回归测试、系统测试、安装测试、验收测试
  • 版本控制方法、源代码管理工具VSS/CVS;
  • 软件缺陷管理:Bugzilla工具的使用
  • 测试计划编写
  • 测试文档书写
  • 测试用例的编写

软件测试工具

现在的软件已经变得非常复杂,在软件测试过程中,如果不借助于一些测试工具,很难顺利完成测试工作。本课程目的在于让学员掌握目前主流的测试工具

  • JUnit:单元测试工具
  • Quick Test Professional:功能测试工具
  • Load Runner:负载测试工具
  • Test Director:测试管理工具

 

一个有竞争力的测试人员要具有下面三个方面的素质:
1). 计算机领域专业技能。主要包含三个方面:
  测试专业技能:要想成为一名优秀的测试工程师,首先应该具有扎实的测试专业基础知识,告别简单的“点击”之类的测试工作,让测试工作以自己的专业知识为依托。测试人员应该掌握的专业技能包括:黑盒测试白盒测试、测试用例设计等基础测试技术,也包括:

单元测试
1) 白盒测试方法、单元测试用例设计方法
2) 通用代码编程规范、伪码写作规范
3) C/C++/Java/Net单元测试框架下的单元测试方法、过程
4) TCL(Tool Command Language)使用方法
5) 基本的代码静态检查、代码覆盖率检查、内存泄漏检查的方法、工具等

集成测试
1)集成测试策略、基本理论 ;
2)集成测试用例设计方法;
3)软件概要设计写作的基本方法;
4)基于结构化程序的集成测试方法;
5)应用于概要设计中的 UML图,例如顺序图、状态图等;
6)基于 UML 图的面向对象的集成测试方法等

系统测试
1)黑盒测试方法、系统测试用例设计方法 ;
2)软件需求规格说明书的基本写作方法 ;
3)功能测试;
4)性能测试
5)容量测试 ;
6)压力测试 ;
7)数据备份测试
8)配置测试
9)软件安装和卸载测试
10)软件的安全性测试
11)恢复测试
12)软件的易用性测试
13)软件升级测试
14)在线帮助测试
15)常用测试工具使用方法(WinRunner、LoadRunner、RationalRobot、TestDirector、QuickTestPro、Bugzilla、Mantis、WAS等测试工具) )等测试方法,还包括基础的测试流程管理、缺陷管理、自动化测试技术等知识。


  软件编程技能:“测试人员是否需要编程?”是测试人员最常提出的问题之一。很多人则是因为做不了开发或者不能从事其它工作才“被迫”从事测试工作,结果则是很多测试人员只能从事相对简单的功能测试,能力强一点的则可以借助测试工具进行简单的自动化测试(主要录制、修改、回放测试脚本)。软件编程技能实际应该是测试人员的必备技能之一,在微软,很多测试人员都拥有多年的开发经验。只有能编写程序,才可以胜任诸如单元测试、集成测试、性能测试等难度较大的测试工作。软件测试人员的编程技能要求应该有别于开发人员:测试人员编写的程序应着眼于运行正确,同时兼顾高效率,尤其体现在与性能测试相关的测试代码编写上。因此测试人员要具备一定的算法设计能力。测试工程师至少应该掌握Java、C#、C++之类的一门语言以及相应的开发工具。


  网络、操作系统、数据库、中间件等知识:与开发人员相比,测试人员掌握的知识具有“博而不精”的特点,“艺多不压身”是个非常形象的比喻。由于测试中经常需要配置、调试各种测试环境,而且在性能测试中还要对各种系统平台进行分析与调优,因此测试人员需要掌握更多网络、操作系统、数据库等知识。
  1)在网络方面,测试人员应该掌握基本的网络协议以及网络工作原理,尤其要掌握一些网络环境的配置,这些都是测试工作中经常遇到的知识。
  2)操作系统和中间件方面,应该掌握基本的使用以及安装、配置等。例如很多应用系统都是基于Unix、linux来运行的,这就要求测试人员掌握基本的操作命令以及相关的工具软件。而WebLogic、Websphere等中间件的安装、配置很多时候也需要掌握一些。
  3)数据库知识则是更应该掌握技能,现在的应用系统几乎离不开数据库。因此不但要掌握基本的安装、配置,还要掌握SQL。测试人员至少应该掌握Mysql、MS Sqlserver、Oracle等常见数据库的使用。
  作为一名测试人员,尽管不能精通所有的知识,但要想做好测试工作,应该尽可能地去学习更多的与测试工作相关的知识。


2). 行业知识行业
  主要指测试人员所在企业涉及的行业领域,例如很多IT企业从事石油、电信、银行、电子政务、电子商务等行业领域的产品开发。行业知识即业务知识,是测试人员做好测试工作的又一个前提条件,只有深入地了解了产品的业务流程,才可以判断出开发人员实现的产品功能是否正确。很多时候,软件运行起来没有异常,但是功能不一定正确。只有掌握了相关的行业知识,才可以判断出用户的业务需求是否得到了实现。行业知识与工作经验有一定关系,通过时间即可以完成积累。


3).个人素养
  作为一名优秀的测试工程师,首先要对测试工作有兴趣:测试工作很多时候都是显得有些枯燥的,因此热爱测试工作,才更容易做好测试工作。因此,除了具有前面的专业技能和行业知识外,测试人员应该具有一些基本的个人素养,即下面的“五心”。
  专心:主要指测试人员在执行测试任务的时候要专心,不可一心二用。经验表明,高度集中精神不但能够提高效率,还能发现更多的软件缺陷,业绩最棒的往往是团队中做事精力最集中的那些成员。
  细心:主要指执行测试工作时候要细心,认真执行测试,不可以忽略一些细节。某些缺陷如果不细心很难发现,例如一些界面的样式、文字等。
  耐心:很多测试工作有时候显得非常枯燥,需要很大的耐心才可以做好。如果比较浮躁,就不会做到“专心”和“细心”,这将让很多软件缺陷从你眼前逃过。
  责任心:责任心是做好工作必备的素质之一,测试工程师更应该将其发扬光大。如果测试中没有尽到责任,甚至敷衍了事,这将会把测试工作交给用户来完成,很可能引起非常严重的后果。
  自信心:自信心是现在多数测试工程师都缺少的一项素质,尤其在面对需要编写测试代码等工作的时候,往往认为自己做不到。要想获得更好的职业发展,测试工程师们应该努力学习,建立能“解决一切测试问题”的信心。
  “五心”只是做好测试工作的基本要求,测试人员应该具有的素质还很多。例如具有团队合作精神、良好沟通技巧,学会时间管理,学会宽容待人,学会去理解“开发人员”,同时要尊重开发人员的劳动成果--开发出来的产品。

一下是几点要求,自己看看吧,希望有所帮助
1.学历要求
软件测试大多数岗位都要求本科以上学历,可也有少数用人单位只要求专科学历的,但也有一个趋势是
用人单位对职业教育重视程度越来越高,学历的强调反而降到了最后位置.

2.文字表达能力
测试员要求具备良好的文字功底,因为涉及到测试用例的编写和软件使用说明的编写,因此文字功底是
必需的!

3.计算机语言
虽然软件测试不要求太高深的编程能力,但至少也要对一门语言熟练掌握,对一门陌生的语言迅速掌握
的能力也是必要的,在很短时间至少输出"Hello World!".

4.系统原理的理解
计算机原理和操作系统的知识掌握:任何软件都离不开运行的大环境,就象我们每一个人都不能脱离社
会而独立存在的道理一样!软件测试要求对各种未知环境和状况都要考虑周到,一个优秀的测试员至少对
各种软硬环境的搭配深刻理解!

5.快速学习能力
软件测试在我国是最近10年才被逐渐重视起来的,在好多方面还不完善,对软件测试人材的培养也在探
索中,这就要求测试人员具备快速学习充电的能力,要求非常广泛的知识面,准备好终身学习也是顺应时
代要求的,毕竟这个社会竞争太激烈了!

6.稳重踏实且细心的性格
稳重踏实的性格对于致力于作软件测试员来讲也是必不可少的,一个大型的软件广泛的通常要有几十
万甚至上百万行代码,初期补课能用自动化测试工具通通代替人工阅读,所以面对枯燥的代码没有沉稳
有耐性的脾气是不行的,因此现在IT行业最没有性别歧视的行业也在于软件测试方面.因为在通常情况
下,女人比男人更有耐心和细心.准备作测试员你准备好足够的耐心了吗?

7.非常优秀的语言表达能力
非常优秀的语言表达能力和沟通能力;我认为测试员不单单起一个确保软件质量的作用(当然这方面
是最重要的!)还应该一座桥梁,一座在项目经理和程序员之间沟通的桥梁!与程序员良好的无障碍的沟
通才会使软件项目顺利实施,确保软件达到客户要求!因此性格内向言语表达能力匮乏的的人我认为是
作不好测试员的!

8.适应变革的能力
这是一个时刻在变革的时代,IT行业每时每刻都在变化,这要求不单单测试员每一个人都要有随机应
变,相时而动的准备!道不是鼓动打架跳槽,呵呵 但有应变的准备还是应该的!


TAG:

 

评分:0

我来说两句

Open Toolbar