软件外包测试管理与实践
 

2009-02-25 来源:网络

 

本文围绕这一主题,主要从软件外包测试服务提供商的角度,探讨软件外包测试项目的管理方法及实践经验。为了便于读者阅读和理解,笔者将分计划、组织、领导、控制四个篇章来展开论述。

1. 软件外包测试管理之计划篇

1.1 灵活选择外包测试服务的方式及合同类型

实施软件外包测试首先要确定采取什么样的形式。目前外包测试服务提供商(以下简称“外包公司”)提供的服务方式主要包括“现场测试”和“外部测试”。“现场测试”是指外包公司派遣测试人员到发包方的公司现场工作,开展测试业务。而“外部测试”是指在外包公司将发包方的单子(相关待测产品)拿回本公司,组织测试人员开展测试业务。

二者看上去虽然只是场地差异,但如何选择另有深意。比如,“现场测试”一般适用于软件测试环境非常复杂、有极高的保密性要求、需要与开发团队密切配合的场合。而“外部测试”一般适用于开发商对外包服务商管理能力非常信任、软件功能相对稳定、开发和测试可以独立进行的场合。

除了要合理选择合作的形式外,选择适当的合同类型也是重中之重。适用于外包测试项目的合同类型一般有两种,即物料工时合同和固定总价合同。物料工时合同适用于范围不确定、进度不明确的外包测试项目,固定总价合同适用于范围、进度、技术要求均清晰明了的外包测试项目。读者朋友可以根据外包项目的特点酌情选择。此外,对于项目管理能力不成熟的外包企业笔者建议尽量多地选择物料工时合同,规避可能的风险。

总而言之,外包公司需要分析被测试软件的功能特点、测试要求、外包测试的成熟度,以及本公司的服务能力,与发包方协商选择最有效的外包测试服务方式,降低测试风险,提高测试的质量。

1.2 制定切合实际的外包测试计划

大型软件开发商具有成熟的软件外包测试管理能力,他们通常制订出外包测试计划。一些刚刚开始把软件测试外包的软件公司,他们经常希望外包公司为他们提供外包测试计划、设计测试用例、执行测试和报告测试结果等全部测试服务。

对于第一种情况,开发商已经制定了测试计划,外包公司需要全面理解测试计划的内容,根据外包测试的经验和被测项目的特点,提出测试计划的改进建议。包括测试范围、测试阶段的划分、测试资源、测试过程质量跟踪等方面。

对于第二种情况,外包公司需要开发商提供软件需求文档、软件设计规格说明、测试需求等文档,根据开发商的项目进度、外包费用、质量要求,结合本公司的服务能力(软件、硬件、团队和测试经验),制定切实可行的外包测试计划。根据客户对测试计划的评价和反馈进行更新修改,最终获得双方的正式审批。

2. 软件外包测试管理之组织篇

2.1组建有“战斗力”的测试团队

外包测试是智力密集型工作,测试团队的能力决定了测试的质量。测试团队的建设要考虑两个问题:第一是组织结构,包括需要多少测试经理、测试组长、测试工程师。第二是每个岗位需要的技能,例如测试技术经验、项目管理经验等。

由于软件外包测试受到项目成本和资源的制约,由测试专家构成的“梦幻团队”是不切实际的。有“战斗力”的团队是现实目标,由具有测试管理经验的人员担任测试经理,掌握测试技术和熟悉被测软件的人员担任测试组长,高级测试工程师、测试工程师和测试新人执行测试。

团队的“战斗力”指的整体的测试能力。具有“战斗力”的团队既可以保证测试质量,又可以控制测试成本,同时可以锻炼新人。测试团队的“战斗力”要靠测试经理、测试组长的有效交流,测试知识的有效传承,积极学习和总结实现。

2.2 合理组织外包测试工作的流程

任何软件外包测试项目都需要执行一系列紧密联系的过程,包括测试计划、测试策略、测试设计、测试执行、过程跟踪、测试验收、项目总结等环节。软件外包公司需要协助开发商明确每个流程的内容、任务、目标、方法。确定每个环节双方的任务,评估方法和提交方式。

测试流程的管理是软件外包测试管理的“重中之重”,根据管理的内容不同,可以分为:文档管理、配置管理、缺陷管理、进度管理、质量管理、资源管理、成本管理、变更管理等方面。外包测试流程管理需要开发商和外包公司共同制定和遵守测试流程,明确流程变更的条件和方法,杜绝测试的随意性和失控性,保证测试进度和质量的目标。

2.3 注意常规测试与随机测试相结合

本文的“常规测试”是指根据测试用例执行的测试,“随机测试”是指根据测试者的经验和软件的测试需求执行的测试。由于软件测试的复杂性,单纯靠执行测试用例发现缺陷,对于保证测试的覆盖性经常是不够的。因此,适当加强随机测试的方法,可以发现常规测试难以发现的缺陷,是对常规测试的有效补充

随机测试在什么阶段执行,执行多长时间,这些将影响测试的进度和成本,外包公司需要与开发商在测试计划阶段进行讨论,取得共识。一般在执行完测试用例之后,可以进行适当的随机测试。另外,在软件发布前的最后测试阶段,也需要执行随机测试。执行随机测试的人员通常是具有丰富测试经验,熟悉被测试软件的高级技术人员。

3. 软件外包测试管理之领导篇

3.1 坚持“单点联系”的信息交流

大型软件外包测试项目经常由分布在不同国家和地区的测试团队共同配合才能完成,对于一些测试周期比较长的项目,测试项目的进度管理需要有效的交流和沟通才能完成。

采用“单点联系”的方式有助于相关项目管理人员较好地完成“领导项目有条不紊地向前推进”的使命。

