第一节 本地化测试概述
本地化测试是通过运行本地化软件来寻找和发现缺陷的质量控制过程,是对本地化软件进行质量控制的重要手段。若要为本地化测试下一个更详细的定义,则可以描述为,这项工作是根据软件本地化各阶段的测试计划和规范说明,精心设计一批测试用例(即输入数据及其预期的输出结果),并利用这些测试用例去运行本地化软件,以发现程序缺陷的过程。
本地化测试过程,是软件本地化服务商和软件开发商之间互相协作的软件质量保证活动。源语言软件和多语种本地化软件同时发布,已经成为大多数软件开发商常用的软件发布策略。在这样的情形下,源语言软件开发和软件本地化是同步进行的,因此本地化测试也将与源语言软件的测试保持同步。在本地化测试中发现的源语言软件的功能设计缺陷,需要交由软件开发商处理;而软件开发商也要将所知晓的源语言软件中的其他功能缺陷通知本地化服务商,以免因重复测试或报告相同的缺陷而影响测试效率。
一、本地化测试的原则
1、测试目的
本地化测试的目的在于发现和报告本地化软件的缺陷。对这些缺陷进行修正,可以确保本地化软件的语言质量、互操作性、功能等符合软件本地化的设计要求,满足当地语言市场用户的使用要求。对缺陷产生的原因和缺陷的分布特征加以分析,可以帮助项目管理者发现当前所采用的软件过程的缺陷,以寻求改进措施;同时,这种分析也能帮助设计出有针对性的检测方法,从而使测试的有效性不断得到提高。
本地化测试应该以尽可能少的时间、人力和软硬件资源,尽可能多地找出本地化软件中各种类型的缺陷。测试所要验证的,应包括本地化软件的功用和性能是否与源语言软件保持一致,本地化软件的语言质量、软件界面和文档内容是否符合当地语言市场用户的使用要求,是否符合当地特定区域的文化传统和风俗习惯。
软件的特点、测试方法和测试时间等因素,决定了本地化测试不可能以完全测试的方式进行。因此,即便经过了本地化测试,也并不能代表软件中不存在任何潜在缺陷,但是,有效的测试能够尽可能多地将比较严重的软件缺陷找出来。
2、测试原则
测试原则规定了测试过程中应该遵循的基本方法,具体到本地化测试,其原则包括如下几点:
*尽早且持续地进行软件测试。本地化测试不是软件本地化中的一个独立阶段,它贯穿于软件本地化项目的各个阶段。测试计划、测试用例等测试要素,要在本地化软件版本(Build)测试前准备好。一旦得到可以测试的软件本地化版本,应立刻组织测试,争取尽早发现尽可能多的缺陷。如果能够及早对出现的缺陷进行修正处理,通常可以大量减少后期修正缺陷所需的时间和人力。
*在经过本地化的软硬件环境中测试本地化软件。为了尽量符合本地化软件的使用环境和习惯,应该在已经本地化的操作系统上安装和测试本地化软件,使用当地语言市场的通用硬件,例如布局符合当地习惯的键盘等,这样才可以尽可能多地发现本地化软件中与区域语言、操作系统和硬件有关的兼容性问题。与此相应,为了便于参考和对比,也需要将源语言软件安装在源语言操作系统上。
*为了保证软件测试效果,软件缺陷报告、软件缺陷和软件缺陷修正验证等任务,应该由不同的软件工程师来处理。软件缺陷报告应该由测试工程师负责,软件缺陷修正应该由负责确认和处理缺陷的软件工程师负责,而软件缺陷修正后的验证和关闭则应该由软件缺陷报告者(测试工程师)负责。
*本地化测试的重点是发现软件因本地化而产生的缺陷,不必耗费过多的时间和精力去测试软件的功能,因为在本地化测试前,源语言软件已经进行过功能测试和国际化测试。故而,本地化测试的重点应放在检查本地化方面的缺陷,例如语言表达质量、软件界面布局以及本地化字符的输入、输出和显示等方面的问题。
*严格执行测试计划,防止测试的随意性。测试执行前,应对每一项测试做出周密计划,包括测试版本号、测试内容、测试平台、测试进度、资源要求、测试用例、测试流程、测试质量控制等。实际测试过程要符合测试计划和测试需求文档的要求。
*使用软件问题报告(Software Problem Report-SPR)数据库管理软件测试中的所有软件缺陷。对每一个本地化测试的项目,建立结构完整、功能丰富、使用方便的数据库,以便有效地完成对软件缺陷进行报告、查询、修正、存储的功能。
二、本地化测试的类型
本地化测试有多种分类方法,每种分类方法又包含多种测试类型,这些测试类型则分别完成不同的测试要求。
1、按测试对象分类
若按测试对象分类,本地化测试应分为软件程序测试(Software Testing)、联机帮助测试(Online Help Testing)及其他文档测试(Document Testing)。其中的其他文档,包括各种印刷手册、用户信息卡、产品包装材料和市场宣传材料等。
2、按测试阶段分类
若按测试阶段分类,本地化测试可分为软件版本验收测试(Build Acceptance Testing, BAT)、软件常规测试(Normal Testing)及软件最终验收测试(Final Acceptance Testing, FAT)3种类型。
软件版本验收测试又称为版本健全检测(Build Sanity Check, BSC),也称冒烟测试(Smoke Testing),是在尽量短的时间内对刚刚编译的新版本进行基本功能测试的过程。如果通过该测试,则可以按照测试计划要求,运行测试用例,进行大规模的软件常规测试。软件最终测试又称为软件交付测试(Delivery Testing),是本地化测试的最后阶段,一旦通过该测试,软件供应商就可以准备发布本地化软件了。
3、按测试方法分类
若按软件测试方法分类,本地化测试则分为手工测试和自动测试两种类型。
手工测试是指软件测试工程师通过安装和运行待测软件,根据测试文档的要求,运行测试用例,来观察软件运行结果是否正确的过程。
自动测试是指使用各种自动测试工具软件,通过运行事先设计的测试脚本等文件,测试待测软件,并自动产生测试报告结果的过程。
在软件本地化的实际测试过程中,应该根据被测软件的特点和测试要求,结合实际测试技术和现有测试工具,将手工测试与自动测试有机结合,保证软件测试质量和测试效率。
4、按测试特征分类
若按被测软件的测试特征分类,本地化测试可分为安装/卸载测试(Install/Uninstall Testing)、本地化语言测试(Linguistic Testing)、软件外观测试(Cosmetic Testing)、软件功能测试(Functionality Testing)这4种类型。
安装/卸载测试的任务是检测本地化软件能否正确地安装和卸载;本地化语言测试主要测试语言翻译是否正确、完整、一致;软件外观测试主要负责检查本地化软件的用户界面(例如对话框、菜单和工具栏)的布局是否完整、协调、匀称;而软件功能测试的任务则集中于测试本地化软件的功能是否与源语言软件保持一致,对于当地区域语言特有的功能是否正确,是否满足当地用户的使用要求等,例如,要测试亚洲语言的双字节字符支持功能,还要检查是否按照当地语言文字的列表排序,以及默认打印纸张大小和格式设置是否正确等。
软件本地化测试还有一些其他分类方法,还包括其他许多测试类型,例如兼容性测试(Compatibility Testing)、回归测试(Regression Testing)、随机测试(Ad-hoc Testing)等,它们分别完成软件的部分特征的测试。不同测试阶段,应该选择多种不同的测试方法结合使用,以保证测试的质量和效率。