软件本地化外包测试流程分析
 

2009-05-15 作者:崔启亮 来源:网络

 

经济的全球化促进了软件产业的国际化,软件国际化生产和全球服务成为更多国际软件公司的发展策略。软件产品要获得更多的国际市场份额,必须进行软件国际化设计、开发、测试和服务。

按照国际化要求生产的软件称为国际化软件,从实现技术和生产过程分析,国际化软件包括软件国际化和软件本地化两个相辅相成的环节。软件国际化保证软件具有“全球可用”的内在特征,而软件本地化可以满足目标市场的用户在语言、文化和功能的需要。

一、国际化软件开发流程

对于国际化软件而言,完整地开发周期将包括需求分析、国际化、本地化、发布和维护等过程。其中国际化包括设计、开发和测试等,在国际化的各个环节都要重视软件的本地化能力。

国际化软件的开发流程包括开发国际化软件需要遵循软件工程的要求,分为需求分析、软件设计、软件编码、软件测试、质量保证、软件发布等过程。国际化软件的开发流程如下图所示:


在需求分析阶段,既要考虑软件的功能需求,也要考虑软件的国际化需求。另外,为了缩短源语言开发的版本和本地化版本的发布时间间隔(甚至达到同步发布),国际化版本的开发应该与软件本地化过程同时进行。在测试方面,对国际化版本的国际化功能测试和对本地化版本的本地化测试尽可能同时进行,以便尽早发现和修改国际化设计错误。

二、软件本地化测试阶段

软件本地化是国际化软件开发的一个重要阶段,软件本地化是将一个软件产品按特定国家 / 地区或语言市场的需要进行加工,使之满足特定市场上的用户对语言和文化的特殊要求的软件生产活动。

为了保证本地化软件在语言、外观和功能方面符合本地用户的最终需要,需要再国际化软件生产过程中后期的软件本地化阶段进行本地化测试。

一个本地化测试项目可以按照时间顺序分解成四个阶段:启动阶段、计划阶段、实施阶段和收尾阶段,这些阶段相互衔接,分别完成不同的任务。各个阶段都要围绕保证测试效率和测试有效性,从而保证测试质量。

软件本地化各个测试阶段的流程图如下图所示。

1、启动阶段

启动阶段是软件本地化测试的第一个阶段,本地化测试公司需要与客户一起定义测试范围、详细测试需求、项目预算和测试进度。在分析测试需求时,要与客户讨论影响项目成功的关键因素并且双方达成一致。对客户提供的测试计划进行分析并对具体问题进行及时反馈和确认,或者根据客户的项目要求创建测试计划并且请客户确认。

2、计划阶段

计划阶段是为执行软件本地化测试的准备阶段,准备的内容包括配置测试环境、构建正确掌握测试技能的团队。分析和确定项目的里程碑,对可能导致测试项目失败的各种要素进行风险分析,各个测试人员明确责任任务和评估方法,约定测试项目进度的报告机制。“良好的开端等于成功的一半”,这些措施都是为了确保项目按照清晰目标和充分的测试资源而实施。

3、实施阶段

实施阶段是具体执行软件本地化测试,报告软件缺陷和测试进度的阶段,这一阶段执行的好坏直接影响到测试的质量和进度,是本地化测试的关键阶段。

测试工程师和测试组长仔细地、探索性地执行测试用例。除了根据测试用例执行测试外,还要借助测试经验和软件的特征执行相应的随机测试,以便发现测试用例没有覆盖到的潜在的重大缺陷。每天或约定的时间内向客户报告测试发现的缺陷、测试存在的问题和实际测试进度,使软件测试与客户的软件开发进程无缝集成。

4、收尾阶段

不要以为软件实施阶段完成后就“万事大吉”了,在测试的收尾阶段仍然有很重要的工作需要完成。其中的任务之一就是所有测试团队的成员要与客户进行项目总结,评价项目的成败得失,肯定优点,找出不足,分析原因,进行改进,这是一项严肃的、全员参与的活动。除此之外,需要备份项目的文档、邮件和缺陷,归还租用的计算机或其他设备和软件,释放各种项目有关的用户帐号。

三、软件本地化测试流程

软件本地化测试需要本地化服务公司的项目经理、测试主管(组长)、测试经理和客户(软件开发商)分工协作共同完成。在测试项目的不同阶段,分别对应不同的工作内容,使用不同的测试文档。在所有阶段,测试团队内部,测试团队与客户的双向有效交流是非常重要的。

为了简化对本地化测试项目的流程分析,我们将测试项目的启动阶段和计划阶段合二为一,称成为测试准备阶段,这样可以把本地化测试划分成准备阶段、实施阶段和结尾阶段。下面对每个测试阶段的测试流程分别讨论。

1、准备阶段

本地化测试项目可以分为两大类,一类是“ Turnkey ”项目,即软件的本地化翻译、测试、排版都是由一家本地化公司完成的;另一类是“ Testing only ”项目,即执行本地化测试的本地化公司只负责本地化测试,而软件本地化翻译是由其它公司完成的。

对于“ Turnkey ”项目的本地化测试,需要测试部门和至少一个其它部门一起参与,包括本地化项目经理和测试部门与客户参与;而对于“ Testing only ”项目,可以由测试部门与客户直接联系即可,测试主管或测试经理承担起到项目管理的功能。

测试项目设置的内容包括设置缺陷跟踪管理系统、创建项目状态报告、设置本地化项目管理系统等。

在准备阶段,测试经理需要评估测试工作量、估计测试时间。基于对测试工作量和估计的时间的分析,可能需要及时向客户报告,并请客户确认测试范围等相关信息。对于最终项目进度,需要测试主管、测试经理和本地化经理交流、达成一致。

