天天看点

软件本地化测试项目案例研究

际化软件公司在实施多语言的软件本地化测试时,将每个语言的软件本地化测试分别外包给不同的单语言本地化服务公司 (SLV) 。对于单语言本地化服务公司而言,执行母语是软件本地化语言的本地化测试是他们的强项。

一、项目概述

某软件开发公司是世界领先的设计和数字资源提供商, 开发的机械设计行业的应用软件经过简体中文本地化处理后,外包给中国的本地化服务公司执行简体中文的本地化测试。

测 试跨度 3 个月,测试平台为 Windows 2000 Professional + SP4 , Windows XP Professional + SP2 , Windows XP Home + SP2 。测试内容包括安装 / 卸载测试、本地化应用程序和文档测试。测试方法包括手工测试和自动化测试(使用 SilkTest 作为自动化测试工具)。

软件开发公司的软件本地化工程部门提供测试计划、测试进度、测试软件 Build 和测试缺陷跟踪数据库。本地化服务公司的测试部门执行具体的本地化测试,报告缺陷和测试进度。这是本地化服务公司首次为客户提供基于 SilkTest 的自动化测试服务。

二、测试策略

1.测试团队

本 测试项目测试内容复杂、测试周期较长、测试的软件专业性较强、测试的类型较多,所以本地化服务公司组建了梯队完整的测试团队,成立了两个测试小组:手工测 试组和自动测试组。每个测试组分别由一名测试组长和 2 名测试工程师组成,任命一名测试经理,对内管理两个测试组,对外负责与客户交流。具体的执行测试由测试组长安排测试工程师完成。

2.测试培训

由 于本地化服务公司是首次为客户提供基于 SilkTest 工具的自动化测试,需要掌握测试工具的使用,测试脚本问题的调试和修正,还要将该测试工具与被测试软件的测试需求紧密结合。所以,软件开发上的高级本地化 技术人员,结合本测试项目的需要,来中国为自动化测试组进行专项培训。

3.缺陷管理

为 了提高软件测试发现的缺陷的有效性,避免重复报告缺陷,本地化服务公司使用内部缺陷管理库(内部库)报告测试缺陷。指派一名有经验的高级测试工程师确认报 告的缺陷是有效的、不重复的,然后将新缺陷报告到软件开发公司提供的基于因特网的缺陷跟踪数据库(外部库)中。当外部库的缺陷状态发生改变后,高级测试工 程师更形内部库对应缺陷的状态内容,使两个库保持同步。

三、解决方案

本地化服务公司的专业测试团队与软件开发公司的质量保证 (QA) 团队密切合作,遵照测试计划、测试进度、测试用例,执行软件测试、跟踪和控制测试进度。

1.构建可复用、便捷的测试环境

由于需要多次测试本地化的多个版本,而且测试文档中要求每次都要在“干净”的操作系统(即仅安装了操作系统,没有安装其它应用程序的计算机)上进行测试。如果每次重新格式化计算机硬盘,再安装不同的操作系统,则需要花费较多的时间。

因此,可以使用硬盘内容备份和恢复工具软件(例如, Norton Ghost ),将安装了干净的操作系统的计算机硬盘内容进行保存和恢复。这样可以在一台计算机上保存多个不同的干净的操作系统,可以很快地恢复需要的操作系统。

为了便于测试组的各个测试工程师方便的使用各个干净的操作系统的备份,可以将这些备份放在一个公共的测试计算机上,只要各个测试人员使用的测试计算机具有相同的硬件配置,就可以随时方便地恢复需要的操作系统了。

本 地化测试尤其是手工测试,在发现本地化软件的缺陷时,经常需要对比源语言软件,以判断该缺陷是本地化软件特有的,还是来自于源语言软件的继承错误。因此, 为了比较方便的进行比较测试,每个测试工程师配置了 3 台计算机,一台用于安装本地化软件进行测试,一台用于安装源语言软件进行测试对比参考,一台用于日常工作交流(阅读测试文档、填写缺陷报告、发送电子邮件 等)。

2.按照测试文档执行测试

测试开始前,软件开发公司发送测试计划、测试进度、测试用例等文档给本地化服务公司,本地化服务公司根据测试文档的要求,组建测试团队,培训测试团队成员。

由 于源语言软件一边开发一边进行本地化,所以需要测试多个本地化版本,而软件测试文档可能在测试早期创建完毕,因此,有时会出现测试文档的内容和本地化软件 的组成和功能可能不一致。此时,如果不能确定是测试文档的描述错误,还是软件的设计错误,需要向软件开发公司报告,请他们确认并更新测试文档。

3.测试分工和合作

虽 然自动化测试组和手工测试组测试的任务和方法不同,但是两个团队之间仍需要经常交流。例如,在获得测试新 Build 后,首先要执行自动化测试的“ Build Check (版本检查)”的测试,以确定 Build 是否可以用于全面的常规的测试。通过“ Build Check (版本检查)”后,手工测试组可以开始常规测试。

自动化测试组和手工测试组还需要交流发现的缺陷,可能自动化测试发现的一些软件缺陷(例如,在执行“ Automation UI (自动化用户界面)”测试时),手工测试组已经报告过了,这时候自动化测试工程师就没有必要重复报告相同的缺陷。

不同的测试阶段,自动化测试组和手工测试组的测试任务和忙碌程度不同,因此,如果一个组的测试任务非常紧张而另一个组比较空闲,则可以相互支援。要做到这一点,要求测试工程师掌握自动化测试和手工测试技术。

4.缺陷管理和进度管理

本 地化服务公司的测试团队指定一名高级测试工程师负责确认报告的缺陷,保持内部和外部缺陷数据库保持内容同步。软件开发公司的质量保证工程师经常更新外部数 据库的缺陷状态(例如,缺陷被修正了,或者缺陷无法重复,需要测试人员补充信息等),有时候要求验证几个特别的缺陷,这时候本地化服务公司的测试人员应该 及时处理这些变更和请求。

测试经理每周五负责收集和整理测试进展情况,更新测试进度文档,然后向软件开发公司发送本周测试进度报告。对于测试过程中发现的影响测试的问题,测试经理可以通过电子邮件、电话、即时通信软件等方式与软件开发公司联系。

四、测试小结

经过本地化服务公司和软件开发公司的协调合作,按照测试进度和测试质量要求,完成了全部测试内容,使得简体中文的本地化软件和其它语言的本地化软件与源语言的英文软件同步发布了。

该测试项目的成功地关键在于四个方面:

  • 软件本地化服务公司组成了自动化测试和手工测试两个组,既分工明确,又互相配合;
  • 使用内部和外部两个缺陷管理库同步管理缺陷,提高了缺陷的有效性;
  • 软件开发公司为本地化公司提供了现场自动化测试技术培训,提高了测试工程的测试技能;
  • 本地化服务公司的项目经理和软件开发公司的顺畅交流,使项目测试过程的紧张情况处于可跟踪和可控制状态。