所谓“单点联系”,是指开发商和外包公司分别指定唯一的项目管理人员,作为双方项目信息的输入和输出接口,负责整个项目重要信息(要求、进度、问题等)的传递。这样不论开发商和外包公司多少人参与这个项目,双方信息交流的通道只有一条,避免多头交流的混乱,避免项目信息的冗余或丢失。

3.2 提高管理层的领导能力

所谓领导能力,不外乎三个方面,即“人格魅力”、“专业能力”和“合理授权”。

其中“人格魅力”是指负责外包测试项目的经理、小组组长必须能做到诚信、坦诚、光明磊落,尊重团队成员,决策民主、透明。另外,值得提醒的是,处于领导岗位的人要注意不要过滤一些重要的信息。某些“领导”,信息到他那里就截流了,也不管这些信息对团队成员是否重要,久而久之,这种对他人丝毫不信任的领导肯定会成孤家寡人。

“专业能力”是指处于领导岗位的人,对项目涉及的专业技术、技能要有足够的理解和把握。软件行业的人非常厌恶不学无术、媚上欺下、“外行指导内行”。好的领导应是技术上的领袖,如果不是,也应该尽力争取是。

“合理授权”就是指授权团队领导的时候,要慎重,要选拔德才兼备的人。一旦任命,就应让他/她放开手脚,不要事事过问,让别人成为事实上的傀儡。

4. 软件外包测试管理之控制篇

4.1 加强测试用例的执行结果分析

软件测试发现的缺陷很多来自测试用例的执行结果。加强测试用例的执行效率,分析测试用例的执行结果,是确定软件测试有效性的因素,也是跟踪测试进度的指标之一。

为了有效的评价测试用例的执行结果,通常把测试用例的执行结果分为四类:通过(Pass)、失败(Fail)、跳过(Skip)和受阻(Block)。“通过”的测试用例表明该测试用例可以执行,而且没有发现软件缺陷;“失败”的测试用例表明该测试用例可以执行,而且发现了软件缺陷;跳过(Skip)的测试用例表明该测试用例不适用于本轮测试而没有执行;“受阻”的测试用例表明本测试用例无法正常执行。

在外包测试执行阶段,需要重视测试用例的执行状态,分析“失败”的测试用例与发现的软件缺陷的对应关系,分析“受阻”测试用例的原因,以便及时更新,从而保证测试的充分性,为今后提高测试用例的有效性提供统计依据。

4.2加强缺陷生命周期管理

每个软件缺陷都要经过“报告、确认、修正、验证、关闭”的过程,这些过程构成了软件缺陷的生命周期。为了有效的管理软件缺陷,发包方和外包公司要使用同一个软件缺陷管理系统报告和处理缺陷。双方需要在测试计划阶段明确缺陷管理系统的使用规则,确定双方的使用权限和任务。一般外包公司负责缺陷的报告、验证和关闭,开发商负责确认、修正工作。

为了准确的报告缺陷,外包公司需要有经验的测试人员确认和报告缺陷,避免重复报告缺陷,排除错报的缺陷,及时处理缺陷的反馈。例如,对于发包方要求的补充更多信息的缺陷,尽快补充缺陷的细节。外包公司的测试人员在新的软件版本上,验证被开发人员修正的缺陷,如果新版本上不再复现,则关闭缺陷,否则再次分配给开发人员进一步修正。

4.3 做好每日报告/每周报告的进度跟踪

对于“内部测试”的外包测试项目,为了对软件外包项目的进度进行有效跟踪,在测试执行阶段,开放商需要外包测试公司提供项目执行的进展情况,保证测试按照测试计划的预定目标推进。

测试项目的“每日报告”或者“每周报告”是常采用的进度跟踪形式。“每日报告”是外包公司的“单点联系”人每天在下班前向发包方的“单点联系”人通过电子邮件等形式报告当日测试的执行情况,“每周报告”是外包公司每个周末报告一周来的测试执行情况。

选择“每日报告”还是“每周报告”,需要考虑测试项目的时间跨越长度、对测试进度和质量的要求严格程度,对于跨越不同国家的外包测试项目需要考虑到不同时差和节假日等因素。对于测试时间周期很长的项目,如果双方比较信赖,可以采用“每周报告”的形式。

4.4 做好项目总结和客户满意度调查

软件外包项目执行阶段结束后,进入了项目总结阶段,这个阶段的目标是总结项目执行的整体情况,肯定成绩,找出不足,提出改进目标和行动,以利于将来双方更紧密的合作。一般是发包方发送项目总结文档,外包公司填写内容,发包方补充内容,然后通过项目总结会议的形式进行总结。

客户满意度调查是外包测试公司为了征求发包方的建议,发现外包服务的问题,提高外包能力,在外包项目结束后而主动向客户(发包方)发送的调查表。这些调查表的内容经过仔细设计,发包方根据外包公司的服务能力进行填写,然后发送给外包公司。客户满意度调查的客户评价也是外包公司展示服务能力的有说服力的依据。

总之,有效的外包测试管理是保证软件测试项目按照进度、质量和预算顺利执行的重要环节,此过程需要软件开发商和软件外包公司通力合作,采用计划、组织、领导、控制等手段,组建高效团队,制定完善的测试流程,做好测试设计,有效执行测试,加强过程跟踪,从而顺利完成外包测试任务。


火龙果软件/UML软件工程组织致力于提高您的软件工程实践能力,我们不断地吸取业界的宝贵经验,向您提供经过数百家企业验证的有效的工程技术实践经验,同时关注最新的理论进展,帮助您“领跑您所在行业的软件世界”。
资源网站: UML软件工程组织