首页 >> 网络营销词典 >> 互联网工具及软件 >> 软件测试工程师

软件测试工程师[编辑]


概述
软件测试工程师指理解产品的功能要求,并对其进行测试,检查软件有没有错误,测试软件是否具有稳定性,写出相应的测试规范和测试用例的专门工作人员。

一、角色定位

软件项目开发是个分工明确的系统工程,不同的人员扮演了不同的角色,包括部门经理、产品经理、项目经理、系统分析师、程序员、测试工程师、质量保证人员等。可见,软件测试工程师只是软件项目开发中的一个角色而已。
测试工程师承担的任务角色决定工作内容和承担的任务。测试工程师的角色应该承担什么任务呢?这没有统一的答案。因为,这与软件公司的规模,软件项目管理制度,公司领导和项目经理的管理风格,以及具体软件项目自身的特点有很大关系。而且,测试工程师也有普通和高级之分。
笼统的答案列举如下:
设置软件测试环境,安装必要的软件工具。
运行软件,发现和报告软件缺陷或错误。尤其需要快速定位软件中的严重的错误。
对软件整体质量提出评估
确认软件达到某种具体标准
以最低的成本,最短的时间,完成高质量的测试任务
......
在这其中,最重要的是要明确,程序员的责任和目标。在执行任何具体测试任务前,都要在项目组内对于责任和目标达成共识,以免带来后续工作的相互推诿。
1、提高测试质量的要诀
另外一个值得注意的方面就是工作效率和质量,或许高级测试工程师与普通测试工程师的主要区别在于高级测试工程师可以更快地发现更多软件中的严重错误。对此,有什么可以借鉴的诀窍吗?请尝试以下方法,保证不会使您失望。
首先测试程序的核心功能,然后测试辅助功能。
首先测试功能,然后测试性能。
首先测试常见情况,然后测试异常情况。
首先测试经过变更的部分,然后测试没有变更的部分。
首先测试影响大的问题,然后测试影响小的问题。
首先测试必须测试的部分,然后测试可选或没有要求测试的部分。
2、服务员
需要强调的一点是,无论你是多么高级的测试工程师,都要明白无论测试需要的工具多么复杂,测试步骤多么冗长,测试工程师在软件项目开发中始终都是扮演服务员的角色,这是由测试工作的特点决定的。任何服务都有被服务对象—客户,测试工程师的服务对象有哪些呢?
最重要的客户是软件的用户。测试工程师需要站在客户的使用和需求角度测试软件,报告问题。
项目经理也是客户。测试工程师需要报告测试工作进度和发现的问题,尤其是严重的问题。
程序员是最经常打交道的客户。为了便于程序员重复报告的错误,尽量提供良好的软件问题报告,以便程序员可以更快的修复软件错误。
技术文档工程师、市场开发人员和技术支持工程师也都是测试工程师的服务对象。
3、避免错误
前文已经指出测试工程师应该明确角色,明确任务和责任。知道哪些是自己分内的事,哪些是不属于自己的事。一定要尽最大努力完成分内的事,不要做不属于自己的事情,以免弄巧成拙。
为了更好的扮演软件测试工程师的角色,尽量避免犯下面的错误:
(1)承诺完成测试的软件没有质量问题
软件测试只是保证质量的一种方法,软件测试工程师的工作不会直接提高软件质量,因为绝大多数软件错误都需要程序员修复。软件测试只能证明软件存在错误,不能保证软件没有错误,不可能找出全部软件错误。个人的能力和对质量的影响范围很小,软件质量的提高要靠软件项目团队全体成员的共同努力。
(2)承担软件的发布权利
不要因为软件中存在还没有修复的错误,而试图提出更改软件发布的计划。也不要认为已经完成了测试计划,自己决定可以发布软件。因为,改变软件发布计划可能要失去进入市场的良机和很多客户,对此造成的经济和公司市场的损失将不是测试工程师能够承担的。另外,软件发布后,如果用户发现了新的软件错误,公司领导或项目经理可能将过错加在软件测试人员的头上,因为他们同意发布软件。通常软件发布的权利由产品经理、项目经理、测试经理、市场经理共同集体讨论决定。
(3)扮演过程改进成员的角色
软件测试工程师必须报告错误,有时也要分析错误的类型、特征和产生错误的原因。但是,不要主动提出改进软件过程的具体改进措施,更不要直接干涉程序员的工作方式,以免出力不讨好,影响今后的愉快合作。软件过程改进的方法是软件质量控制部门的事情,这是他们的本职工作。

