软件系统的本地化测试 2.docx
《软件系统的本地化测试 2.docx》由会员分享,可在线阅读,更多相关《软件系统的本地化测试 2.docx(16页珍藏版)》请在冰豆网上搜索。
软件系统的本地化测试2
摘要
软件本地化技术的发展,促进了专业语言服务商业语言翻译到软件本地化的转变。
20世纪90年代后期,因特网技术和软件设计技术的进步,软件本地化行业以平均增长30%的速度蓬勃发展。
软件技术的进步推动了软件本地化行业的发展。
它是随软件全球化的产生而产生。
所以本地化测试带有全球化的特性,该特性就决定了本地化测试的生命周期,也决定了本地化测试的发展前途和发展速度。
本文主要介绍了本地化软件测试的概念,本地化软件测试的前景,本地化软件测试与普通的软件测试之间的区别,本地化测试的目的和原则,本地化测试的主要测试内容,有什么测试策略,本地化软件经常出现的错误及产生错误的原因,本地化测试的模型分类,本地化测试的方法,如何写错误报告,如何用工具上报错误。
同时,本文还给出了部分例子,及一个报告错误用的软件的用法。
由于工作环境多在英文环境中,所以,后面涉及到实际工作的东西多用英文描述。
关键字:
软件测试,本地化,测试方法,错误报告
目录
前言1
第一章软件本地化和本地化测试基础2
1.1软件本地化2
1.2本地化测试2
1.3本地化测试和一般测试的区别3
1.4本地化测试的特点3
1.5本地化测试的目的和原则5
1.5.1测试的目的5
1.5.2测试的原则6
1.6软件本地化测试模型8
第二章测试本地化软件9
2.1本地化软件测试的主要内容9
2.2本地化软件测试策略10
2.3本地化软件错误典型类型13
2.4本地化软件测试具体方法15
第三章错误报告(BugReport)20
3.1如何写错误报告20
3.2如何报告错误25
参考文献27
致谢28
前言
软件本地化测试是软件本地化项目的一个重要组成部分,在软件行业,尤其在与国际接轨的当今,已越来越受到重视。
当某个公司或者机构希望将其产品和服务推广到本土以外的地方时就少不了“本地化”的环节。
软件本地化测试是一个工程系统,包含多个紧密联系的环节和内容。
软件本地化测试作为保证软件本地化质量和可靠性的技术手段,随着软件国际市场的激烈竞争和软件用户对质量要求的不断提高,软件本地化测试在软件本地化项目中的作用更加突出。
软件本地化测试的关键在于软件供应商(SoftwareProvider)和本地化提供商(LocalizationVendor)对测试的高度重视,包括测试资源、测试文档、测试流程、测试方法和测试管理等方面有效准备和正确实施。
软件本地化测试是由软件本地化提供商和软件供应商互相协作的软件质量保证活动。
源语言软件和多种语言本地化软件同时发布,已经成为大多数软件提供商追求的软件发布策略。
因此,软件本地化测试将与源语言软件的测试保持同步。
在软件本地化测试中发现的源语言软件的功能设计错误,需要由软件供应商处理。
软件供应商已知得其他源语言软件的功能错误,需要通知本地化服务商,以免重复测试和报告相同的错误,影响测试效率。
第一章软件本地化和本地化测试基础
1.1软件本地化
“本地化”在我们中国,更多的称为“汉化”,或者“中文化”。
大家知道,国外大型软件公司的产品最先绝大多数都是使用英语环境开发的,如果要在国际市场上销售,由于各国语言不同,为了满足当地用户的语言和文化传统等习惯,需要把英文的软件进行语言转换和工程技术处理,最后做成不同语言的软件版本来,这个过程就成为“本地化”。
所以,软件本地化是对原始语言(例如,英文)开发的软件进行语言转换和工程处理,生成不同语言版本的技术。
1.2本地化测试
简言之,“本地化软件测试”就是在本地化的操作系统上测试本地化软件,例如在简体中文WindowsXPProfessional上测试简体中文的Word2003。
本地化测试的对象是软件的本地化版本。
本地化测试的环境是在本地化的操作系统上安装本地化的软件。
从测试方法上可以分为基本功能测试,安装/卸载测试,当地区域的软硬件兼容性测试。
测试的内容主要包括软件本地化后的界面布局和软件翻译的语言质量,包含软件、文档和联机帮助等部分。
1.3本地化测试和一般测试的区别
软件本地化测试的测试对象是本地化的软件,需要在本地化的操作系统上进行。
虽然本地化的软件是基于源程序软件创建的,但二者的测试内容和重点具有很大的不同。
一般地来说,软件本地化测试和软件测试的主要不同点在于:
(1)测试顺序不同。
首先要现对源程序软件进行测试,然后再创建本地化软件,测试本地化软件。
(2)测试内容和重点不同。
源程序软件主要测试功能和性能,结合软件界面的测试。
本地化软件的测试,更注重因本地化引起的错误,例如,翻译是否正确,本地化的界面是否美观,本地化后的功能是否与源语言软件保持一致。
(3)测试环境不同。
源程序软件测试通常在源语言的操作系统上进行。
本地化软件在本地化的操作系统上进行。
本地化测试过程中,需要同时运行源程序软件和本地化软件,依照源程序软件结果作为本地化软件的主要参考。
1.4本地化测试的特点
本地化测试具有软件测试的一般特征,在此不再赘述,下面说一下其特有的特征:
(1)本地化测试对语言的要求较高。
不仅要准确理解英文(测试的全部文档,例如测试计划、测试用例、测试管理文档、工作邮件都是英文的),还要使用本地化母语人员进行本地化测试,例如测试简体中文的本地化产品,我们中国大陆人完全胜任。
而测试德语本地化软件,需要母语是德语的测试人员才能满足要求。
(2)本地化测试以手工测试为主,但是经常使用许多定制的专用测试程序。
手工测试是本地化测试的主要方法,为了提高效率,满足特定测试需要,经常使用各种专门开发的测试工具。
一般这些测试工具都是开发英文软件的公司开发人员或测试开发人员开发的。
(3)本地化测试通常采用外包测试进行。
为了降低成本,保证测试质量,国外大的软件开发公司都把本地化的产品外包给各个不同的专业本地化服务公司,软件公司负责提供测试技术指导和测试进度管理。
(4)本地化测试的缺陷具有规律性特征。
本地化缺陷主要包括语言质量缺陷、用户界面布局缺陷、本地化功能缺陷等,这些缺陷具有比较明显的特征,采用规范的测试流程,可以发现绝大多数缺陷。
(5)本地化测试特别强调交流和沟通。
由于实行外包测试,本地化测试公司要经常与位于国外的软件开发公司进行有效交流,以便使测试按照计划和质量完成。
有些项目需要每天与客户交流,发送进度报告。
更多的是每周报告进度,进行电话会议,电子邮件等交流。
此外,本地化测试公司内部的测试团队成员也经常交流彼此的进度和问题。
(6)本地化测试属于发展比较迅速的专业测试。
由于中国属于较大的软件消费市场,国外大的软件公司为了在中国获得更多的软件销售利润,越来越多的软件都要进行中文本地化。
另一方面,中国成为新兴的软件外包服务提供国,国外公司逐渐把软件外包测试放在中国进行。
这样,本地化测试就不断发展起来,目前中国很多大型本地化服务公司的本地化测试业务都呈现稳定增长的态势。
1.5本地化测试的目的和原则
1.5.1测试的目的
软件本地化测试的目的是为了发现和报告本地化软件的错误和缺陷。
通过对这些错误和缺陷的处理,确保本地化软件的语言质量、互操作性、功能等符合软件本地化的设计要求,满足当地语言市场用户的使用要求。
通过分析错误产生的原因和错误的分布特征,可以帮助项目管理者发现当前所采用的软件过程的缺陷,以便改进。
同时,这种分析也能帮助设计出有针对性地检测方法,改善测试的有效性。
软件本地化测试的目标是以最少的时间、人力和软硬件资源,找出本地化软件中的各种类型的错误和缺陷。
测试应该能验证本地化软件的功能和性能与源语言软件保持一致,本地化软件的语言质量、软件界面、文档内容等符合当地语言市场用户的使用要求,符合特定区域的文化传统和风俗习惯。
软件的特点、测试方法和测试时间等因素,决定了软件本地化测试,不可能进行完全测试。
因此,经过软件本地化测试,无法表明软件中不存在潜在的错误,但是有效的测试能够发现尽量多的比较严重的软件错误。
1.5.2测试的原则
测试原则规定了测试过程中应该遵循的基本方法,软件本地化测试的原则如下。
尽早地和不断地进行软件测试。
软件本地化测试不是软件本地化的一个独立阶段,它贯穿于软件本地化项目的各个阶段。
测试计划、测试样例等测试要素要在测试本地化软件版本(Build)前准备好。
一旦得到可以测试的软件本地化版本,立刻组织测试。
争取尽早发现更多的错误,把出现的错误在早期进行修复处理,减少后期修复错误时耗费过多的时间和人力。
在本地化软硬件环境中测试本地化软件。
为了尽量符合本地化软件的使用环境和习惯,应该在本地化的操作系统上安装和测试本地化软件,使用当地语言市场的通用硬件,例如当地布局的键盘等,这样可以发现更多的本地化软件的区域语言、操作系统和硬件的兼容性问题。
为了便于参考和对比,需要将源语言(例如英语)软件安装在源语言操作系统上。
软件错误报告、软件错误修复和软件错误修复验证应该由不同的软件工程师处理。
为了保证软件测试效果,软件错误报告应该由测试工程师负责,软件错误修复应该由负责错误确认和处理的软件工程师负责,软件错误修复后的验证和关闭应该由软件错误报告者(测试工程师)负责。
软件本地化测试的重点是发现软件因本地化产生的错误。
不要过多的耗费时间测试软件的功能,因为本地化测试前,源语言软件已经进行过功能测试和国际化测试。
所以,应该将本地化测试的重点放在本地化方面的错误,例如语言表达质量,软件界面布局,本地化字符的输入、输出和显示等。
严格执行测试计划,排除测试的随意性。
测试执行前,对每一项测试做出周密的计划,包括测试版本号、测试内容、测试平台、测试进度、资源要求、测试用例、测试流程、测试质量控制等,符合测试计划和测试要求说明文档的要求。
采用软件错误数据库管理软件测试中的所有软件错误。
对每一个本地化测试的项目,建立结构完整、功能丰富、使用方便的数据库,以便有效的完成软件错误报告、查询、修复、存储等功能,从而提高测试效率,保证测试质量。
1.6软件本地化测试模型
根据本地化测试人员语言技能、测试技能、对软件产品的熟悉程度和各项本地化测试内容的测试顺序,可以分为三种本地化测试的模型:
本地化集成测试模型、本地化“一加一”测试模型、本地化分布测试模型。
1.本地化集成测试模型。
本地化集成测试模型是指本地化测试团队的测试人员完成包含本地化功能测试、用户界面测试和语言质量的全部三项内容。
为了达到较高的测试质量,要求测试人员不仅掌握良好的测试技能,熟悉被测产品的功能特性,还要精通本地化语言和当地的文化习俗。
无疑,这种测试模型对测试人员的技能提出了非常高的要求。
2.本地化“一加一”测试模型。
本地化“一加一”测试模型是指为了完成本地化测试的三项内容,安排一个(或一组)测试人员和一个(或一组)语言人员坐在一起,一起共同执行功能测试、用户界面测试和语言质量测试。
在实际测试过程中,测试人员和语言人员各有分工,并且互相配合。
测试人员熟悉测试技术和被测产品,主要执行功能测试和用户界面测试,而语言质量测试需要在语言人员的指导下进行,语言人员可能不熟悉被测试产品,但精通本地化语言,主要在测试人员的帮助下测试语言质量,也可以执行一些用户界面测试。
3.本地化分布测试模型。
本地化分布测试模型是指按照一定的时间顺序,将测试内容进行详细分工,安排不同技能的人员,分别执行本地化功能、用户界面和语言质量的测试。
例如,测试人员先执行本地化功能测试和用户界面测试,测试完成后再由语言人员测试本地化语言质量,反之亦然。
测试人员和语言人员可以同时并行执行各自的测试内容,前提条件是语言人员必须熟悉测试的步骤。
第二章测试本地化软件
2.1本地化软件测试的主要内容
不同的测试阶段有不同的测试内容。
根据被测软件的测试特征,软件本地化测试的内容大体上包括安装/卸载性能测试(Install/UninstallTesting)、软件功能测试(FunctionTesting)、本地化语言测试(LinguisticTesting)、软件外观测试(CosmeticTesting)。
测试内容由不同的测试阶段决定,例如第一个阶段,以软件界面测试为主,中间阶段以功能和界面为主,最后阶段终点测试安装/卸载,软件帮助和主要功能。
(1)安装/卸载性能测试
测试本地化的软件是否可以正确地安装/卸载在本地语言的操作系统上(包括是否支持本地语言的安装目录名)。
安装/卸载前后安装文件、快捷方式、程序图标和注册表等的变化是否与源语言程序一致。
(2)软件功能测试
本地化软件功能是否与源语言软件功能相同。
是否支持当地语言的输入和输出,如对双字节支持和正确显示。
对当地日期,时间,货币符号等的支持性能。
是否支持当地语言的文件名和目录名。
(3)软件界面测试
软件安装窗口中的按钮,菜单等的布局是否合理,美观。
软件运行后的界面元素,包括菜单、快捷键、对话框、屏幕提示、按钮、列表框的布局和本地化字体和字号是否正确。
界面文字的翻译是否与术语表一致,是否存在没有翻译的元素。
(4)帮助文件功能和翻译质量
本地化帮助文件的功能是否与源语言软件一致;本地化帮助文件的布局是否合理,美观;本地化帮助文件的文字翻译是否准确、专业,是否存在没有翻译的段落。
2.2本地化软件测试策略
测试策略描述测试项目和测试任务之间的关系,说明要测试什么和怎样测试。
软件本地化测试策略是进行软件本地化测试采用的有效测试方法论和测试手段。
对于软件本地化测试,本地化提供商主要进行外观测试和本地化语言测试,软件供应商主要进行国际化测试和功能测试。
软件在本地化之前,必须先经过软件国际化测试和本地化性能测试等功能测试,然后再编译本地化版本。
软件本地化提供商应该重点处理本地化提供商可以解决和擅长的调整本地化软件用户界面布局和语言翻译等问题,对于测试过程报告的软件硬编码(指直接嵌入在代码中的需要本地化的字符)和软件自身的功能错误只能由软件提供商处理。
由于软件本地化和源语言软件开发一起进行,因此,软件本地化测试通常要测试多个功能不断完善和丰富的本地化版本。
这些不同的本地化版本测试的重点和具体测试内容各不相同。
一般,第一个本地化版本,重点测试软件外观,即软件用户界面测试,包括界面控件大小和位置,也包括界面本地化的字符内容和样式,而在此阶段,软件联机帮助和其他文档都还没有本地化,不需要测试。
软件的功能还不完善,不要过多耗费时间进行功能测试。
最后一个本地化测试版本,是测试的最后阶段,要尽量保证全面的测试,包括本地化功能测试,软件程序、联机帮助语言质量测试,安装/卸载测试,并尽快处理发现的软件错误。
在第一个和最后一个测试版本之间的中间版本的测试,要保持功能测试和语言测试行结合的测试方法,在稍后的软件界面冻结版本的测试中,重点测试文档本地化质量,包括语言和本地化图像的格式等方面。
关于软件错误和缺陷处理,应该尽量保证在每个版本测试周期内全部解决,以免错误和缺陷逐渐积累而最终没有时间全部处理,从而影响本地化测试质量。
为了有效处理测试中的报告的软件错误和缺陷,本地化提供商和软件供应商的测试工程师必须每天检索共享专用的软件测试错误数据库,对属于自己要处理的错误及时处理。
对于软件测试错误数据库中任何错误的处理,都要保存详细的处理记录。
从测试理论上讲,每个新版本的测试都需要对前面的版本进行回归测试,以保证新软件版本功能的改进不会使以前的错误重现或产生新的错误。
为了保证软件的最终质量,至少对最后一个本地化版本的交付测试执行回归测试。
对于本地化测试报告的功能错误,首先确认在本地化操作系统上安装和运行本地化版本可以重复错误,然后验证在源语言操作系统上安装和运行源语言版本是否也可以重复此错误,如果可以重复,则说明该错误属于源语言版本的设计错误。
如果不能重复,还要在本地化操作系统上安装和运行源语言版本,如果能重复,则说明是与本地化操作系统有关的错误。
如果不能重复,则说明该错误是本地化版本由于不正确的本地化产生的错误。
这两类错误的修复处理难度较大,关键是定位错误产生的准确位置和真实原因。
为了保证软件测试报告的错误质量,以及快速查询、分类和存储测试中的错误,软件本地化供应商创建该项目内部专用的软件错误报告数据库(SoftwareProblemReport,SPR)非常必要。
为了提高报告给软件供应商的全部软件错误都是可以重复的真实错误,软件工程师负责软件测试并向错误报告数据库添加错误记录,高级测试工程师负责验证报告的错误包含完整的报告信息,确认属于真正的软件错误,然后添加到软件供应商提供的项目共享专用错误数据库,并注意这两个数据库的每个本地化测试错误记录保持一一对应和保持错误状态同步更新。
2.3本地化软件错误典型类型
下面对本地化软件的错误的三种典型类型进行分类讨论,探讨错误的表现特征,产生的原因。
1、功能错误(CoreDefect)
表现特征:
不能实现设计要求的功能;产生与设计要求不符合的结果。
2、国际化错误(GlobDefect)
表现特征:
或对话框中显示不可辩识或无意义的明显错误的字符;不支持双字节字符的输入和输出,包括双字节的文件名和路径名;与当地不符合的默认打印纸张大小;与当地不符合的日期和时间格式;本地化软件的列表项排序错误;某些没有本地化的字符串;仅出现在本地化后的版本中。
其产生的原因主要是因为源程序在设计时没有正确进行国际化设计,例如,没有提供双字节字符集的支持。
源程序在设计时没有将可以本地化的字符串与软件代码进行彻底分离。
软件本地化后,单字节字符向双字节字符转化过程中,由于单字节和双字节之间的差别,可能使得某些本地化后的双字节字符的显示乱码。
3、本地化错误(LocalDefect)
通常来说,软件的本地化错误包括翻译错误和控件大小和位置引起的布局错误。
其表现特征是,应该翻译而没有翻译的英文字符;不应该翻译而翻译的中文字词;错误翻译的字词;较多隐含在对话框各控件以及帮助文档中;只在本地化版本中存在该类型错误;控件相互重叠或排列不均匀;控件中字符显示不完整;主要出现在本地化版本的对话框中。
软件本地化错误产生原因主要是因为翻译人员不熟悉翻译要求;翻译人员工作疏漏;用户界面的翻译与标准术语表不一致等原因产生的。
软件本地化后,由于源语言和本地化语言的表达方式不同,本地化后的字符数与源语言不同,每个字符所占空间尺寸不同,使得在英文版本正确显示的控件字符,可能在本地化版本显示不正确。
在编译本地化软件之前,没有对资源文件对话框及其控件调整大小。
本地化人员调整软件资源文件不当引起。
例如,对话框及其控件高度或宽度的不正确调整。
一些对话框控件的布局错误如果也存在于源语言软件中,则属于软件设计错误,应该分配给软件供应商处理。
以上对本地化软件测试经常遇到的三种错误类型进行了分析,实际测试是一个动态的过程,不能孤立静态地对待发现的错误,错误的类型并不是绝对的,需要具体问题。
例如,本地化软件中如果发现应该翻译而没有翻译的错误,既可能是由于本地化翻译过程中忘记翻译引起的本地化错误,也可能是源语言软件设计编程中的硬编码引起的国际化错误。
再者,某些软件功能错误既可能是由于本地化翻译过程中采用了错误的翻译格式(例如,某些不应该翻译的程序变量字符被翻译了)引起的错误,也可能是源语言软件编程错误。
最后,一个错误可能包含着其他的不同类型的错误。
比如在对话框中,选择某个按钮,产生一个错误提示对话框,这可能是一个按钮功能错误,如果对话框中存在需要翻译而没有翻译的英文,则又是一个本地化翻译错误,如果对话框中存在无法辨识的字符,则又是一个国际化错误,如果对话框中按钮排列重叠,则还是一个本地化布局错误。
2.4本地化软件测试具体方法
软件本地化测试工程师的基本任务包含两条:
第一是发现软件缺陷;第二是报告软件缺陷。
而发现软件缺陷是首要的任务,道理很简单:
没有发现软件缺陷,则无法报告软件缺陷。
因此,对于软件本地化测试工程师,提高发现软件缺陷的技能成为第一位的任务。
本文结合本地化测试的项目实践进行较为深入的描述。
寻找和发现软件缺陷,首先需要理解软件本地化测试的目的和测试范围,在测试前,必须要阅读和理解测试说明书和测试用例;其次,要熟悉本地化软件缺陷的主要类型和表现特征。
再次,熟悉被测软件的语言知识和软件功能特征。
再次强调阅度测试说明书和测试用例的重要性。
测试说明书包含了测试范围、测试系统的要求、缺陷定义等于测试密切相关的内容。
测试用例包含具体测试范围、测试方法和测试步骤的具体实现方式。
在正式进行任何测试活动前,必须认真阅读测试说明书和测试用例,以便彻底了解测试的重点和可能出现软件缺陷的软件部分。
好的测试习惯是在测试准备阶段,通读测试说明书和测试用例,并且记录一些重点内容,对于不熟悉的内容及时交流解决。
不好的习惯是一边做测试,一边阅读测试说明书和测试用例。
这种测试方法的最大危害是抓不住测试重点,没有测试的全局意识,往往被细小问题困扰,不利于提高测试效率。
本地化软件缺陷,具有比较鲜明的特征,发现本地化软件缺陷具有内在规律,以下对于发现本地化软件缺陷的基本方法进行论述。
1.按照一定的顺序排查软件缺陷。
本地化软件缺陷可以分为用户界面错误、语言质量错误和功能错误等。
这些不同类型的错误有时同时出现在软件的某个部分,为了更全面的发现这些缺陷需要遵循一定的测试排查步骤。
下面以测试一个本地化对话框为例。
首先,查看对话框控件的用户界面错误。
是否有被截断(Truncation)的错误;是否控件布局不整齐或者重叠;是否丢失热键;与英文软件的热键不一致;文本字体类型和大小错误;字符显示乱码错误。
其次,查看对话框语言质量错误。
是否有没有遗漏的需要本地化的英文文字;本地化的文字是否内容正确、专业和流畅;是否存在多余的翻译,例如,不该翻译的内容进行了翻译;是否翻译的内容带有敏感的政治问题和与目标市场的风俗传统不一致;标点符号是否符合本地化语言用户的使用习惯。
再次,查看对话框功能错误。
各个要测试的按钮功能是否起作用;各个要测试的按钮功能是否正确;Tab键的跳转是否正确;控件的热键是否起作用。
按照以上的顺序测试,主要是为了按照从易到难的原则,全面地查找软件缺陷,而不是说功能错误是不重要的,相反功能错误是优先级比较高的错误,应该正确处理。
2.对照源语言软件确认缺陷。
绝大多数本地化软件缺陷都是由于本地化过程引起的,但是也有少量错误是由于源语言软件不正确的设计引起的。
这类错误表现为同一个错误在源语言软件和本地化版本中都可以复现,例如某些功能不起作用,热键重复等。
还有一种错误只在本地化软件中复现,但是本地化工程师无法解决,需要软件开发人员修改编码进行修正,例如不支持双字节的输入、显示、输出等,这些属于源语言软件的国际化设计错误。
因此,如果发现了功能错误和热键等软件缺陷,应该在相同测试环境的源语言软件上,进行同样步骤地测试,将测试结果进行比较,并且报告中应该指出该软件缺陷是否也存在于源语言软件上。
3.利用软件缺陷的“扎堆”现象。
软件缺陷的“扎堆”现象就是被测软件的某些部分往往出现不止一个错误。
因此,如果在某一部分发现了很多错误,应该进一步仔细测试是否还包含了更多的软件缺陷。
软件缺陷的“扎堆”现象的常见形式有:
对话框的某个控件功能不起作用,可能其他控件的功能也不起作用;某个文本框不能正确显示双字节字符,则其他文本框也可能不支持双字节字符;联机帮助某段文字的翻