求知 文章 文库 Lib 视频 iPerson 课程 认证 咨询 工具 讲座 Modeler   Code  
会员   
 
  
 
 
     
   
分享到
软件测试软环境的构建与优化
 
作者: 许学军 发布时间:2013-3-1
 

一、引言

软件测试作为软件开发的一个重要阶段,除了必须具备被测软件、测试工具、测试技术等一些必备的客观条件外,还受到测试人员、组织管理、测试策略等相关主观性较强的因素的影响。这些因素的综合作用——本文称之为软件的“测试软环境”,决定了软件测试的成败。

二、软件测试软环境的构成要素

1、测试人员

测试人员是软件测试的执行者,他们的素质将直接影响到软件测试的成败。软件测试是一项严谨的工作,一名优秀的软件测试工程师应具备以下的素质:

(1)沟通能力。测试者必须能够与测试涉及的所有人员(包括技术人员和非技术人员)进行沟通。由于人本身具有排他性,因此,当你试图从别人的程序中寻找错误或缺陷时,往往会遭到反对或对抗。测试者应尽量避免冲突和发生矛盾,要对每个人具有足够的理解和同情,具备了这种能力可以将测试人员与相关人员之间的冲突和对抗降低到最低程度。

(2)技术能力。由于开发人员对不懂技术的通常持一种不屑或轻视的态度,因此,一旦测试小组的某个成员作出了一个错误的判断,将直接导致他甚至整个测试小组的可信度降低,相反,则会大大增强测试人员的信心和测试工作的说服力。一个优秀的测试人员必须既明白被测软件系统的概念,又要熟悉并会使用相关的工具,而要做到这一点需要有几年的编程经验,只有通过这样的经验积累才会对软件的开发有更加深刻的了解。

(3)耐心。软件测试是一项非常烦琐的工作,很容易使人变得懒散,甚至烦躁不安。作为一个测试人员,你必须要有足够的耐心和自律能力,有时你需要花费惊人的时间去识别、排除一个故障,有些看似毫无成就的工作,往往就在你的苦思冥想后豁然开朗

(4)兴趣和自信心。测试者应对自己所从事的工作具有浓厚的兴趣,对自己的观点有足够的自信,如果具备了这两点,那么在开发过程中,不管遇到什么样的困难,都能克服。

(5)怀疑与探索精神。一个软件从开发到投入使用通常要经历许多的循环往复,难免出现这样或那样的错误和缺陷,测试人员应具有叛逆心理,敢于怀疑,勇于探索,在可能的条件下,充分发挥自己的潜能,创造性地开展工作,力求寻找出软件中存在的故障

(6)其它方面的素质。具有良好的判断能力,有一定的幽默感,逻辑思维敏捷等等。

2、组织与管理

(1)测试小组

由于软件故障的产生主要来源于软件需求分析、设计和编码阶段,因此,需求分析、软件设计和程序编码等各个阶段所得到的文档资料,包括需求规格说明书、设计规格说明书以及源程序都是软件测试的对象,而由此产生的测试组织与管理也是分阶段的,测试小组的人员组成方式也是不一样的。

需求分析阶段。这一阶段的测试人员应包括:用户、项目经理、系统分析员、软件设计、开发以及测试人员。他们需要进行多次讨论和协商来确定软件的功能,以此作为评价需求规格说明书的依据。

软件设计阶段。人员组成应包括:系统分析员、软件设计人员、测试负责人以及用户。这一阶段的主要工作是按照需求分析规格说明书的要求对系统结构的合理性以及过程处理的正确性进行审查,用户的作用在这一阶段不是非常突出。

软件测试阶段。软件测试作为保障软件质量的一个重要的手段,通常包含以下一些测试:单元测试、集成测试、确认测试、系统测试和验证测试。其中,单元测试由编程小组内部的编程人员交叉进行,其它测试工作则要由测试组来完成,此时,测试组成员的组成应包括:测试经理、测试技术人员、软件开发人员、相关技术支持人员以及用户。需要注意的是,在单元测试阶段,要严格杜绝编程人员测试自己编写的程序。

(2)测试管理

测试工作的管理,尤其是对于包含多个子系统的大型软件系统,其测试工作涉及大量的人力和物力,有效的测试管理是保证有效测试工作的必要前提。

首先,软件测试的有效实施需要测试组织与开发组织充分配合。虽然测试活动看似是对开发人员劳动成果的不断“挑剔”,但测试工作的出发点是:确保开发人员的劳动成果成为可被接收的、更高品质的软件产品。测试经理应在组织协调各组织工作方面发挥作用,并和他们一起工作,甚至对公司以外的个人和组织都是如此。测试经理在工作中所要处理的人员关系可用图1表示。此外,测试经理所处的职位要求他能提交日常主要工作的有关信息,如状态报告、测试计划、评估报告等,同时,还要根据当前的状态做出一些重大决策,这些决策可能会对整个测试过程产生一定的影响。

图1 测试经理的人际关系角色

其次,为确保软件测试在软件质量保证中发挥应有的作用,建立和完善软件测试管理体系是十分必要的。从软件工程的角度出发,软件测试管理所涉及的管理对象包含以下几个方面:

  • 测试资源。包括对人员分配、工作环境、相关设施等的管理。
  • 测试计划。根据资源配备情况,制定总体测试计划,确定各个阶段的测试目标和策略。
  • 分析与设计。测试分析与设计就是确定测试目标并且如何以一种高效执行的方式组织测试的过程。这个过程需要根据测试计划选择合适的测试方案,设计出好的测试用例。
  • 测试实施。测试实施是指测试人员根据测试计划,利用测试资源来运行测试用例以获得测试数据、开发测试规程的过程。这个过程涉及到测试环境的设置、测试数据的收集以及测试验证等具体的工作。
  • 测试管理。测试管理作用于测试的各个阶段,其管理的对象包括测试组织的建立、测试过程的控制、测试计划和测试规程的制订与管理等等。

