国际化软件测试 软件测试
国际化软件测试包括软件国际化测试和软件本地化能力测试。软件的国际化测试是重要的测试阶段,必须在本地化测试之前进行测试。国际化软件的测试目的是判断软件的国际化设计程度,确定软件是否支持可能的区域,是否可以容易的本地化。
国际化软件的全球通用性包含三方面的内容:软件国际化特征功能测试、本地化能力测试和本地化测试。
一、国际化软件测试的重要性
软件项目团队的所有成员都应该认识并且高度重视国际化测试的重要性。
首先,任何不良的国际化设计的软件错误,将存在于所有本地化的语言版本,都需要修改源语言程序的代码才能修复该类错误,这将增加软件的本地化成本。
其次,良好国际化设计的软件将需要最小程度的本地化测试。因为良好的区域语言支持已经集成在软件的国际化设计中,需要翻译的资源已经从程序代码中分离出来,可以很容易的翻译资源文件中需要本地化的内容,而且不会破坏程序的功能。
二、国际化软件测试的原则
为了提高国际化测试的质量,需要遵循下面的原则:
一旦程序的代码足够稳定,尽早进行测试。
按照组件和功能特征的优先级从高到低的顺序进行测试
重点放在处理多语言字符串的直接或间接的输入/输出(I/O)
国际化功能测试与本地化能力测试并行进行。
使用伪本地化和伪镜像技术进行本地化能力测试。
三、软件国际化能力测试
当开发全球可用的国际化软件时,软件的结构设计者必须考虑诸多因素, 如语言、字符处理、数据格式、用户界面等方面的问题,软件的功能特性测试要与国际化能力测试结合在一起,确保所有的功能测试都符合全球可用性。下面分别简 要讨论语言、字符处理、数据格式和用户界面问题包含的内容。
语言问题描述软件在世界各种语言在显示、字母、语法和语法规则方面存在的差异,包括支持双向文字功能、大小写、代码页、字体等几个方面,详细内容如下。
● 双向文字处理。
● 双字节文字处理。
● Unicode编码字符。
● 字母大小写转换。
● 代码页。
● 字体格式和大小。
● 输入法编辑器(IME)。
● 文字的换行与断字。
● 不同布局的键盘。
字符处理描述字符串资源中的文本在应用程序的用户界面显示中存在的问题。在开发全球可用的国际化软件时,必须考虑语言之间的差异,特别是那些与字符串相关的差异。应验证需要本地化的字符串,确保应用程序允许字符串增长,并确保应用程序不依赖字符串连接,详细内容如下。
● 字符串连接。
● 词序问题。
● 字符串增长。
● 字符串排序和比较。
● 资源文件的字符串。
数据格式设置问题从用户的角度看,是源语言或区域设置编写的应用程序在处理国际化数据时存在的问题。数据格式包括地址、货币、日期、数字、纸张大小、时间和度量单位,详细内容如下。
● 地址。
● 货币。
● 日期。
● 时间。
● 数字。
● 纸张大小。
● 电话号码。
● 度量单位。
用户界面问题包括有关设计全球可用的用户界面(UI)元素的信息。用户界面的测试包括菜单和对话框、图标和位图、热键和快捷键和UI 控件,详细内容如下。
● 菜单和对话框。
● 图标和位图。
● 热键和快捷键。
● UI 控件。
四、软件本地化能力测试
本地化能力测试验证是否可以轻松地将程序的用户界面翻译成任何目标语言,而不需要重新设计或修改代码。本地化能力测试寻找产品本地化过程中发现的错误,本地化能力测试本质上就是国际化测试和本地化测试的混合。本地化能力测试的成功完成表示产品已可用于本地化。可以使用伪本地化以避免真正本地化所需的时间和费用。伪本地化或许是查找本地化缺陷的最佳方法,它的执行步骤如下:
首先,需要运行程序的伪本地化版本,执行伪本地化的最佳方法是自动修改程序的资源。例如,下面是讲英语的本地化人员在翻译程序的 UI 时所做的工作:
用包含非英文字符的文本替换英文文本。最好使文本保持为可读。例如,使翻译算法用形状相似的非英语符号替换英语字符。例如:
对于 a ,使用 à 或 ?
对于 c ,使用 ? 或 ?
对于 n ,使用 ń 或 ? 。
向资源字符串添加额外的字符。在许多情况下,翻译的文本比原英语长(“ some string ”变成了“ +++some string+++ ”)。
调整对话框的大小和位置。当字符串的长度由于本地化而增加时,本地化人员常常这样做。
标记每个资源字符串的开始和结尾。这些标记可以帮助您确定应用程序在运行时的什么时候显示文本。
使用多语言 Unicode 进行替换(因为资源字符串总是存储为 Unicode )。这有助于查找程序使用 ANSI 函数处理或显示文本的位置。
伪本地化程序后,测试它的功能。伪本地化应用程序的运行与原始版本应该没有区别。
在本地化能力测试中经常忘记的一个方面是镜像测试。如果希望将软件销售到程序的文本和 UI 从右到左 (RTL) 显示的市场,需要知道应用程序镜像后的样子。此测试可以作为产品伪本地化的一部分来执行。以您选择的语言显示文本结果,而应用程序镜像窗口和文本对齐。
其次,本地化能力测试应该执行代码检查,确保代码满足下列要求:
以标准 Windows 资源格式编写所有资源,并且不对源代码中的字符串进行硬编码。
不将指针算法用于字符串长度计算、对字符串元素的访问和字符串操作。
不在运行时通过抽出或连接来生成字符串。
资源不假定字符串缓冲区长度。
不在运行时定位 UI 控件。
图标和位图不包含文本。
不存在对驱动器和文件夹名称或注册表项的任何假定。
最后,本地化能力测试需要执行 UI 和文档检查,确保 UI 和支持文档中使用的术语清楚、一致、没有歧义。当 UI 和文档用不同的名称引用同一功能或者当文本包含过多的技术术语时,本地化人员可能会感到困惑。
五、软件本地化测试
本地化的主要工作就是翻译产品的用户界面( UI ),有时也更改某些初始设置以使产品适合于另一个地区。本地化测试检查针对特定目标区域的产品本地化质量。此测试基于国际化测试的结果,后者验证对特定区域性或区域设置的功能性支持。本地化测试只能在产品的本地化版本上进行。
本地化测试过程中的测试工作集中在:
受本地化影响的方面,如 UI 和内容
特定的区域设置、特定的语言和地区方面的内容
另外,本地化测试还应包括:
基本功能测试
在本地化环境中运行的安装和升级测试
根据产品的目标地区计划应用程序和硬件兼容性测试。
用户界面和语言的本地化测试应包括的项有:
验证所有应用程序资源
验证语言的准确性和资源属性
版式错误
书面文档、联机帮助、消息、界面资源、命令键顺序等的一致性检查。
确认是否遵守系统、输入和显示环境标准
用户界面可用性
评估文化适合性
检查政治上敏感的内容
当交付本地化产品时,确保包含本地化文档(手册、联机帮助、上下文帮助等)。要检查的项包括:
翻译的语言质量
翻译的完整性
所有文档和应用程序 UI 中使用的术语一致