首页/开发/软件测试速查/本地化与国际化测试
测试基础与分层67 条

本地化与国际化测试

验证多语言与多地区场景:翻译完整性、文本扩展与截断、日期/数字/货币格式、时区与排序规则、双向文字支持。

软件测试速查开发更新于 2026-10-13

本地化测试是什么

本地化(L10n)测试验证产品在具体语言与地区下的表现:翻译是否完整准确、文本变长后是否溢出、日期数字货币格式是否符合当地习惯、时区换算是否正确、阿拉伯语等双向文字(RTL)布局是否镜像。它和国际化(i18n)是两件事:i18n 是让代码具备可本地化的能力(资源抽取、格式接口),L10n 是具体语言包落地后的验证。

基本信息

测试维度翻译完整性、格式、时区、排序规则、双向往排、法律与合规文案
适用平台Web、iOS、Android、桌面客户端,以及导出文件与邮件模板
关键手段伪本地化(pseudo-localization)、CLDR 区域数据、ICU 格式规则
参考标准W3C 国际化最佳实践、Unicode CLDR 区域数据
入口数据各语言资源文件、区域配置 locale、用户时区设置

典型使用场景

  • 新语言上线前全量走查:检查未翻译残留、术语一致性与标点规范
  • 伪本地化回归:用扩展字符与伪译文提前暴露硬编码文案与布局溢出
  • 格式验证:日期、时间、千分位、货币、地址与姓名顺序按区域正确显示
  • 时区边界:跨时区用户的日期归属、报表口径与定时任务触发时间
  • RTL 布局检查:阿拉伯语、希伯来语界面的镜像、图标方向与省略位置
  • 长文本压力:德语、俄语等文案通常更长,验证按钮、表格列是否截断或错行

时区断言示例

时区断言示例
from datetime import datetime, timezone
now_utc = datetime.now(timezone.utc)          # 生成带时区的 UTC 时间
# 断言接口返回的时间字段为 UTC 或带明确偏移,避免浏览器按本地时区解析
# 边界用例:当地 23:30 与 00:30 各取一次,核对日期归属是否偏一天
# 导出文件同样要验:CSV 中的时间列与界面显示必须一致

典型缺陷与触发条件

缺陷触发条件检查方法
翻译缺失新增文案没同步进语言包对照资源文件与各语言截图找英文残留
文本溢出德俄等语言文案更长伪本地化加多语言截图对比
格式错误日期数字货币被硬编码切换系统区域后核对显示格式
日期偏一天服务端 UTC 与本地时区换算目标市场时区的跨日边界用例
RTL 错乱镜像布局未生效阿拉伯语界面检查方向与图标翻转
排序与大小写这类细节最容易翻车:土耳其语的 i/I 行为特殊,瑞典语字母顺序与多数语言不同,数据库默认排序与平台排序可能结果不一致,测试要按目标市场显式验证。
伪本地化常用做法:把文案替换成带重音的扩展字符并拉长三到五成(如 [Ĺöŕéḿ íṕṡúḿ ḓöĺöŕ],示意格式),在还没有真实译文时就能提前暴露硬编码与布局问题。

易错点

  • 只测界面显示不测数据层:数据库排序、导出文件编码、报表金额格式同样会错,范围要覆盖接口与导出产物
  • 直接用英文文案占位:文案与代码耦合,后期提取成本高,应从第一天使用资源 key
  • 只测一个时区:只有服务器与用户时区不一致才暴露问题,至少覆盖 UTC、目标市场时区与跨日边界
  • 忽略双向排版:等上线阿拉伯语市场才改布局,返工成本成倍增加
  • 把机器翻译当验收标准:专业术语与法律合规文案需母语者确认,机器译文只能作初稿

数据来源与参考

  • W3C Internationalization 指南(w3.org)
  • Unicode CLDR(cldr.unicode.org)
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