|
该专题今天是最后一天了,感谢大家的捧场,也感谢大家的提问,回复帖子对于我个人来说也是一种温习和总结的过程,总结了下最近关于该专题的回复,如下!(没有太多时间重新评审,如果有错别字,相信大家中文阅读理解的能力哦)
帖子总结---国际化测试和本地化测试
基本概念:
I18N: 是Internationalization 国际化的缩写,中间的18 代表字母I和字母N之间的18 个字母,简称I18N。国际化测试是测试软件适应国际化市场的能力,即是当软件需要适应不同国家的区域、时间、语言、文化习俗的时,不需要重新设计软件和修改代码就可以支持。比如:对于Windows系统,测试它可以支持不同国家的区域设置、时间设置和不同的语言等,是进行国际化测试。那么这种国际化是必须在前期的设计阶段需要考虑的,当要开发成要支持各个不同的本地版本时,不需要过多的设计和代码修改,只需要通过修改相关配置或者少量代码修改即可支持。
L10N:是Localization 本地化的缩写,中间的10代表首字母L和尾字母N之间的10个字母,简称L10N。本地化测试是测试软件在特定的区域、语言和文化下的功能和性能是否符合本地市场的需求。
比如,对于Windows系统,在测试支持中国用户使用时,通过修改区域、时间、语言等配置,验证可以适应中国用户的功能和性能等需求。
相关书籍:
就书籍来说,目前为止只是看过崔启亮写的<国际化软件测试>这本书,谈不上特别推荐,同学如果有兴趣可以看看 , 另外印象比较深刻的是朱少民的《全程软件测试》里面有一章专门讲国际化和本地化测试,推荐看看。
另外,论坛版块[本地化软件测试与国际化软件测试]版主silver_q倾情推荐《全球化软件开发最佳实践》+《国际化软件开发》
国际化测试的源语言测试和伪翻译
个人理解,国际化测试其实是验证软件具备本地化的能力,比如设计的windows系统要有能力开发成中文版、日文、泰语版、阿拉伯语版等,那么这些需要在设计的时候在支持语言方面考虑的不仅仅是支持单字节,也要考虑双字节和多字节字符集,而测试的时候可以验证软件是否可以通过修改语言配置就可以支持相关的多字节语言如中文、日文等,并非要用实际的客户环境。
因此,常用的国际化测试有两种方法,一种是基于源语言进行功能测试,就是只是在源语言的基础上进行测试,是否可以在源语言版本上配置不同的区域、不同的时间、不同的语言,而不是Hardcode。
还有一种方法是针对伪翻译版本进行测试。伪翻译是测试软件是否支持多语言的国际化测试方法,通常会发现是否需要翻译的语言被硬编码,是否对字符集支持,界面是否支持可翻译性(翻译后的界面问题)等。
国际化一般是基于EN。原来项目组就是这么做的。基于源语言的测试是国际化常用的方法,源语言个人觉得可以是任何语言,所谓源语言是写在应用程序代码中的语言,如果源语言是zh_CN,当然可以先做zh_CN,再做EN,JP
而如果对于某版本的各个语言做本地化测试,肯定是需要模拟真实的环境,比如对于windows的日文版本进行本地化测试,是在国际化的基础上保证系统是支持日文、时区等设置,包括对于日式键盘支持、翻译成日文来验证系统的各个功能、性能等。
国际化测试常用的一些原则:
1,国际化测试尽早进行,在设计阶段就需要开始
2,本地化文字与源代码分离,避免hardcode(硬编码)
3,要支持单字节字符集(Single-Byte Character Set)和多字节字符集(Double-Byte Character Set)
4,支持Unicode标准,支持代码页转换,支持字体转换,支持双向文本(LTR,RTL)
5,避免嵌入本地化文字到Image(图片)或者Icon(图标)
6,界面控件可以自扩展
7,源语言的文字描述要精确,利于本地化翻译
8,快捷键要支持不同区域的键盘
9,源语言软件可以支持不同的区域和操作系统
10,字符串的长度要满足本地化后的扩展
本地化中的翻译问题:
翻译的问题,也就是本地化的问题,对翻译的支持也即时对本地化的支持。
国际化通常会从对字符集、文化习惯和对翻译的支持。可能有同学会有疑问?对翻译的支持不是对本地化的支持吗?前面我有讲过,所谓国际化其实就是本地化的能力,国际化是本地化的基础,只有做好了国际化,才可能本地化。
而对于字符集和文化习惯(日期、时间、货币、地址,人名等)的支持,通常可以通过使用UNICODE字符集(跨语言的代码时候最好采用unicode)来支持。
而对于翻译的问题,通常从下面几个问题考虑
1,界面布局
翻译后引起过长的字符串,导致被截断,被遮盖和对齐的界面问题
2,双向字符集语言的支持
也叫Bi-Direction Language。主要包括希伯来语、阿拉伯语和乌尔都语等。就是允许双向文本,普通的英文等语言的书写顺序是从左向右(LTR),而这些语言语言是从右往左(RTL)
3,本地化资源及文件和代码分离
从程序设计开始就需要考虑资源文件的分离和管理,也即是通过资源文件来保存本地化时需要进行翻译的内容。包括两个部分:一个是用户可以看到的界面信息,一个是异常时候抛出的信息 |
|