摘要:软件测试是软件质量保证的一个重要组成部分,除了要具备一定的客观条件外,还受到许多主观因素特别是测试人员、组织和管理等方面的影响.在对这些主观因素以及软件测试软环境的构成与优化作了一些研究和探讨后,提出了一些可行性建议。
关键词:软件测试;单元测试;测试文档;
一、引言
软件测试作为软件开发的一个重要阶段,除了必须具备被测软件、测试工具、测试技术等一些必备的客观条件外,还受到测试人员、组织管理、测试策略等相关主观性较强的因素的影响。这些因素的综合作用——本文称之为软件的“测试软环境”,决定了软件测试的成败。
二、软件测试软环境的构成要素
1、测试人员
测试人员是软件测试的执行者,他们的素质将直接影响到软件测试的成败。软件测试是一项严谨的工作,一名优秀的软件测试工程师应具备以下的素质:
(1)沟通能力。测试者必须能够与测试涉及的所有人员(包括技术人员和非技术人员)进行沟通。由于人本身具有排他性,因此,当你试图从别人的程序中寻找错误或缺陷时,往往会遭到反对或对抗。测试者应尽量避免冲突和发生矛盾,要对每个人具有足够的理解和同情,具备了这种能力可以将测试人员与相关人员之间的冲突和对抗降低到最低程度。
(2)技术能力。由于开发人员对不懂技术的通常持一种不屑或轻视的态度,因此,一旦测试小组的某个成员作出了一个错误的判断,将直接导致他甚至整个测试小组的可信度降低,相反,则会大大增强测试人员的信心和测试工作的说服力。一个优秀的测试人员必须既明白被测软件系统的概念,又要熟悉并会使用相关的工具,而要做到这一点需要有几年的编程经验,只有通过这样的经验积累才会对软件的开发有更加深刻的了解。
(3)耐心。软件测试是一项非常烦琐的工作,很容易使人变得懒散,甚至烦躁不安。作为一个测试人员,你必须要有足够的耐心和自律能力,有时你需要花费惊人的时间去识别、排除一个故障,有些看似毫无成就的工作,往往就在你的苦思冥想后豁然开朗。
(4)兴趣和自信心。测试者应对自己所从事的工作具有浓厚的兴趣,对自己的观点有足够的自信,如果具备了这两点,那么在开发过程中,不管遇到什么样的困难,都能克服。
(5)怀疑与探索精神。一个软件从开发到投入使用通常要经历许多的循环往复,难免出现这样或那样的错误和缺陷,测试人员应具有叛逆心理,敢于怀疑,勇于探索,在可能的条件下,充分发挥自己的潜能,创造性地开展工作,力求寻找出软件中存在的故障。
(6)其它方面的素质。具有良好的判断能力,有一定的幽默感,逻辑思维敏捷等等。
2、组织与管理
(1)测试小组
由于软件故障的产生主要来源于软件需求分析、设计和编码阶段,因此,需求分析、软件设计和程序编码等各个阶段所得到的文档资料,包括需求规格说明书、设计规格说明书以及源程序都是软件测试的对象,而由此产生的测试组织与管理也是分阶段的,测试小组的人员组成方式也是不一样的。
需求分析阶段。这一阶段的测试人员应包括:用户、项目经理、系统分析员、软件设计、开发以及测试人员。他们需要进行多次讨论和协商来确定软件的功能,以此作为评价需求规格说明书的依据。
软件设计阶段。人员组成应包括:系统分析员、软件设计人员、测试负责人以及用户。这一阶段的主要工作是按照需求分析规格说明书的要求对系统结构的合理性以及过程处理的正确性进行审查,用户的作用在这一阶段不是非常突出。
软件测试阶段。软件测试作为保障软件质量的一个重要的手段,通常包含以下一些测试:单元测试、集成测试、确认测试、系统测试和验证测试。其中,单元测试由编程小组内部的编程人员交叉进行,其它测试工作则要由测试组来完成,此时,测试组成员的组成应包括:测试经理、测试技术人员、软件开发人员、相关技术支持人员以及用户。需要注意的是,在单元测试阶段,要严格杜绝编程人员测试自己编写的程序。
(2)测试管理
测试工作的管理,尤其是对于包含多个子系统的大型软件系统,其测试工作涉及大量的人力和物力,有效的测试管理是保证有效测试工作的必要前提。
首先,软件测试的有效实施需要测试组织与开发组织充分配合。虽然测试活动看似是对开发人员劳动成果的不断“挑剔”,但测试工作的出发点是:确保开发人员的劳动成果成为可被接收的、更高品质的软件产品。测试经理应在组织协调各组织工作方面发挥作用,并和他们一起工作,甚至对公司以外的个人和组织都是如此。测试经理在工作中所要处理的人员关系可用图1表示。此外,测试经理所处的职位要求他能提交日常主要工作的有关信息,如状态报告、测试计划、评估报告等,同时,还要根据当前的状态做出一些重大决策,这些决策可能会对整个测试过程产生一定的影响。
图1 测试经理的人际关系角色
其次,为确保软件测试在软件质量保证中发挥应有的作用,建立和完善软件测试管理体系是十分必要的。从软件工程的角度出发,软件测试管理所涉及的管理对象包含以下几个方面:
● 测试资源。包括对人员分配、工作环境、相关设施等的管理。
● 测试计划。根据资源配备情况,制定总体测试计划,确定各个阶段的测试目标和策略。
● 分析与设计。测试分析与设计就是确定测试目标并且如何以一种高效执行的方式组织测试的过程。这个过程需要根据测试计划选择合适的测试方案,设计出好的测试用例。
● 测试实施。测试实施是指测试人员根据测试计划,利用测试资源来运行测试用例以获得测试数据、开发测试规程的过程。这个过程涉及到测试环境的设置、测试数据的收集以及测试验证等具体的工作。
● 测试管理。测试管理作用于测试的各个阶段,其管理的对象包括测试组织的建立、测试过程的控制、测试计划和测试规程的制订与管理等等。
三、测试软环境的构建
1、测试人员
在一个测试小组中,并不是所有的测试人员都需要具有同样的技能,由于分工不同,他们所起的作用也不同。一般情况下,测试小组中测试人员的构成一般包括:
开发人员。最好的情况是:让开发人员去做单元测试,如果需要的话还可以让他们做集成测试。
用户。通常在测试阶段会给测试提供很好的帮助。
技术支持人员。熟悉软件产品的流程,与用户有更多的沟通,往往更能理解用户的想法。
QA人员。他们了解产品质量的重要性,对测试小组的工作是一个很好的补充。
技术文员。这是测试工作中必不可少的一个角色。由于工作的需要,他们关注测试过程中的很多细节问题,并按照要求完成相关的技术文档的编制,使得整个测试工作都有据可查。
.......
本文转载自51Testing软件测试网,查看全文:http://www.51testing.com/html/61/n-832461.html