S4.03.2Risk-based locale and script test matrix设计研究

需覆盖最长语言与从右至左语言

别名: 最长语言测试 · RTL 测试 · 文字系统覆盖 · locale test matrix

概念解释

基于风险的 locale 与文字系统测试矩阵(risk-based locale and script test matrix)用一组能触发不同故障的真实语言、文字、字体、输入和布局方向组合验证产品。标题中的“最长语言”不是一门固定语言,而是当前字符串、字体、容器和译法下的几何最坏情况;RTL 也不只是整页镜像。有效覆盖同时包含长短变化、从右至左与双向混排、中日韩文字、复杂塑形文字及产品实际支持的语言。

机制

不同失败由不同维度触发:长标签压迫相邻控件,较高字形和组合附标冲击行高,中日韩文本改变换行机会与信息密度,连接或重排的文字依赖塑形引擎,RTL 与嵌入的数字、代码和网址形成双向边界。不存在一个 locale 能同时最大化所有风险,同一语言也不会让每条译文都最长。测试组合因此应从字符串与组件清单、支持语言、字体栈、输入方式和关键旅程推导,而不是指定一种“最难语言”后把一次全站浏览当作覆盖。

怎么研究

建立“故障类型 × 语言/文字特征 × 组件 × 状态 × 设备”的覆盖表,并用历史缺陷与植入故障检查每个组合的增量检出率。样本至少分层覆盖短标签膨胀、窄屏长文、RTL 与混合方向、无空格或不同断行机会、复杂塑形与组合附标、字体回退及输入法编辑。比较 locale 时固定任务、内容语义和设备,避免把翻译质量或内容长度差异误认为文字系统效应;若采用 pairwise 或风险抽样,应公开未覆盖的高阶交互。

边界

按平均长度或语料统计选出的“长语言”不能保证某个按钮、错误消息或法律段落最坏;扩展率也会随译者、术语和上下文改变。脚本类别内部并不均一,测试一种 RTL、CJK 或复杂文字不能代表同类所有语言。模拟字体、机器译文和伪输入可用于早期压力测试,却不能替代生产字体、母语内容、真实键盘/输入法和辅助技术。此矩阵验证工程适配,不裁决译文含义或用户对表达的接受度。

怎么落地

  • 从实际支持范围建立风险登记:为每个 locale 标注方向、脚本、塑形、断行、字体、输入法、数字混排和预计字符串几何;按关键组件选择能覆盖不同风险的最小组合,不固定一个全球“最长语言”。
  • 对每个高风险字符串保存真实译文测量或有版本的长度分布,在按钮、标签、表格、导航、对话框和错误信息中测试最坏样本;伪扩展只作为真实样本不足时的补充。
  • 分别运行 RTL 整体布局与混合双向内容、CJK 换行与字体、复杂文字塑形/组合附标/行高,以及 IME 组合输入、删除和光标移动;覆盖窄屏、缩放、大字体和屏幕阅读器。
  • 将 locale、字体、平台、内容版本、组件状态和缺陷类型写入回归用例。发布门禁按风险层要求关键旅程全过,并在新增语言、字体或组件后重新计算组合,而不是永久沿用旧样本。

延伸

  • 同组S4.03.1 伪本地化在无译文时暴露布局问题 · S4.03.3 硬编码文本只能靠实际运行发现
  • 相邻S1.01.4 布局需按最长语言而非平均长度验证 · S1.02.1 镜像的对象是布局与方向,不是全部图形 · S1.03.4 字符计数与显示宽度不成正比
  • 站内检索locale test matrix · script coverage · bidirectional text testing

同组卡片

快捷操作

分享

分享当前页面

ios_share

https://hci.top/zh/handbook/S4.03.2