二、工作职责

软件测试就是使用人工或自动手段,来运行或测试某个系统的过程。其目的在于检验它是否满足规定的需求或弄清预期结果与实际结果之间的差别。开发工作的根本是尽量实现软件用户的需求,测试工作的根本是检验软件系统是否满足软件用户的需求。
软件测试工程师简单的说是软件开发过程中的质量检测者和保障者,负责软件质量的把关工作。软件测试工程师具体工作有:
1 、使用各种测试技术和方法来测试和发现软件中存在的软件缺陷。测试技术主要分为黑盒测试和白盒测试两大类。其中黑盒测试技术主要有等价类划分法、边界值法、因果图法、状态图法、测试大纲法以及各类典型的软件故障模型等;白盒测试的主要技术有语句覆盖、分支覆盖、判定覆盖、基本路径覆盖等;
2 、测试工作需要贯穿整个软件开发生命周期。完整的软件测试工作包括单元测试、集成测试、确认测试和系统测试工作。单元测试工作主要在编码阶段完成,由开发人员和软件测试工程师共同完成,其主要依据是详细测试。集成测试的主要工作测试软件模块之间的接口是否正确实现,基本依据是软件体系结构设计。确认测试和系统测试是在软件开发完成后,验证软件的功能与需求的一致性、验证软件在相应的硬件条件下的系统功能是否满足用户需求,其主要依据是用户需求。
3 、测试人员将发现的缺陷编写成正式的缺陷报告,提交给开发人员进行缺陷的确认和修复。缺陷报告编写最主要的要求是保证缺陷的重现。要求测试人员具有很好的文字表达能力和语言组织能力。
4 、测试人员需要分析软件质量。在测试完成后,测试人员需要根据测试结果来分析软件质量,包括缺陷率、缺陷分布、缺陷修复趋势等。给出软件各种质量特性包括有功能性、可靠性、易用性、安全性、时间与资源特性等的具体度量。最后给出一个软件是否可以发布或提交用户使用的结论。
5 、测试过程中,为了更好地组织与实施测试工作,测试负责人需要制定测试计划,包括有测试资源、测试进度、测试策略、测试方法、测试工具、测试风险等。
6 、测试人员为了更好更有效地进行测试,保证测试工作质量,需要在执行测试工作之前首先需要设计测试用例,形成测试用例报告。设计测试用例是保证测试质量的核心工作,很多测试技术都可以用来指导设计用例。为了提高测试用例的设计效率,BTEST培训课程专门开设了高效设计测试用例一门课来讲授各种设计用例的技术与方法。
7 、为了提高工作效率或提高测试水平,测试工作需要引进自动化测试工具,测试人员需要学会使用自动化测试工具,编写测试脚本,进行性能测试等。
8 、测试负责人在测试工作中,还需要根据实际情况不断改进测试过程,提高测试水平,进行测试队伍的建设等。

三、分类

按其级别和职位的不同,可分为三类:
高级软件测试工程师,熟练掌握软件测试与开发技术,且对所测试软件对口行业非常了解,能够对可能出现的问题进行分析评估;
中级软件测试工程师,编写软件测试方案、测试文档,与项目组一起制定软件测试阶段的工作计划,能够在项目运行中合理利用测试工具完成测试任务;
初级软件测试工程师,其工作通常都是按照软件测试方案和流程对产品进行功能测验,检察产品是否有缺陷。

四、职业优势