测试计划是主要的测试文档,可以参考测试术语表创建。测试计划的作者不能自我审阅测试计划,必须有测试主管或测试经理进行审阅,并且请客户最终确认。

在创建测试用例之前,需要列出测试的全部功能区域,分别进行测试风险分析和确定测试的优先级,并且报请客户或测试经理批准。

创建测试用例是准备阶段的另一项主要工作,可以手工创建或者使用测试管理工具自动创建。创建的测试用例首先必须至少一位测试主管审阅批准,然后请客户最终批准。

准备和设置测试环境包括软件、硬件和网络环境,根据公司实际情况,可以采用购买、租赁或借用的方式。

测试人力资源是另一个重要测试资源,需要创建人力资源需求曲线文档,列出测试个阶段需要的测试人员,理想情况下,要保持测试人员的稳定性。

为了提高测试技能,需要由掌握丰富的测试经验的测试人员或者客户对测试人员进行培训。如果时间允许,应该是测试团队的所有人员增加彼此的了解,方便今后及时和有效的沟通。

本地化准备阶段的流程如下图所示。

2、实施阶段

测试实施阶段是测试最重要的阶段,也是耗时最长的阶段,大型本地化测试需要在多个不断晚上的本地化版本上循环进行测试。

根据项目不同,从工程、项目经理或客户出向测试部门传递和提交测试使用的软件 Build 和测试用例等内容。

测试部得到新的被测试 Build 后,首先执行版本可接受测试 (BAT) ,如果满足测试的要求,则进入常规的测试阶段;如果 Build 存在很大问题,例如无法安装、主要功能失效等,则需要及时报告给客户,要求重新编译新的 Build 。

测试执行按照测试计划和测试用例进行,书写缺陷报告,向客户指定的软件缺陷跟踪管理系统报告软件缺陷。

本地化服务公司测试团队每周对软件测试内容和报告的缺陷进行内部质量保证( QA ),对于质量保证发现的问题,需要报告给质量经理和 / 或测试经理,并且及时采取纠正措施。

与此同时,客户方的质量工程师也进行外部的跟踪和检查,对于客户发现的任何测试问题,本地化测试团队需要认真分析,及时采取纠正措施。所有的纠正措施都要经过各方讨论,形成纠正措施报告由测试经理签字确认。

在测试过程中,跟踪最初估计的测试时间和实际测试占用的时间,采取必要的措施是测试进度尽量满足测试项目最初设定的进度。对测试的软件缺陷进行分析,度量测试覆盖率和测试的有效性。

对于测试过程中发现的一些问题需要及时向客户报告并得到确认。

测试实施阶段流程如下图所示。

3、收尾阶段

测试项目收尾阶段是对项目进行总结,备份项目文档的阶段。

项目总结需要客户和本地化公司双向进行,本地化测试主管与测试人员就测试项目遇到的问题进行分析和总结,包括文档问题、进度问题、技术问题和交流问题。

客户根据对整个测试项目的跟踪,总结好的测试方法,指出测试存在的问题,分析原因,找出可能的改进方法,以便下一个项目借鉴。

本地化公司和客户要把测试项目总结形成正式的书面报告,通常客户在项目结束后,发送一个测试总结报告的模板文件给本地化公司。,本地化公司的测试经理征求测试人员的建议和意见,填写详细内容,发送回客户。

客户对每一条建议进行审阅并反馈,形成最终的项目总结报告( Post-Project Review, PPR ),发送给本地化公司的测试经理、项目经理、测试主管和客户方的有关人员。

测试经理和测试人员分别备份测试项目的重要数据,这些数据可能散布于网络上,例如测试文档、测试 Build 、邮件和缺陷跟踪库的软件缺陷等。

收尾阶段流程图如下图所示。

四、本地化测试质量控制流程分析

为了保证软件本地化测试的质量,需要对软件测试过程和软件测试结果进行检测和评估。

对测试过程的检测保证测试的内容符合测试计划的要求,例如测试过程是否运行了全部需要的测试用例,是否根据测试计划和测试用例执行了测试。

对软件测试结果的质量控制活动主要在于检测测试过程中报告的软件缺陷是否准确,是否有无效的缺陷,是否遗漏了重要的缺陷。

为了使软件测试的质量控制( QC )过程更好的进行,应该由独立于当前项目的第三方人员执行,以保证评估结果的公正性、客观性。例如,项目组 B 的人员对项目组 A 的测试过程和结果实施质量控制。

软件测试质量控制的流程图如下所示。

测试主管使用电子邮件等形式通知 QA 人员,由质量保证经理向其它项目组安排测试任务,如果质量经理无法完成多个项目,需要增加 QA 人员。

QA 任务的详细内容包括:开始和结束 QA 的日期和时间,用于缺陷 QA 的缺陷报告规范文档,测试人员、软件语言和测试平台等全部 QA 信息。

很多公司没有足够多的专职质量控制人员,而且经常是多个测试项目同步进行,留给测试质量控制过程的时间很有限,质量控制人员没有足够的时间和精力执行具体的检查,另外,由于有丰富测试经验的质量控制人员数量较少,因此,实际测试项目中,专职质量控制人员(质量经理)经常起到组织和牵头的作用。

QA 过程中发现的任何缺陷都应该向项目测试主管报告并确认, QA 人员将结果输入到 QA 管理系统后,应该及时发送电子邮件告知测试主管关于本次 QA 的编号 ID 和 QA 结果的等级。

纠错报告必须内容完整,并且由测试工程师、测试主管、 QA 经理和测试经理签名。每周向测试部门和质量部门发送本周的 QA 结果报告。

测试主管使用电子邮件等形式通知 QA 人员,由质量保证经理向其它项目组安排测试任务,如果质量经理无法完成多个项目,需要增加 QA 人员。


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