多语言的测试经验分享
Posted 默然
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了多语言的测试经验分享相关的知识,希望对你有一定的参考价值。
(转载)原文地址:https://blog.csdn.net/alice_tl/article/details/78907732#comments
所谓多语言测试,是指APP在多个使用不同语言的国家发布,则必须对多种语言支持的一种场景测试。比如希望在Google Play上发布一个APP,提供给全球用户下载,那么就需要支持英语、泰语、韩语、阿拉伯语等等不同国家的语言。
近期项目要接触到多语言测试,于是将自己的经验梳理了一下,可以给大家参考。
测试注意事项:
1、同一语言,不同国家的代号不同
不同国家,即使都是英文,语言的代码也是不一样的,举个例子看大家就明白了。
这是列举的部分英语为母语的国家语言代号:
en英语
en-us英语(美国)
en-gb英语(英国)
en-au英语(澳大利亚)
en-ca英语(加拿大)
这是列举的中文繁体的不同地区语言代号:
zh-tw中文(中国台湾)
zh-hk中文(中国香港特别行政区)
语言代号与android系统的语言具有对应关系,即系统语言里看到的这个列表:
因此,如果代码里设定了当检测到系统的语言代号为en-us美国英语时,才显示英文字符串信息。那么切换系统到英国英语时,app仍然是不显示英文的,甚至可能会直接崩溃。
2、不同国家和地区,日期的显示习惯不一样
用户设置了不同语言和地区时,操作系统会自动为其设定相应的日期和时间格式,如何用户在设备上选择的日期格式和APP代码里的格式不一致,就会导致APP无法显示日期和时间,甚至使APP崩溃。
比如中国日期,1996年3月2日
英国习惯表示为:2nd March,1996
美国习惯表示为:March 2,1996
3、不同语言,文字的换行显示有不同的处理方法
对于中文来说,每个字都是独立的,随时可以换行。而如果把英文单词按照汉字一样处理,则认为每个字母是独立的,这样会导致单词换行显示且没有连字符。
并且英文的单词普遍比中文更长。
例如“不同”,翻译成英文是“different”,英文足足比中文多了一倍的字符长度。
不能词中换行可能导致的问题就是文字过多重叠、或者是压缩字号展示,又或者是以省略号显示了,总之都不美观。
因此,要重点关注字符串长的内容,尤其是文案提示、导航栏、APP的一些操作按钮。
4、不同语言,文字的阅读顺序不一致
比如,英文是“从左往右”写,而希伯来文和阿拉伯文是“从右往左”写。
这是英文界面从左往右的布局图:
这是阿拉伯语言适配的界面:
那么系统切换为阿拉伯文时,APP界面展示是否符合阿拉伯人的文字阅读习惯呢?
如果不知道系统里哪个选项对应的是阿拉伯语言,或者希望知道系统里的各个语言选项对应的是什么语言,可以看这个清单:
https://blog.csdn.net/alice_tl/article/details/78942241
5、不同国家和地区,使用语言的情景不同
比如大部分软件中都有注册登录体系,并且支持用户修改昵称,有的软件会设定为昵称只允许输入中文、字母和下划线,不支持输入空格。这样对于英文用户来讲,是非常不合理的设计。
因此国际化下,我们更应该注重用户场景测试,考虑国外人的生活文化习惯。
6、不同语言,适配的输入法不同
很多APP会在多个国家或地区发布,因此要支持多语言的显示,并且需要支持多语言的键盘,比如微信,当手机系统语言设定为英语时,APP界面应显示为英语,支持输入中文、英文以及各种语言。系统切换为泰语,就应该要支持泰语的键盘输入内容。
并且,如果切换和适配语言的同时,能够自动默认切换为对应语言的输入法,用户体验上可能会更好一些。
如何避免多语言问题呢?
1、翻译人员最好是够专业。
专业性体现在,一是对这门语言非常掌握,可以保证准确性,另外可以保证符合不同国家和地区的语言文化习惯,不会出现一些忌讳词或负面词汇。
2、翻译后的内容最好是言简意赅。
这样可以减少很多不必要的重叠、换行、省略显示等问题,通常多语言测试的缺陷中,70%以上的问题都是因为内容过长导致的显示问题。
3、开发实现上最好是多语言文件脱离代码。
避免将多语言文字变量写死在代码中,最好是独立文件,并且每个语种对应一个文件,这样测试和校对时都会更加方便,并且不容易出错。
4、开发实现上最好是设置一种默认语言。
当app识别到系统设置的语言代号并没有对应的字符信息匹配时,直接显示默认语言。通常国内可以设置为中文,海外可以设置为英文,这样当系统设置的语言,对应APP代码中找不到匹配的语言文件时,显示为英文,总好过出现崩溃。
如何提高多语言测试的效率呢?
1、检查语言对应的values xml文件代替app界面
因为通过app界面检查时,一方面由于语言多不懂,操作难度增加,操作效率降低,并且覆盖的界面太多,相当于各种语言下把app又冒烟测试一遍。如果支持40种语言,那就要冒烟四十次,测试效率极低。
因此,不必全部通过app的操作和界面进行检查,可以直接看xml文件中是否有过长和偏长的内容,通常情况下所有的values文件都在同一个目录,我原来的项目一般是以翻译后的内容不超过中文长度的1.2倍来作为标准的。
2、将了解完整的国家、及语言对应关系,快速设置多语言
完整的国家语言代码见这篇文章:https://blog.csdn.net/alice_tl/article/details/79706474
3、将第一点中的手动检查,做成自动化工具覆盖
定义一个字段内容的长度基准,轮询对各个xml文件进行比较、覆盖、以及报告。人工只分析报告就可以来。
以上是关于多语言的测试经验分享的主要内容,如果未能解决你的问题,请参考以下文章