1、入门门槛低
大中专学历即可,是不是计算机专业都可以。如果是其他有业务背景的专业更有优势,例如:会计、金融、办公自动化、酒店管理、网站设计等。对于有行业背景的人来说入门更快,因为对于测试工作来说,有时懂业务比懂技术还重要,你会了技术,去各行各业做测试都是要学习业务知识的,这是很正常的事。
2、初级技术要求低
目前大部分测试技术还属于手工测试,手工测试要求入门门槛很低。你只要会写用例,会提缺陷就可以了。测试人员需要简单了解业务知识,学习所开发系统的使用,也就是会使用系统就可以了。照着用例执行测试,发现缺陷直接提交缺陷就可以了。
3、很大的薪酬优势
刚开始工作时月薪最低4000多,但工作半年,对工作流程了解后,再去换工作,五六千没问题。如果做银行业务测试起薪六七千没问题,有一点银行业务知识的再去换工作八千以上没问题,现在银行测试人员缺口很大。尤其是在大的外包公司做好的项目,比如银行项目等待遇和同等工作经历的开发差不多。
4、就业好
国外开发与测试的比例是1:2。目前国内开发与测试的比例是6:1。所以测试行业人才缺口很大,就业前景很好。基本属于供不应求。
5、工作比较轻松
比起软件开发工程师来说,软件测试工程师的工作就相对轻松多了
6、发展大

测试分为三个阶段:手工测试、自动化测试、性能测试。这是一个逐步提升的过程。最初工作可能做手工测试,也是目前绝大部分测试人员所从事的工作。自动化测试是测试的发展趋势,而且现在自动化测试人员急缺,且薪资很高。现在最稀缺的是性能测试人员,目前性能测试人员的待遇比同等经历的开发可能还要高,因为现在性能测试人员属于稀缺状态。
(1)手工测试:现在比较普及,大多数测试都还停留在手工测试阶段。(2)自动化测试:是趋势,但目前用自动化测试的还比较少,需要适当的代码编写工作。做一段手工测试后,积累一定经验,可以慢慢步入自动化测试阶段,如果自动化测试比较熟练,月薪1万没问题,和开发工资差不多。
(3)性能测试:性能测试人员现在稀缺人群,一般能做性能测试,且做得可以的一般月薪都在1.6万以上,比开发要高。
7、无性别要求

软件测试工程师对性别没有特定要求,因此是一相对来说比较适合女性的IT职业。
越老越吃香

软件测试工作是对质量的把关,其中包含技术及管理等方面的工作,工作相对稳定,对年龄没有限制,而且随着经验的积累,工龄越长越吃香。

五、开设课程

