您好,欢迎访问三七文档
当前位置:首页 > 办公文档 > 其它办公文档 > 第10章_软件测试职业
本章概述本章阐述了软件测试职业和职位.介绍了获取软件测试资源的途径并对软件测试工程师的素质提出了要求。。第10章软件测试职业10.1软件测试职业和职位10.2软件测试资源的获取途径10.3软件测试工程师的素质要求小结习题10.1软件测试职业和职位软件测试工作随着软件产品的开发所起的作用越来越重要,这是软件行业二十几年的实践所证明的一个道理。当前软件测试技术职业市场表明,具有一定测试经验的软件测试工程师很受市场青睐,供不应求。目前,软件测试工作经越来越得到足够重视,现在测试人员的待遇和开发人员的待遇非常接近。10.1.1测试团队的基本构成一个比较健全的测试团队应该具有下面这些角色:测试经理:人员招聘、培训、管理,资源调配、测试方法改进等。实验室管理人员:设置、配置和维护实验室的测试环境,主要是服务器和网络环境等。内审员:审查流程,并提出改进流程的建议:建立测试文档所需的各种模板,检查软件缺陷描述及其他测试报告的质量等。测试组长:业务专家,负责项目的管理、测试计划的制订、项目文档的审查、测试用例的设计和审查、任务的安排、和项目经理、开发组长的沟通等。一般(初级)测试工程师:执行测试用例和相关的测试任务。对于比较大规模的测试团队,测试工程师分为三个层次:初级测试工程师、测试工程师、资深(高级)测试工程师等,同时还设立自动化测试工程师、系统测试工程师和架构工程师。对于规模很小的测试小组,可能没有设置测试经理,只有测试组长,这时测试组长承担测试经理的部分责任,如参加面试工作、资源管理、团队发展等,并且要做内审员的工作,检查软件缺陷描述及其他测试报告的质量等。资深测试工程师不仅要负责设计规格说明书的审查、测试用例的设计等,还要设置测试环境,即承担实验室管理人员的责任。10.1.2测试人员职位及其责任上小节介绍了团队的基本构成,为了更好地理解团队中的每位成员所起的作用,就需要清楚不同的角色所应该承担的责任。主要角色的责任,先从一般(初级)测试工程师开始,再介绍资深测试工程师,最后到测试经理。这个过程有利于读者理解他们的责任,测试工程师虽然和初级测试工程师责任不一样,但肯定的是测试工程师能做好所有要求初级测试工程师做好的工作。不同层次的测试工程师责任有一定的区别,但都是技术工作,主要任务是设计和执行各种测试任务,是测试工作的基础。下面对软件测试各职位及其责任做详细的介绍。(1)初级测试工程师初级测试工程师的责任比较简单,还不具备完全独立的工作能力,需要测试工程师或资深测试工程师的指导,要求比较低,主要有下列7项责任。了解和熟悉产品的功能、特性等。验证产品在功能、界面上是否和产品规格说明书一致。按照要求,执行测试用例,进行功能测试、验收测试等,并能发现所暴露的问题。清楚地描述所出现的软件问题。努力学习新技术和软件工程方法,不断提高自己的专业水平。使用简单的测试工具。接受测试工程师的指导,执行主管所交待的其他工作。(2)测试工程师测试工程师的责任相对多些,熟悉测试流程、测试方法和技术,参与自动化测试,具有独立的工作能力,但基本已执行测试为主,主要责任如下:熟悉产品的功能、特性,审查产品规格说明书。根据需求文档或设计文档,可以设计功能方面的测试用例。根据测试用例,执行各种测试,发现所暴露的问题。全面使用测试工具,包括测试脚本的编写。安装、设置简单的系统测试环境。报告所发现的软件缺陷,审查软件缺陷,跟踪缺陷修改的情况,直到缺陷关闭。写测试报告。负责对初级测试工程师的指导,执行主管所交待的其他工作。(3)资深测试工程师资深测试工程师不仅具有良好的技术、产品分析能力、解决问题能力、丰富的测试工作经验,而且有较好的编程、自动化测试经验,熟悉测试流程、测试方法和技术,解决测试经理工作中可能遇到的各种技术问题。主要责任如下:负责系统一个或多个模块的测试工作。制订某个模块或某个阶段的测试计划、测试策略。设计测试环境所需的系统或网络结构,安装、设置复杂的系统测试环境。熟悉产品的功能、特性,审查产品规格说明书,并提出改进要求。审查代码。验证产品是否满足了规格说明书所描述的需求。根据需求文档或设计文档,设计复杂的测试用例。负责对测试工程师的指导,执行主管所交待的其他工作。。(4)测试实验室管理员测试实验室管理员主要负责建立、设置和维护测试环境,保证测试环境的稳定运行,其主要责任如下:负责测试环境所需的网络规划和建设,维护网络的正常运行。建立、设置和维护测试环境所需的应用服务器和软件平台。申请所需求的、新的硬件资源、软件资源,协助有关部门进行采购、验收,对使用实验室的硬件、软件资源的权限进行设计、设置,保证其安全性。安装新的测试平台、被测试的系统等。优化测试环境,提高测试环境中网络、服务器和其他设备运行的性能。(5)软件包构建或发布工程师发布工程师在QA工作中起着很重要的角色,负责测试产品的上载、打包和发布,其主要责任是:负责源程序代码管理系统的建立、管理和维护,文件名定义规范,建立合理的程序文件结构和存储目录结构,为程序的编译、连接等软件包构造建立自动处理文件。保证测试最新的产品包上载到相应的服务器上,并确认各模块或组件之间相互匹配。每天为各项目新的或修改的代码重新构造新的软件包。确保不含病毒,不缺图片和各种文件。软件包的接收、发送、存储和备份等。。(6)测试组长测试组长一般具备资深测试工程师的能力和经验,可能在技术上相对弱些,不是小组内最强的,其责任偏重测试项目的计划、跟踪和管理,同时负责测试小组的团队的管理和发展。(主要责任见书中详解。)(7)测试经理测试经理的主要工作在团队、资源和项目等管理上,不同于测试组长。测试组长主要集中在项目管理上,一般不负责测试人员的招聘、流程定义等管理工作,而且偏重技术。测试经理对产品的质量负全面责任,有责任向公司最高管理层反映软件开发过程中管理问题或产品中的质量问题,使公司能全面掌握生产和质量状况。(主要责任见书中详解。)10.2软件测试资源的获取途径软件测试工作随着软件产品开发的规范化、工程化已经越来越得到重视。要使得软件产品质量得到保证,并能在市场竞争中获胜,软件测试就显得尤为重要。要获得快捷可靠的软件测试资源,一般从正规的培训会议,相关的网站及从事软件测试的专业组织这三种途径中获取。10.2.1正规的培训会议一般获取软件测试资源是参加正规的培训会议。美国及世界各国一年之中都在召开类似的会议,这些会议为软件测试人员提供了良好的获取资源的机会,会议资料包括最基础的软件测试及技术含量极高的新技术。它提供了软件测试的同行进行面对面的交流,讨论解决的相关方案及策略.一般比较规范的会议有:(1)国际软件测试会议:由美国质量保证学会主办,由来自软件测试和质量保证行业的专家进行讲授。(2)软件测试分析和评审:由软件质量工程学会主办,会议讨论的焦点主要集中在软件测试和软件工程方面。(3)软件质量国际会议:由美国质量协会软件分会主办,也是提供从事软件测试和质量保证人士交流的机会。(4)软件测试国际会议:由软件质量系统主办,是关于软件测试方面的演示、指导、讨论和经验交流的会议。(5)软件质量世界会议:由国际软件质量协会主办,它是由学术及产业两个方面的顶尖专家组成,交流软件质量、软件过程改进及软件开发等方面的见解及经验。10.2.2相关的网络因特网上拥有关于软件测试的丰富信息。虽然搜索“softwaretesting”或着“softwaretest”总可以找到一些资料,但是下列网站可以作为入门向导:(1)BugNet()公布在商业软件中发现的软件缺陷,并指出相应的修复措施。(2)SoftwareTestingHotlist(~wazmo/qa)列出了许多与软件测试相关的网站和文章的链接。(3)SoftwareTestingOnlineResources(/~storm)自称“一系列软件测试联机资源……旨在成为软件测试研究者和从业者的门户网站。(4)QAForums()提供软件测试,自动化测试、测试管理、测试工具等主题的即时讨论。(5)comp.risks新闻组描述和分析近期的软件失败。10.2.3从事软件测试的专业组织从事软测试和软件质量保证的一些非商业性的组织,也是获取软件测试资源的一种途经,他们的网站提供了其专业范围的详细信息。(1)美国软件测试协会:是个非盈利性专业服务组织,专注于软件测试的理解和实践的推动。他们的文档提供了软件测试的丰富信息——强调实践而不是理论。(2)美国质量委员会:发表质量方面的刊物和文章,并管理认证质量工程师和认证软件质量工程师的任命。(3)美国计算机协会:已拥有教育和科学计算方面的80000多个会员。(4)软件质量委员会:其目标是成为那些志在把提高“质量”作为软件通用目标的人们的协会。10.3软件测试工程师的素质要求软件测试是一项复杂而艰巨的任务,软件测试工程师的目标是尽早发现软件缺陷,以便降低修复成本。软件测试员是客户的眼睛,是最早看到并使用软件的人,所以应当站在客户的角度,代表应用客户说话,及时发现问题,力求使软件功能趋于完善。很多比较成熟的软件公司都把软件测试视为高级技术职位。软件测试员的工作与程序员的工作对软件开发所起的作用是相当的。虽然软件测试员不一定是一个优秀的程序员,但是作为一个出色的软件测试员应当具备丰富的编程知识,掌握软件编程的基础内容,了解软件编程的过程,这无疑对出色完成软件测试任务具有很大的帮助。通常软件测试工程师应具备如下素质:1.具有较强的沟通能力优秀的测试工程师必须能够同测试涉及到的所有人进行沟通,具有与技术和非技术人员的交流能力。既要可以和用户谈得来,又能同开发人员说得上话,不幸的是这两类人没有共同语言。和用户谈话的重点必须放在系统可以正确地处理什么和不可以处理什么上,尽量不使用专业术语。而和开发者交流时,尽量要使用专业术语,这对用户反馈的相同信息,测试人员必须重新组织,以另一种方式表达出来,测试小组的成员必须能够同等地同用户和开发者沟通。2.掌握比较全面的技术就总体而言,开发人员对那些不懂技术的人持一种轻视的态度。一旦测试小组的某个成员做出了一个比较明显的错误断定,可能会被夸张地到处传扬,那么测试小组的可信度就会受到影响,其他正确的测试结果也会受到质疑。再者,由于软件错误通常依赖于技术,或者至少受构造系统所使用的技术的影响,所以测试人员掌握编程语言、系统构架、操作系统的特性、网络、表示层、数据库的功能和操作等知识,应该了解系统是怎样构成的,明白被测试软件系统的概念、技术,要建立测试环境、编写测试脚本,又要会使用软件工程工具。要做到这些,需要有几年以上的编程经验及及对技术和应用领域的深刻理解。3.做优秀的外交家优秀的测试人员必须能够同测试涉及到的所有人进行良好的沟通。机智老练和外交手法有助于维护与开发人员的协作关系,幽默感同样也是很有帮助的。测试人员应该把精力集中在查找错误上面,而不是放在找出是开发小组中哪个成员引入的错误。这样可以保证测试的否定性结果只是针对产品,而不是针对编程人员,也就是说要使用一种公正和公平的方式指出具体错误,这对于测试工作是有益的。一般来说,武断地对产品进行攻击是错误的。在遇到狡辩的情况下,一个幽默的批评将是很有帮助的。4.具有挑战精神优秀的测试工程师在开发测试用例时使用的方法,与勘探专家在一个山洞中摸索前进的方法一样。虽然周围可能存在大量死路,但是测试工程师要具有挑战性,会促使他们向山洞中的深处探索,向一切没有去过的地方前进,最终可能会有一个大发现。5.具有准确的判断力一个好的测试工程师具有一种先天的敏感性及准确的判断力,并且还能尝试着通过一些巧妙的变化去发现问题。同时,还具有强烈的质量追求,对细节的关注能力。应用的高风险区的判断力以便将有限的测试针对重点环节。6.做故障排除家可以想象,开发人员会尽他们最大的努力将所有的错误解释过去,测试人员必须听每个人的说明,但
本文标题:第10章_软件测试职业
链接地址:https://www.777doc.com/doc-4129655 .html