三、测试软环境的构建

1、测试人员

在一个测试小组中,并不是所有的测试人员都需要具有同样的技能,由于分工不同,他们所起的作用也不同。一般情况下,测试小组中测试人员的构成一般包括:

开发人员:最好的情况是:让开发人员去做单元测试,如果需要的话还可以让他们做集成测试。

用户:通常在测试阶段会给测试提供很好的帮助。

技术支持人员:熟悉软件产品的流程,与用户有更多的沟通,往往更能理解用户的想法。

QA人员:他们了解产品质量的重要性,对测试小组的工作是一个很好的补充。

技术文员:这是测试工作中必不可少的一个角色。由于工作的需要,他们关注测试过程中的很多细节问题,并按照要求完成相关的技术文档的编制,使得整个测试工作都有据可查.

2、测试组织

由于软件的规模大小不一,软件测试的方法也比较多,因此,测试组织的构成形式也多种多样。表l列出了各种测试组织的一些优缺点。测试组织如何进行内部构造和设置职位,这在很大程度上取决于政策、企业文化、质量标准、成员的技术和知识水平,以及产品的风险。

表1 各种测试组织的优点和缺点

3、工作环境

对许多测试人员和管理人员来说,工作环境似乎不是最重要的问题,而且长期以来也没有得到重视,但测试人员所处的工作环境对他们的生产力和工作效果所起的作用是非常重要的。

测试人员为了完成他们的工作,需要有特定的基本需求,他们需要有一个自己的办公空间,能够方便地与小组中的其他人员进行交流而不互相干扰,在资源配置许可的情况下可以自由使用各项设施,所有这些条件的满足都会对整个小组的工作效率产生很大的影响。

四、测试软环境的优化

从测试软环境的构成来看,由于测试人员的主观性较强,测试管理和测试策略的灵活性较大,因此这几个方面都可以作为软环境优化的出发点,以提高软件测试的效率。

1、测试小组的优化

挑选合适的人员来从事适当的工作,这是每一个管理者都必须面临的挑战。事实上,由于很少有大学会设立软件测试方面的课程,因此,要在很短的时间里寻找到合适的软件测试员是非常困难的。通常情况下,优秀的软件测试人员都是经过长期的经验积累后由开发人员转变而来。另外,确定测试小组的其他人员也是要考虑的一个重要方面。

技能培训作为测试人员提高自身素质的重要手段,对整个测试工作的实施能够起到事半功倍的作用。在确定了测试小组的组成人员后,管理者有责任、有必要对他们进行相关的技能培训。这种培训包括:专业技能、业务知识、交流能力等。培训的方式可以采用指导、内部培训、由相关培训机构实地培训等多种形式

2、测试管理的优化

前面已经提到,对测试过程的有效控制是测试工作顺利进行的基础,而对测试工作的有效管理则是提高测试效率的有力保障。

(1)测试规范化

软件测试是一项相当烦琐的工作,必须加以规范,避免随意性。测试文档的编写就是测试工作规范化的一个重要组成部分。软件测试文档通常分为两类,测试计划和测试分析报告。测试计划用来指导一个测试过程,包括测试的目的、内容、策略、进度等,而测试报告则对测试的结果进行分析说明,指出软件所具有的功能以及存在的缺陷。通常情况下,软件测试文档规定了进行软件测试所必须具备的条件,这些条件作为测试资源必须在测试进行之前落实。

(2)管理制度化

测试管理是整个软件产品质量保证的一个重要组成部分,管理的制度化是保证有效测试工作的必要前提。由于测试工作长期以来没有受到足够的重视,几乎没有可供参考的、已实现的、完整的测试管理方面的资料。通常情况下,可以将管理工程的一些基本原理用于测试工作中,根据测试过程的进展情况,吸收其他组织或行业的先进经验,对整个测试工作进行计划和管理,使得一些行之有效的方法和机制逐渐制度化,进一步规范整个测试过程。

五、小结

长期以来,由于软件测试在软件开发中没有得到足够的重视,使得可遵循的测试规范尤其是测试管理方面的知识及相关资料非常缺乏,本文所提到的测试软环境及其构成要素在很多软件开发方面的书籍中有所提及,而在一些专门讲述软件测试的书中往往更多地注重讲解各种测试策略和测试方法。而忽略了组织与管理,随着人们对软件开发过程的认识逐渐加深,软件测试也越来越得到了应有的重视。




LoadRunner性能测试基础
软件测试结果分析和质量报告
面向对象软件测试技术研究
设计测试用例的四条原则
功能测试中故障模型的建立
性能测试综述
更多...   


性能测试方法与技术
测试过程与团队管理
LoadRunner进行性能测试
WEB应用的软件测试
手机软件测试
白盒测试方法与技术


某博彩行业 数据库自动化测试
IT服务商 Web安全测试
IT服务商 自动化测试框架
海航股份 单元测试、重构
测试需求分析与测试用例分析
互联网web测试方法与实践
基于Selenium的Web自动化测试
更多...