自动化质量保证 (QA)QA自动化工程师

如何实现界面和注释的自动本地化检查(i18n):问题的历史、问题及解决路径?

用 Hintsage AI 助手通过面试

答复。

自动化测试的第一波几乎没有涉及本地化(i18n)检查,因为主要市场集中在英语界面上。然而,随着应用程序的全球化,对本地化质量的要求上升:界面必须在所有支持的语言中正确显示,而文本资源和格式化字符串必须根据所选区域正确加载。

主要问题是手动检查非常耗费时间,而自动测试由于格式的多样性、上下文、语言的特殊性(例如,从右到左或语法特征)而复杂。可能缺少片段的翻译、格式错误、排版问题。

解决方案包括为每种本地化工作测试数据、使用快照测试、将UI元素与基准进行比较、按照“关键-值”原则实现资源文件的检查工具、通过API接口自动提取和比较字符串,以及定期运行资源文件上的linter。

关键特点:

  • 检查所有支持语言的存在和正确显示。
  • 将基准翻译与当前界面显示进行比较。
  • 文本长度和格式的验证器,以避免排版的破坏。

设陷阱的问题。

可以使用一个脚本验证任何本地化的通用测试吗?

部分可以,但语言的细节(词尾、性别、输入方向)常常需要手动调整或在这些测试中添加额外条件。100% 的通用性是不可能的。

如果翻译文件存在且成功加载,这是否意味着i18n测试通过了?

不。文件可能在应用程序的一侧链接不正确,可能在关键点上出错,翻译的使用上下文可能被破坏,可能还有未考虑的特殊符号等。

对于用户少于1%的语言,自动化本地化测试是否有意义?

是的,如果即便一个用户的商业重要性很高,例如,在履行合同义务或在有特殊要求的市场中。自动化显著节省了与手动检查相比的资源。

常见错误和反模式

  • 只检查文件的存在,而不是在UI中的实际显示。
  • 进行严格的字符串比较,而不考虑语言的语法和格式特点。
  • 盲目复制一个本地化的测试到其他地方,而不进行调整。

生活中的例子

消极案例

团队在将.po文件中的关键与原始英文文本进行比较时实施了自动测试,认为这就足够了。他们没有编写UI测试 — 在阿拉伯版的发布中,发现所有文本都超出了按钮范围,一些字符串由于错误的关键根本没有被翻译。

优点:

  • i18n自动化的快速实现。

缺点:

  • 实际用户场景的覆盖率低。
  • 重要的用户体验错误未被发现。

积极案例

实现了资源linting与自动测试的结合,这些测试可以对所有语言的界面进行旋转,截图并与基准布局进行比较。发现RTL/LTR元素混合后,团队找出了根本原因并在发布前解决了它。

优点:

  • 最大程度覆盖所有实际场景。
  • 在添加新语言时易于维护。

缺点:

  • 维护基准库的成本高。
  • 需要定期手动检查复杂的格式化案例。