国际化测试第二级 区域转换支持和本地化字符支持

上一篇 / 下一篇  2009-12-26 17:09:29 / 个人分类:国际化测试

今天我们来说一下国际化测试的第二级,保证软件在何区域性或区域设置中都能正常运行,并且能够支持本地化的字符输入,输出和显示。

国际化测试测试点最多的就是这一级别,这一级别又分了两大类,区域转换支持和本地化字符支持。
我们先来说一下区域转换支持,区域转换支持这块测试理解起来比较简单,但是测试点比较多,我在本地化和国际化的那个板块也发过一些帖子包含了这部分内容,今天再回顾一下。不同的国家数字显示,货币符号,时间显示,姓名顺序,地址显示,度量单位,打印机默认纸张大小,排序规则等可能不同,如果在设计和开发软件过程中没有充分考虑到这一点,将会出很多问题,最简单的,比如日期,有的国家习惯显示为MM/DD/YYYY,有的国家习惯用DD/MM/YYYY,如果有一个日期07/20/2009,大家可能会说是2009年7月20日,如果是07/10/2007,这个日期就有不同的含义,所以在设计国际化软件时,像日期,货币符号这些东西决不能硬编码,一定要根据用户的区域设置来取,而且要能随着用户的区域设置变化而变化,要不然要出很多问题。大家可以到控制面板-->语言和区域设置中看一下,选不同的国家看看这些区别。这些测试点虽然测试起来比较简单,但是很零碎,分布在不同的地方,并且一般不会影响程序的功能使用,主要考验的是测试人员对国际化的测试点的熟悉程度和细心程度,所以是国际化测试中比较容易疏漏的地方。在崔老师的书里面有详细的介绍,其中还提到了颜色,图像,还有一些政治相关的东西。颜色大家可能比较好理解,西方人和东方人对颜色有不同的理解,就像中国的股市涨就用红色,跌就用绿色,美国就和我们的相反。建议大家可以看一看崔老师的书这一部分。

区域转化支持除了上面说的对用户区域设置的支持外,还有一块就是对时区(TimeZone)转换的支持。大家都知道,当我们是白天的时候,美国是晚上,如果你在北京说你是早上8点,那美国那边有可能是下午4点,所以在系统中记录时间时,一定要记录GMT时间,显示时间时再根据系统当前的时区转换为本地时间。以Report为例,如果有一个Report上要显示一些时间,当用户在美国用客户端看到的时间应该是美国当地的时间,当用户在中国用客户端看到的应该是中国当地的时间,时区转换支持的测试起来也比较简单,直接到日期和时间设置中,改变时区设置,看系统中显示的时间会不会根据时区的变化而变化,再根据当前的时区计算一下时间转换的是否正确。比如当前时区为GMT+8,时间显示为9:00AM,所以当前时间为GMT+0 1点, 如果你把时区转换为东京时区GMT+9,那么时间显示应该为10:00 AM。这里顺便提一下时间显示,有的国家习惯用24小时制,有的国家习惯用12小时制,这个也是区域转换支持的测试点之一。在测试时区时,要特别注意的就是客户端和服务器端程序,客户端要记录GMT时间,在客户端显示为客户端本地时间,传送GMT时间到服务器端,服务器端显示时再根据服务器时区转换为服务器本地时间。在工作当中经常有些开发人员在这个地方出错。关于时区测试还有一个测试点就是夏令时的测试,以前中国也有夏令时,就是到夏天,时间会提早一小时,夏天过后,再推迟一小时,现在美国和欧洲的一些国家还在实行夏令时,特别是美国不同的州还实行不同的夏令时,所以在测试时间时还要考虑如果在特定的时区刚好赶上在实行夏令时的日期,系统显示的时间也要考虑夏令时的问题。

国际化测试第二级另一个测试点就是本地化字符的支持,支持本地化字符一般就是支持Hi-ASCII和DBCS,有时候也叫做支持多字节字符。(Hi-ASCII和DBCS大家可以到网上看看具体的概念。)只要是软件中能输入的地方,都要想办法去输入本地化字符,包括安装路径,新建的对象名,报表,导入导出文件中包含本地化字符等,看本地化的字符是否能正常显示,是否影响程序的功能正常运行。一般情况下至少要选两种语言的操作系统进行测试,东亚这边选日文或中文,欧洲那边选德语或法语,如果资源比较多的化还可以选一些其他语言,测试过程中,除了使用一般的本地化字符外,还要使用一些能引起国际化问题的问题字符。比如0x5c,如果DBCS中第二个字节包含"0x5c",则这个字则可能会引起一些问题,"0x5c" 实际上就是"\",如果它是在DBCS的第二个字节,处理不当就会出问题,可以在百度或google搜一下关键字0x5c看看相关问题的描述。如果软件对本地化字符支持不好,那么在显示这些本地化字符时有可能出现??,有可能会出现乱码,大家有时候在网站或使用一些软件时看到文字不能正常显示就是典型的国际化问题,主要原因就是在编码方式上可能有问题,在使用文字时一定要先看看字符的编码是什么方式。说到编码这块大家可以在网上看看Unicode相关的东西,还有UTF-8之类的编码方式,也可以看看有些人问道一些乱码,问号问题的解答,看完那些相信大家对字符处理会有更多的认识。从测试角度来看,在测试这块的时候并没有太多的技巧可言,关键是提前准备好测试数据,就是准备在测试中输入的Hi-ASCII或DBCS字符,还有那些问题字符。只要测试数据准备的足够充分,剩下的就是检验测试结果了。

国际化第二级就说到这里,下次我们再说国际化的第三级,保证测试软件可以被方便的本地化而不需要重新设计或修改代码。

 


TAG: i18n I18N 国际化

 

评分:0

我来说两句

Open Toolbar