如今许多公司都拥有面向全球受众的软件产品(网站或APP)。其中最棘手的部分就是提供吸引目标市场地区用户的使用体验。在为这个目标进行产品设计时,会遇到国际化和本地化。显然国际化测试和本地化测试之间存在差异,因为测试人员看问题的角度是会因为不同地区发生变化的。
国际化和本地化的目标是相同的,很多做法听起来很相似,但实际上,它们之间有很多区别。应该有效地使用测试自动化来确保产品开发得到万无一失的质量保障。
作为Selenium自动化测试的一部分,国际化测试和本地化测试执行策略也有很大不同。在本文中,我们还将关注国际化和本地化,从中学习相关基础知识,进一步帮助规划和制定与目标市场相一致的自动浏览器测试策略。
本地化测试
在进行本地化测试之前,需要我们深入了解一下当地化。顾名思义,本地化使内容和UI能够适应特定区域或特定区域的文化和语言需求。
本地化测试是从本地化的角度验证内容和界面的活动,它也称为l10n
测试。
本地化测试中包含的一些组成部分是:
- 翻译文本
- 键盘使用
- 地址的格式和顺序
- 与文化一致的图形和其他视觉元素
- 处理该地区的时间和货币格式
- 数据对齐
通过以可扩展的方式使用Selenium测试自动化可以加快本地化测试,并且可以将相同的实现(除了本地化功能除外)的部分功能使用Selenium自动化测试来完成测试任务。
本地化本质上侧重于目标市场用户所看到的内容,而测试负责验证本地化的内容和界面。Selenium本地化测试,当在虚拟浏览器上执行时,Selenium本地化测试有助于以更快的速度获得更多的测试覆盖率。
国际化测试
与专注于特定地区用户的本地化不同,国际化侧重于吸引全球受众的产品特性和功能。
国际化是一项通常从概念阶段开始进行的活动,以使产品具有全球吸引力。开发功能、内容和界面以支持给定文化、语言环境或地区的本地化。从产品设计和开发的初始阶段就应该考虑到本地化的各个方面。它确保产品已准备好供全球用户使用。
国际化称为i18n
,以下是一些国际化的最佳实践:
- 支持多种语言
- 支持不同的地区、语言环境等
- 将资源(字符串、UI 元素等)与实现分离
- 支持不同的数字格式
- 不同格式的文本(即左→右,右→左)
本地化与国际化测试
随着国际化和本地化更加明晰边界,我们更容易看清楚针对两者的测试活动异同。以下是本地化与国际化测试差异:
- 国际化测试是使用尽可能多的国际输入来验证 Web 产品的特性和功能的过程。现有的实现应该能够处理国际化,而不会破坏功能。产品设计和开发是国际化的重点领域,因此可以适应不同的地区和地区。本地化测试可确保功能(尤其是UI和内容)与特定区域和语言环境的需求保持一致。
- 产品特性和功能在国际化中被赋予了更高的权重,因为它是在设计层面完成的。产品功能的设计使软件可以轻松扩展以适应不同语言的使用。国际化测试包括功能、可用性、互操作性和其他测试方法,以构建具有全球吸引力的产品。
- 国际化测试侧重于测试为全球用户构建的产品功能和能力。本地化测试侧重于测试产品,以便特定地区的用户可以使用它。
- 在国际化测试中,语言准确性的优先级较低,因为重点是检测产品设计中可能影响其全球化的问题。另一方面,语言准确性在本地化测试中被优先考虑,因为在全球化测试过程中,产品功能已经得到充分的测试。
制定国际化和本地化测试策略
国际化测试可以在产品的前端和后端进行。产品功能本地化的具体细节可以在国际化阶段本身进行规划。国际化测试活动必须针对特定市场的语言、文化、地区、重要事件和日期。
以下是在国际化和本地化测试期间应考虑的一些要点:
- 测试应该在前端进行。因此,重点应该放在图像、对话框、工具栏、菜单等用户界面上。
- 本地化和国际化应针对特定语言的属性进行,例如数字系统、书写方向、地址显示、拼写变体等。
- 应通过考虑颜色、图像、距离和重量等因素对产品进行区域设置进行测试。此外还应考虑措施、邮政编码、电话号码以及因地区而异的因素等因素。
- 应考虑日期和重要事件,例如日历类型、数字格式以及数据和时间格式。
国际化测试最佳实践
以下是实现大规模国际化测试的一些最佳实践:
内容本地化
页面上的文本内容(包括图形)应进行本地化,以满足地区或语言环境的需要。动态内容也应该采用本地化形式,例如,当用户没有正确填写站点上的特定表单时出现的弹出窗口。处理动态内容是Selenium中最大的挑战之一,可以通过使用适当的等待命令来解决。与开发人员和测试人员一起,语言专家应参与验证本地化内容
是否符合当地语法准则的整个过程。
用户界面
如前所述,界面还需要根据目标语言环境的要求进行更改。字符串的大小会因不同语言而不同;因此,界面应该能够适应更大的字符串而不影响可用性。应测试用户界面的基本元素,例如对话框、文本框、下拉列表、警报、工具栏等,以确保显示特定于区域设置的内容没有任何问题。
渲染
必须进行国际化和本地化测试以检查支持的脚本是否正确显示。脚本应根据与脚本相关的语言特定的字符显示。同样的原则也适用于对网站上的内容(和控件)进行排序。可以使用Selenium自动化测试来检查控件和内容是否在正确的排序位置上。
文件传输
包含文件传输操作的情况很多。用于文件传输操作的界面也需要根据所选语言进行本地化,包括不限于实时显示传输进度的控件。
在涉及多种语言和脚本的情况下,编码问题很常见。默认编码格式为UTF-8。当使用默认格式读取其他编码格式(例如,UTF-16、UTF-32 等)的内容时,可能会导致无法正确读取的问题。W3C的建议是以UTF-8格式提供所有页面,因为这将有助于处理因使用多种语言和脚本而出现的编码问题。
自动化测试
测试国际化或本地化的Web应用程序可能会带来严峻的挑战,而且这些挑战会随着每一种新语言增加而成倍增加。数据驱动的测试可以对国际化和本地化测试产生积极影响。例如,自动化测试人员可以在在线浏览器和平台上执行测试,以彻底测试国际化风格。
自动化浏览器测试脚本应该进行可扩展性的设计,以便可以扩展同一组自动化脚本以使用不同的语言。当使用定位器(例如xpath、id、name、css 等)定位WebElement以进行自动化测试时,选择与语言无关的最适合的WebElement变得至关重要。这为自动化脚本提供了更好的灵活性,并有助于脚本的可扩展性,以便在国际化测试中使用。