Kingson 发表于 2007-11-12 17:48:05

软件国际化特征功能测试

当开发全球可用的国际化软件时,软件的结构设计者必须考虑诸多因素,如语言、数据格式、字符处理和用户界面等方面的问题,软件的特征功能测试要与国际化能力测试结合在一起,确保所有的功能测试都符合全球可用性。
  语言问题描述软件在世界各种语言在显示、字母、语法和语法规则方面存在的差异,包括双向识别功能、大小写、代码页、字体等几个方面:

  双向识别功能。 双向 (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 控件用作句子的一部分。如果将控件用作句子的一部分,则句子会遇到与连接字符串相同的问题。

作者:崔启亮
原始出处:本地化世界网www.giltworld.com
页: [1]
查看完整版本: 软件国际化特征功能测试