Google
      
发新话题
打印

漫谈软件测试工程师的角色定位

漫谈软件测试工程师的角色定位

漫谈软件测试工程师的角色定位

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

TOP

火爆软件测试行业介绍

火爆软件测试行业介绍2007-11-14 16:11软件测试的必要性已经完全为业内决策人士所接收。这是因为软件工业已经发展到了与其他主要工业相当的规模。经过十几年的发展,少数天才们手工作坊的世界已经转化为大工业生产的天下。由于就Java的流行,我们更看到了组装生产线的模式。

  在工业生产的传统行业里,测试是生产的有机组成环节,各道工序的测试、组装测试、出厂测试及致破坏性试验是生产目的实现的重要保证。

软件测试和硬件测试在实现上没有真正意义上的区别,在虚拟空间上的实现也不是软件测试独有的特征。

软件测试过程的主要部分在于模拟用户对软件产品的使用过程:

1、模拟最终用户通过WEB、GUI对软件的使用。(具体软件会有很多功能。另外测试还要模拟用户的误操作,好的软件系统应该能够应付误操作。)

2、模拟用户方操作系统,数据库、网络管理专家对软件进行安装、设置、移植(Installation, Configuration and Migration)。

3、模拟用户方软件程序员应用编程界面调用各种功能。(目前相当多的出厂软件产品不是可执行程序,而是API。)

4、模拟用户对软件使用说明的使用。

  软件测试的另一个方面是针对用户在正常使用软件可能遇到的麻烦进行测试、分析(High Avaiablility Test、Performance Test)。

  贯穿始终的测试活动则包括软件设计文档评估、测试规划、测试结果报告。
  软件测试是软件质量控制(QC,QA)的具体实现环节。把软件测试有效地组织进软件的生产流程,是软件质量控制规划的主要内容。

  质量控制是控制的一种;符合控制系统的一般规律。多重小闭环反馈控制是一种控制精度高并且对控制系统各模块品质要求低的一种控制方案。这种控制模式应用到软件生产上,就形成了对软件生产的分阶段测试。它最大限度的减少了开发者个人因素对软件生产的影响。这正是以北美为基地的大多数主要成规模软件生产商所引用的RUP (Rational Unified Process)。

  目前市场上流行大量的测试软件,较为有效的主要应用在Unit Test, Intergration Test, Regression Test 和 Performance Test 等几个方面。

  在Unit Test and Intergration Test 方面, 在网络上有免费的“软件测试工具包”可以帮助测试人员结构测试框架,用于测试JAVA API。使用者要求具备WebLogic, Websphere, TomCat或其它WEB 服务器平台软件的知识。

  在Regression Test 方面,市场上有众多的capture-playback 类型的测试软件如Win Runner, Rational Robot, Rational JRobot, etc. 这类工具易学易用。要想使用这类工具实现测试目的,使用者依然需要对被测软件本身有深入的了解。

在 Performance Test 方面, 市场上有模拟多用户类形的测试工具如LoadRunner,Side Tester。还有分析memery leak形的JProbe。在网络上也有免费的“软件测试工具包”可以帮助测试人员结构测试框架,但主要是针对以Java实现的应用软件。
中国最大的软件测试空间欢迎你登陆:www.btestingsky.com

TOP

发新话题