1、搭建 Windows测试环境
主要讲解搭建 Windows 测试环境所要具备的软、硬件及网络知识。包括计算机中各种硬件和接口。软件的分类、分发和授权等方式;操作系统的初步知识;注册表、病毒、安全等知识; TCP/IP 协议和 DNS 、活动目录等知识。从而让学员可以在实际工作环境当中搭建一个基于 Windows活动目录的局域网环境。
2、使用 C 语言开发简单应用
设置本课程的目的主要是使学员掌握软件开发的技术,掌握编程的方法、思想,了解软件开发过程当中常犯的错误,为后面的测试课程以及编写测试脚本打下语言基础。课程中主要包括 C 语言的语法、程序基本结构、函数、指针、数组、数据结构、算法等程序设计所涉及到的知识。课程注重实用性、重在培养学员对代码分析的能力,掌握编码规范,掌握调试知识和分析程序错误的能力。同时学习内存检查工具和软件配置管理等知识。该课程中贯穿了一个开发“软件测试工程师管理系统”的项目,增加学员开发项目的经验。
3、测试计划与软件缺陷
本课程是软件测试重点课程。本课程主要介绍软件测试的基本概念和基础知识、如何编写测试计划、识别软件缺陷、编写缺陷报告等。通过学习,学员可以掌握软件测试的流程、软件测试的策略和分类,掌握缺陷的分类和优先级等,从而对测试有一个整体的认识。本课程中介绍了 Bugzilla 缺陷跟踪管理系统(测试工具)。总体来说,本课程将使学员掌握大部分软件测试相关的基础知识。
4、高效设计测试用例
本课程是软件测试重点课程。本课程主要通过引入的大量案例讲解如何编写测试用例。讲解设计测试用例的技术包括等价类划分、边界值分析、因果图方法、状态图方法、测试大纲等的方法以及正交排列表、测试矩阵等。测试特性包括:功能、性能、兼容性、易用性等。测试对象包括软件功能、 GUI 界面、文档测试、安装和卸载测试等。通过本课程,主要是培养学员设计测试用例的视角,在最短的时间内针对功能写出恰当的测试用例。本课程和《测试计划与软件缺陷》课程中贯穿了对“软件测试工程师管理系统”编写测试计划、测试设计和开发,实施测试及测试评估的项目,增加学员软件测试相关经验。
5、白盒测试
本课程主要讲解白盒测试技术。主要内容包括逻辑驱动覆盖和基本路径覆盖两个方面,在逻辑驱动覆盖中主要介绍了语句覆盖、判定覆盖、条件覆盖、判定 / 条件覆盖、条件组合覆盖、路径覆盖和循环语句覆盖;在基本路径覆盖中介绍了绘制控制流图及程序复杂性相关概念,最后重点介绍了单元测试技术。通过学习,学员可以了解白盒测试的理论,组织方式,已经如何评估一个白盒测试的效果。本课程中介绍了Logiscope和 C++ Test 两个白盒测试工具。
6、Linux 与网络应用环境
本课程主要讲解搭建 Linux测试环境所应具备的知识。通过学习 Linux 的安装和配置、 Linux 常用命令、 Linux 下软件安装、卸载和使用、常见的 Linux 的服务(Apache 、 Mysql 、 Squid 、 Iptables 等)、 Linux软件开发环境等,让学员能够使用 Linux 实现一个提供常见服务的网络环境。本课程中在前期通过在 Linux 当中搭建 Bugzilla 缺陷跟踪管理系统来讲解 Linux 的使用和配置。
7、WEB 技术与数据库
本课程通过对数据库、 HTML 、 XML 、 HTTP 、 J2EE 、 .NET 等基础知识的讲解,让学员掌握这些技术,以便于建立分布式软件的测试环境。数据库是以 SQL Server 作为重点讲解,同时也介绍了 Oracle 和 MySQL 数据库。
高效使用自动测试工具
本课程主要介绍了国际测试工具占有率最高的 MI 的三大测试工具:功能测试工具 QuickTest Professional 、性能测试工具 LoadRunner 、测试管理工具TestDirector。学员掌握这些流行的测试工具,从而进一步提高测试的效率。
8、软件测试实训
本课程是最后一门课程,该课程主要是通过运用前面所学习的课程,指导学员完成一个项目的测试过程,从而巩固所学知识。在该课程中将完成分组分工、编写测试计划、写工作日志和开例会、设计测试用例、执行测试、填写和处理缺陷报告的过程。使用的项目通过三个版本来进行回归测试,通过分工与合作来完成测试工作,通过讲师和学员分别模拟测试组成员角色,锻炼学员实践的能力。该项目是一个百万行代码级别的类 Office 系统。
9、职业导向训练
职业导向训练,简称COT课程,即Career oriented Training,是对学员进行职业引导,包括就业指导和职前引导。通过就业指导以及就业专员、就业明星与学员的座谈会等日常辅助训练明确就业方向,进一步了解就业形式。详细介绍如何写简历,通过强化面试训练,以及模拟面试等方式,提升学员应对面试的能力,从而加强学员就业竞争力。

参考资料: http://baike.baidu.com/view/746132.htm
扩展阅读: http://baike.baidu.com/view/2965077.htm
相关词条:
合作编辑:

网络营销词典内容均由网友提供,仅供参考。如发现词条内容有问题,请发邮件至info # wm23.com。

词条信息

浏览次数:7

编辑次数:0历史版本

创建者: 马红梅

最近更新:2015/5/19 4:57:48

词条分类导航

关于网络营销教学网站| 本站动态| 网站地图| 版权声明| 联系作者| 问题和建议|

版权声明:网络营销教学网站所有作品版权均归原作者所有,未经书面许可,严禁任何形式的转载/转贴、出版、篡改、汇编、编译等。