Chinaunix首页 | 论坛 | 博客
  • 博客访问: 661491
  • 博文数量: 107
  • 博客积分: 4135
  • 博客等级: 上校
  • 技术积分: 1182
  • 用 户 组: 普通用户
  • 注册时间: 2007-09-06 16:01
文章分类

全部博文(107)

文章存档

2020年(2)

2012年(5)

2011年(6)

2010年(23)

2009年(17)

2008年(35)

2007年(19)

我的朋友

分类: 项目管理

2009-10-20 12:47:35

 

  国际化软件的全球通用性包含三方面的内容:软件国际化特征功能测试、本地化能力测试和本地化测试。

  软件国际化特征功能测试描述如何测试国际化软件,以保证软件在任何区域性或区域设置中都能正常运行,并且特征功能都能正确地实现。

  本地化能力测试描述测试软件是否可以被方便的本地化,测试软件是否可以轻松地将程序的用户界面翻译成任何目标语言,而不需要重新设计或修改代码。

  本地化测试描述如何测试本地化的软件,检查特定目标区域性或区域设置的产品本地化的质量,包括本地化功能测试、语言质量测试和用户界面测试等。

  1. 软件国际化特征功能测试

  当开发全球可用的国际化软件时,软件的结构设计者必须考虑诸多因素,如语言、数据格式、字符处理和用户界面等方面的问题,软件的特征功能测试要与国际化能力测试结合在一起,确保所有的功能测试都符合全球可用性。

  语言问题描述软件在世界各种语言在显示、字母、语法和语法规则方面存在的差异,包括双向识别功能、大小写、代码页、字体等几个方面:

  双向识别功能。 双向 (Bidi) 是用于描述既可以从左到右 (LTR) 排列也可以从右到左 (RTL) 排列文本的功能。由英语和阿拉伯语混合而成的文本是一个好例子。软件国际化测试要检查软件是否支持双向文字。

  大小写转换。 处理字符的大小写的的算法要注意某些语言的大小写字符之间没有一对一映射。而大多数非拉丁脚本甚至不使用小写和大写的概念。例如:中文、日语、泰语等亚洲语言文字。

  代码页。 代码页是按某种顺序排列的选定字符代码(表示为代码数据点的字符)的列表。定义代码页通常是为了支持共享共同的书写体系的特定语言或语言组。

  双字节字符集。 中文、日语和朝鲜语包含的字符超过 256 个,属于双字节字符集 (DBCS) 。应该测试软件是否支持双字节字符集的处理。

  字体。 在进行国际化测试时,要注意测试软件是否硬编码字体名称和字体的大小。如果对显示英文字符但不显示日语字符的字体名称进行硬编码,所有本地化的日语文本将不会正确显示,另外,运行软件的计算机上可能没有安装程序需要的字体。

  输入法编辑器。 输入法编辑器 (IME) 也称为前端处理器, IME 由一个将键击转换为拼音和表意字符的引擎和常用的表意字词典组成。当用户击键时, IME 引擎尝试将键击转换为表意字符或字符。要测试软件是否可以采用不同的 IME 输入各种文字。

  换行和断字。 亚洲 DBCS 语言的规则与西方语言的规则完全不同。例如,与大多数西方书面语言不同,中文、日语、朝鲜语和泰语不一定使用空格将一个字同下一个字区分开。泰语甚至不使用标点符号。对于这些语言,国际化软件不能简单地将换行和换行算法基于空白字符或标准断字规则。

  键盘。 键盘布局因区域设置而异。某些字符并不是存在于所有的键盘布局中。测试国际化软件是要注意软件再分配快捷组合键时,确保可以使用国际键盘重新产生它们。某些快捷键可能并非适用于特定区域设置的每种键盘布局。例如,某些区域性或区域设置使用不止一种键盘,如东欧和大多数讲阿拉伯语的国家 / 地区。

  镜像识别功能。 对于阅读顺序从右到左 (RTL) 的语言,不仅文本对齐方式和文本读取顺序从右到左,而且 UI 布局也应遵循这种自然的方向,因此,测试软件的镜像特征是国际化测试的一个内容。

  Unicode 。 由于全球化的目的是编写在任何受支持的区域设置中都同样能正常运行的代码, Unicode 编码中每个字符都有唯一的表示形式,因此,国际化软件应该采用 Unicode 编码,这是国际化测试的主要内容之一。

  数据格式设置问题从用户的角度看,是源语言或区域设置编写的应用程序在处理国际化数据时存在的问题。数据格式包括地址、货币、日期、数字、纸张大小、时间和度量单位。

  地址。 国际化软件中常见的错误是要求访问者在标记为“ State (州)”的字段中输入文本。虽然这对居住在美国的人来说是可以理解的,但却使其他地区的访问者混淆,在那里“州”不是地址的一部分。对用户输入的数据执行有效性检查时同样必须灵活。例如,不要假设邮政编码有特定的格式或长度,或者仅由数字组成。

  货币。 货币格式设置必须考虑货币符号、货币符号位置和负号的位置。大多数货币使用与区域性或区域设置中的数字相同的小数点分隔符和千位分隔符。但是,在一些地方并不是这样,比如在瑞士,瑞士法郎的小数点分隔符是句点 (Sfr.127.54) ,而在其他任何情况中小数点分隔符是逗号 (127,54) 。

  日期。 日期格式设置在全世界不是统一的。虽然每种日期均显示日、月和年,但它们的表示顺序和分隔符有很大不同。实际上,同一国家 / 地区的不同区域之间也可能存在许多差异。除了日期格式设置外,可能还需要改编应用程序以在各种日历下运行。虽然普遍使用公历,但某些国际化软件可能支持其他日历,如阴历。

  时间。 测试软件对时间的处理时,要注意时间的格式使用 12 小时制还是 24 小时制、用于分隔小时、分钟和秒的字符、时区的存储和显示。

  数字。 处理数字值时,注意数字的千位分隔符、小数点分隔符、显示负数、数字分组、百分数,不同区域设置的数字格式不同,要测试国际化软件支持当地的区域设置的数字格式,并且能够处理这些数字。

  纸张大小。 美国和加拿大纸张大小( Letter 、 Legal 等)不能满足世界市场上所有用户的需要。例如,欧洲和亚洲的大多数地区使用一种称为 A4 ( 297 x 210 毫米)的标准,而美国和加拿大的 Letter 纸的大小( 279 x 216 毫米)。如果应用程序需要打印,则应允许配置默认纸张大小。

  电话号码。 电话号码(连同地址一起)的格式设置在不同地理区域有很大的不同。因此,处理电话号码的输入字段和例程应当能够处理各种格式。注意,有不同的分隔符(“ - ”、“ .” 和空格)、分组(每组 2 、 3 、 4 、 5 和 6 位数)和数字位数 (7-11) 。 因此,应测试软件对电话号码的显示和存储方式,不要采用一种给定的格式,而应留下非常大的余地。

  度量单位。 全世界使用不同的单位和尺度度量事物。最常用的系统是公制(例如米、公升、克等)。而美国仍使用英制(例如英尺、英寸、磅等)。度量种类可能是长度、重量、面积、体积、温度、纸张大小、角度表示法,等等。因此,必须确保应用程序可以以不同的体系显示度量结果。另外,确保用户知道应用程序显示的是那种度量单位的体系。

  字符处理描述字符串资源中的文本在应用程序的用户界面中显示存在的问题。在开发全球可用的国际化软件时,必须考虑语言之间的差异,特别是那些与字符串相关的差异。应验证需要本地化的字符串,确保应用程序允许字符串增长,并确保应用程序不依赖字符串连接。

  字符串连接。 开发人员可能使用字符串连接来减少字符串的大小。但是,该方法将极大地限制应用程序的本地化,因此,在对国际化的代码进行审阅时,要注意测试是否有字符串连接的编码问题。

  词序问题。 不同语言组成句子的词的顺序通常是不相同的。例如,在德语和日语中,动词通常出现在句尾。由于本地化过程中可能改变字符串的顺序,因此本地化版本会产生缺陷,通过避免字符串连接并在资源文件中使用完整的字符串,可容易地修正此问题。

  字符串增长。 在大多数情况下,翻译后的字符串通常更长,例如将字符串从英语翻译成德语。因此,要测试软件在分配字符串的长度时,是否限定了字符串的长度。

  字符串排序和比较。 不仅各种语言的字母顺序不同,而且词典和电话簿中的条目排序惯例也完全不同,因此要测试软件对字符串的排序功能是否符合不同区域的使用惯例。

  字符串和资源文件。 要测试软件国际化设计时是否考虑到本地化的问题,将字符串资源从代码中分离出来,字符串资源应位于单独的文件中。

  用户界面问题提供有关设计全球可用的 UI 元素的信息。用户界面的测试包括菜单和对话框、图标和位图、热键和快捷键和 UI 控件。

  菜单和对话框。 本地化应用程序时,菜单和对话框也可能增长。因此,必须设计好界面,避免在本地化后需要调整控件或其他元素的大小。

  图标和位图。 图标和位图在描述某些功能时通常不使用文本。当使用图标和位图时,避免使用不是国际标准的位图。例如,一个在美国表示乡村风格的邮箱的位图在其他地区的居民看来像是其他东西。欧洲人通常将这个位图理解成烟囱。 还要避免使用包含文本的位图,本地化图像中的文字不仅费时间,文本增长也可能成为一个问题。确保位图和图标具有文化认同性也很重要。在一种区域性或区域设置中可以接受的内容可能不适合另一种区域性或区域设置。

  热键和快捷键。 不同的区域性或区域设置有自己的键盘布局,而且某些字符并非存在于所有的键盘布局上。开发应用程序时,确保所有的热键和快捷组合健在国际键盘上可用。快捷键不能由双字节字符集 (DBCS) 中的字符组成,要避免使用的热键字符包括 @ $ {} [] \ ~ | ^ ' < > 。

  UI 控件。 切勿将一个控件隐藏在另一个控件之后。由于语言扩展问题,在本地化应用程序时,将一个控件隐藏在另一个控件之后可能行不通。例如,用德语本地化一个英语应用程序时,一个隐藏在另一个按钮之后的按钮可能延伸到覆盖它的按钮之外。另外,注意测试和检查软件终是否将 UI 控件用作句子的一部分。如果将控件用作句子的一部分,则句子会遇到与连接字符串相同的问题。

  2. 软件本地化能力测试

  本地化能力测试验证是否可以轻松地将程序的用户界面翻译成任何目标语言,而不需要重新设计或修改代码。本地化能力测试寻找产品本地化过程中发现的错误,本地化能力测试本质上就是国际化测试和本地化测试的混合。本地化能力测试的成功完成表示产品已可用于本地化。可以使用伪本地化以避免真正本地化所需的时间和费用。伪本地化或许是查找本地化缺陷的最佳方法,它的执行步骤如下:

  首先,需要运行程序的伪本地化版本,执行伪本地化的最佳方法是自动修改程序的资源。例如,下面是讲英语的本地化人员在翻译程序的 UI 时所做的工作:

  • 用包含非英文字符的文本替换英文文本。最好使文本保持为可读。例如,使翻译算法用形状相似的非英语符号替换英语字符。例如:
    • 对于 a ,使用 à 或 ?
    • 对于 c ,使用 ? 或 ?
    • 对于 n ,使用 ń 或 ? 。
  • 向资源字符串添加额外的字符。在许多情况下,翻译的文本比原英语长(“ some string ”变成了“ +++some string+++ ”)。
  • 调整对话框的大小和位置。当字符串的长度由于本地化而增加时,本地化人员常常这样做。
  • 标记每个资源字符串的开始和结尾。这些标记可以帮助您确定应用程序在运行时的什么时候显示文本。
  • 使用多语言 Unicode 进行替换(因为资源字符串总是存储为 Unicode )。这有助于查找程序使用 ANSI 函数处理或显示文本的位置。

  伪本地化程序后,测试它的功能。伪本地化应用程序的运行与原始版本应该没有区别。

  在本地化能力测试中经常忘记的一个方面是镜像测试。如果希望将软件销售到程序的文本和 UI 从右到左 (RTL) 显示的市场,需要知道应用程序镜像后的样子。此测试可以作为产品伪本地化的一部分来执行。以您选择的语言显示文本结果,而应用程序镜像窗口和文本对齐。

  其次,本地化能力测试应该执行代码检查,确保代码满足下列要求:

  • 以标准 Windows 资源格式编写所有资源,并且不对源代码中的字符串进行硬编码。
  • 不将指针算法用于字符串长度计算、对字符串元素的访问和字符串操作。
  • 不在运行时通过抽出或连接来生成字符串。
  • 资源不假定字符串缓冲区长度。
  • 不在运行时定位 UI 控件。
  • 图标和位图不包含文本。
  • 不存在对驱动器和文件夹名称或注册表项的任何假定。

  最后,本地化能力测试需要执行 UI 和文档检查,确保 UI 和支持文档中使用的术语清楚、一致、没有歧义。当 UI 和文档用不同的名称引用同一功能或者当文本包含过多的技术术语时,本地化人员可能会感到困惑。

  3. 软件本地化测试

  本地化的主要工作就是翻译产品的用户界面( UI ),有时也更改某些初始设置以使产品适合于另一个地区。本地化测试检查针对特定目标区域的产品本地化质量。此测试基于国际化测试的结果,后者验证对特定区域性或区域设置的功能性支持。本地化测试只能在产品的本地化版本上进行。

  本地化测试过程中的测试工作集中在:

  • 受本地化影响的方面,如 UI 和内容
  • 特定的区域设置、特定的语言和地区方面的内容

  另外,本地化测试还应包括:

  • 基本功能测试
  • 在本地化环境中运行的安装和升级测试
  • 根据产品的目标地区计划应用程序和硬件兼容性测试。

  用户界面和语言的本地化测试应包括的项有:

  • 验证所有应用程序资源
  • 验证语言的准确性和资源属性
  • 版式错误
  • 书面文档、联机帮助、消息、界面资源、命令键顺序等的一致性检查。
  • 确认是否遵守系统、输入和显示环境标准
  • 用户界面可用性
  • 评估文化适合性
  • 检查政治上敏感的内容

  当交付本地化产品时,确保包含本地化文档(手册、联机帮助、上下文帮助等)。要检查的项包括:

  • 翻译的语言质量
  • 翻译的完整性
  • 所有文档和应用程序 UI 中使用的术语一致
阅读(794) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~