
关注 霍格沃兹软件测试开发 公众号回复「资料」, 领取人工智能测试开发技术合集从巴西葡语到印尼语32种语言再也不用手动翻页面了大家好我是快手国际化业务质量保障团队的一名技术负责人负责Kwai海外版的本地化质量保障工作。今天聊一个我们去年跑通的项目——用AI做多语言UI的自动化LQA语言质量保证测试。先上结果LQA测试周期从每版本7天压缩到了20分钟覆盖语种从5个扩展到32个UI截断、文本溢出这类本地化问题线上漏出率下降了91%。不是标题党。下面我把这个方案的完整思路和踩过的坑都讲一遍。一、LQA为什么是出海产品最磨人的环节先解释一下LQA是什么。LQA全称Linguistic Quality Assurance也就是语言质量保证。它跟功能测试完全不是一回事——功能测试看的是“功能能不能用”LQA看的是“翻译放进UI里好不好用”。翻译在表格里正确不代表在UI里可读单句翻译自然不代表和前后句连贯。Kwai覆盖全球几十个国家和地区支持32种语言——巴西葡语、印尼语、西班牙语、阿拉伯语、泰语、越南语……每种语言都有自己的坑。以前我们的LQA流程是这样的第一步翻译团队把文案翻译好生成多语言资源文件。第二步测试同学手动切换App语言逐页截图。第三步逐页检查——文本有没有被截断有没有溢出按钮有没有换行混乱阿拉伯语的RTL布局对不对第四步发现问题→截图→提交Bug→开发修复→重新截图验证。一个版本测下来少则5天多则7天。而且每改一个文案可能就要重跑一轮。更坑的是——32种语言每个语言都要重复这套流程。测试同学手动切语言、手动翻页面、手动截图、肉眼找茬。测到第10种语言的时候眼睛已经花了漏检率直线上升。每个版本7天是硬磨出来的。二、转折让AI“替我们看”所有语言去年Q3我们启动了一个项目——用AI视觉校验做多语言UI自动化LQA。核心思路来自一个很朴素的观察翻译在表格里没问题但放进UI里可能出问题——文本溢出、截断、换行混乱、RTL布局错位。这些问题靠人工逐页翻找效率太低。我们决定让AI来干这件事。具体来说我们做了三件事。三、技术方案三层架构第一层自动化UI遍历层 —— 让AI“替人翻页”LQA的第一步是“把所有页面都翻一遍”。以前是测试同学手动翻现在我们用自动化UI遍历来做。我们的方案基于Kwai的UI自动化框架集成了一个智能页面遍历引擎自动启动App按预设路径遍历所有核心页面对每个页面自动切换语言并截图支持32种语言的全自动切换和截图关键设计是“一次遍历多语言截图”——引擎用一种语言通常是英语走完所有页面路径记录下每一步的操作序列然后用同样的操作序列在其他31种语言上重放一遍分别截图。这样一来测试同学只需要维护一套遍历脚本AI负责在32种语言上各跑一遍。一个版本跑下来生成几百张多语言UI截图——这些截图就是LQA的“原材料”。第二层AI视觉校验层 —— 让AI“替人找茬”截图有了但几百张图让测试同学一张张看跟手动翻页没什么区别。核心是第二层——用多模态大模型做UI视觉校验。我们把所有截图喂给多模态模型让它自动检查以下几类问题第一类文本截断和溢出这是LQA最高频的问题。中文短很多语言更长——德语、俄语、西班牙语、葡萄牙语经常让按钮、标签、弹窗标题变长。AI要做的是自动检测UI元素里的文本是否超出了容器边界——按钮里的文字有没有被切掉一半标签有没有溢出到下一行弹窗标题有没有被省略号截断传统方案需要人工逐页看AI现在秒级完成。第二类RTL布局错位阿拉伯语、希伯来语是从右向左书写的RTL。UI在LTR左到右语言下正常切到RTL语言下整个布局会镜像翻转。问题是——大部分测试同学根本不懂阿拉伯语看不出RTL布局对不对。AI不同。多模态模型经过训练能自动识别RTL布局下的文本对齐、图标位置、按钮顺序是否正确。第三类翻译上下文错误翻译在表格里是对的但放在UI的特定语境下可能很别扭。比如一个“Start”按钮在游戏里可能是“开始战斗”“开始匹配”“开始建造”不同场景需要不同译法。AI会结合页面上下文判断翻译是否合适——不只是看单词对不对还看放在这个按钮上、这个位置、这个语境下合不合适。第四类占位符和变量错误多语言文本里经常有变量——{username}、{count}、{item_name}。不同语言的语序不同变量的位置如果没处理好就会出现语法错误。AI会自动检测变量是否被正确替换、位置是否合理、复数形式是否正确。第三层智能报告层 —— 让AI“替人写报告”AI校验完所有截图后自动生成一份LQA报告页面语言问题类型问题描述严重程度建议修复首页-标题栏葡萄牙语文本截断Recomendados超出容器中缩小字号或缩短文案设置页-按钮阿拉伯语RTL错位返回按钮位置错误高调整RTL布局适配个人中心-标签印尼语翻译错误“Profil应为Profil Saya”低更新翻译测试同学不需要一张张看图了只需要看这份报告确认问题是否属实然后一键提交Bug。四、真实案例AI发现了什么系统上线后我们发现了很多手工LQA发现不了的问题。案例一巴西葡语的“隐形截断”Kwai的首页有一个“热门话题”标签栏。英语下显示正常巴西葡语下也“看起来正常”——但AI检测发现“Tendências”这个词的最后一个字母“s”被切掉了1个像素。肉眼几乎看不出来但AI的像素级检测抓到了。开发排查后发现是容器的padding少了2px。这个Bug如果上线几十万巴西用户每天看到的都是一个“缺胳膊少腿”的热门话题标签。案例二阿拉伯语的“镜像噩梦”Kwai的直播功能在阿拉伯语下测试时AI发现送礼物按钮的位置完全错了——它应该在右侧但实际显示在左侧。原因是RTL适配只做了文本方向没有做UI组件的镜像翻转。测试同学手动测的时候因为不认识阿拉伯语根本没发现按钮位置反了。AI一眼就看出来了。案例三印尼语的“变量爆炸”印尼语有一条文案“{user} memberi {count} hadiah”——意思是“{user}送了{count}个礼物”。AI在验证时发现当{count}超过999时数字会超出容器导致UI错位。原因是设计时只考虑了{count}是1-3位数的场景没考虑4位数以上。这个Bug如果手工测需要专门构造“送了1000个礼物”的测试数据——几乎不可能想到。AI在视觉校验时自动发现了文本溢出直接报告。五、踩过的坑说三个最痛的坑一截图质量参差不齐初期UI遍历引擎在弱网环境下截图经常失败——页面还没加载完就截图了导致AI拿到的是“空白页”或“加载中”的截图误报率极高。解法在截图前加入页面加载完成检测——监控网络请求完成、DOM稳定、图片加载完毕再触发截图。同时加入重试机制截图失败自动重试3次。坑二多模态模型的“误杀”初期AI太敏感了——稍微有点像素偏差就报“文本截断”。比如某些语言的字体会比英语粗一点看起来“好像贴着边”但实际并没有溢出。解法建立宽松的判定阈值——只报告“明确溢出”文本明显超出容器边界的问题对“疑似溢出”标记为低优先级由人工复核。同时用大量人工标注的数据持续微调模型让AI学会“什么算真截断、什么算正常”。坑三32种语言的字体渲染差异不同语言、不同系统版本、不同设备上同一个UI的渲染效果可能不一样。AI在测试机上看到的截图和生产环境上用户看到的可能不同。解法在多种设备和系统版本上并行执行截图覆盖主流机型。同时建立“基准截图库”——每个页面在英语下的正常截图作为基准其他语言与基准对比只报告明显偏离的情况。六、效果数据说几个硬数据指标优化前人工LQA优化后AI LQALQA测试周期5-7天20分钟覆盖语种5个32个覆盖页面~50页全量遍历UI截断漏测率基线↓91%AI自动发现问题累计400人工复核时间7天1小时/版本最关键的变化LQA从“测试团队的噩梦”变成了“CI流水线里的一环” 。现在每次代码合入AI自动跑一遍LQA20分钟出报告。有问题立即拦截不需要等到测试阶段才发现。七、给同行的一些建议如果你也在做出海产品的多语言测试我有几点实在的建议LQA一定要在UI里做不能在表格里做翻译表格里再完美放进UI里都可能出问题。UI截断、RTL错位、上下文错误——这些只能在真实的UI渲染中发现。一定要做UI级别的LQA不能只看翻译文件。“一次遍历多语言截图”是最省力的方式不要为每种语言单独写遍历脚本。用一种语言走完所有路径然后用同样的操作序列在其他语言上重放。维护一套脚本覆盖所有语言。多模态模型是LQA的“神兵利器”传统OCR只能识别文字但多模态模型能理解“文字放在哪里、有没有超出边界、布局合不合理” 。LQA的核心是“看UI”多模态模型正好擅长这个。阿拉伯语和希伯来语单独建“RTL专项”RTL语言的测试和LTR语言完全不同。不要混在一起测。我们专门为阿拉伯语建立了一套独立的RTL校验规则——文本右对齐、按钮镜像翻转、布局水平翻转每一项都有独立的检查逻辑。先跑核心页面再扩展全量别一上来就让AI遍历所有页面。先从首页、设置页、个人中心这些核心页面开始跑通了再逐步扩展到全量页面。最后AI做LQA本质上是把“让测试同学翻32种语言的几百个页面”这件事自动化了。以前我们做不到全覆盖——32种语言、几百个页面靠人工翻一遍7天是下限。现在AI在20分钟内完成遍历、截图、校验、报告全流程。Kwai还在扩展新的国家和地区语种只会越来越多。如果没有这套AI方案我们的LQA团队规模至少要翻两倍。但现在一个人加一套AI工具20分钟全覆盖。出海产品的本地化质量从此不再是靠“肉眼找茬”来保证的了。本文部分内容参考了霍格沃兹测试开发学社整理的相关技术资料主要涉及软件测试、自动化测试、测试开发及 AI 测试等内容侧重测试实践、工具应用与工程经验整理。本文系作者基于快手国际化业务真实项目经验的总结文中数据已做脱敏处理。欢迎同行交流讨论。