国际化软件测试技术的实现

发表于:2010-11-02 11:02

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:张爱玲    来源:51Testing软件测试网采编

  在没有指定浏览器参数文件的情况下,Selenium Server只会启动一个系统默认设置的浏览器执行测试,默认设置语言为当前浏览器版本语言。特定浏览器语言和参数字符编码的设定主要通过以下方法实现:首先,根据测试人员的选择,将需要测试的语言和字符集存储在配置文件中;然后,根据测试要求的浏览器语言和字符集设置,在Firefox的参数文件prefs.js中添加为用户语言首选项;最后,在启动Selenium Server时,添加“firefoxProfileTemplate”选项并指向已修改的Firefox的参数文件目录。

  客户端操作系统(Redhat4.0)的语言和字符集,可以通过修改文件/etc/sysconfig/i18n或者通过设置LC_ALL 和LANG 2个参数实现。

  上述方法也可以扩展到多个语言和字符集环境的设置的情况。首先,将所有需要测试的语言的字符集存储在配置文件中;然后,串行或者并行地在测试机上进行测试。其中,串行执行是指依次正确初始化测试环境,循环执行测试流程,而并行执行是通过Socket通信将信息传递到多台目标测试机,并行初始化测试环境,执行全部测试流程。

  2.3 通过对XLIFF格式的翻译文件的查找,实现测试页面上显示的翻译

  本项目中的翻译文件采取XLIFF文件格式。XLIFF是一种XML应用,每个文本片段保存在一个翻译单元中(<trans-unit>)。通过查找相应测试语言的XLIFF文件,实现对前述的第三类参数文件的正确替换,以支持对不同语言版本显示的翻译的测试。

  2.4 利用正则表达式,处理包含特殊字符的翻译单元

  在上述自动化的参数文件替换过程中,需要对大量的XML格式的翻译文本数据进行查找。但是,有一些特殊字符在写入到XML文件时,会被实体引用所替换。所以,目标界面上显示的字符串,可能出现与写入在XLIFF翻译文件中存储的翻译字符串不一致的现象。

  针对上述这类翻译字符串与显示字符串不一致的情况,可以通过正则表达式解决。利用正则表达式的模式匹配表达法,对字符串进行比较、匹配,从而判断测试结果是否正确。例如:软件界面上存在一个按钮,英文版本的按钮显示的字符串为“About(A)”,而简体中文版本的按钮显示的字符串为“关于(A)”。然而,写入在 XLIFF文件时,英文对应的翻译字符串应为“About(&amp;A)”,简体中文对应的翻译字符串应为“关于(&amp;A)”。因此,在进行简体中文本地化测试时,首先需要利用正则表达式符号“*”替换“&amp;”,通过“About*”查找XLIFF文件;然后,将查找结果“关于(&amp;A)”处理为“关于*”,再进行界面翻译测试。

  2.5 采用简单替换方式,自动生成指定语言字符集的测试数据

  在执行国际化测试时,需要测试软件对处理不同语言和字符集的能力。这种能力,可以通过简单的预处理进行测试。即简单替换前述的第二类参数文件。具体步骤如下:(1)需要维护一个包含所有待测语言和字符集的字符库;(2)根据参数文件中参数的字节数,从字符库中抽取制定测试语言和字符集的字符进行替换。

  为了实现自动生成指定语言字符集的测试数据,上述方法相对简单易行。但是伴随测试语言和字符集范围的扩展,字符库需要覆盖的语言和字符集也需要相应增加,这将带来巨大的维护工作量。另外,如果需要字符库覆盖较全面的东亚语言字符,也将带来一定的工作量。

  上述扩展方案针对Web技术的大型国际化应用软件的测试,主要使用Selenium RC-java工具开发测试脚本。项目要求同时实现在Linux+Firefox3.0环境下,对软件的九种语言版本进行国际化测试。

  在实际的测试工作中,运用了测试元素独立、动态选择语言字符集、根据标准化XLIFF格式转化三项测试软件,以及特殊字符翻译处理、测试数据生成两项实际技术,对Selenium RC-Java工具进行了必要的扩充和修改。实践验证了其对于国际化测试的支持,取得了良好的效果。

33/3<123
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号