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

上传人:kms****20 文档编号:39898612 上传时间:2018-05-20 格式:DOC 页数:4 大小:65.50KB
返回 下载 相关 举报
国际化软件测试技术的实现_第1页
第1页 / 共4页
国际化软件测试技术的实现_第2页
第2页 / 共4页
国际化软件测试技术的实现_第3页
第3页 / 共4页
国际化软件测试技术的实现_第4页
第4页 / 共4页
亲,该文档总共4页,全部预览完了,如果喜欢就下载吧!
资源描述

《国际化软件测试技术的实现》由会员分享,可在线阅读,更多相关《国际化软件测试技术的实现(4页珍藏版)》请在金锄头文库上搜索。

1、摘要:摘要:对国际化软件测试软件测试的重要性、内容、方法等方面作了深入分析,并就当前普遍采用的国际化软件测试自动化工具存在的弱点进行了剖析,最终以 Selenium Pc-Java 工具做为解决问题的平台,提出了相应的解决办法,对已有的测试工具在国际化软件测试方面的功能的扩展提出了思路。关键词:关键词:软件测试;软件国际化;软件国际化测试国际化测试;软件本地化测试;软件测试工具软件测试工具经济的国际化促进了软件产业的国际化,软件国际化生产和全球服务已成为更多国际软件公司的发展策略。软件产品要获得更多的国际市场份额,必须进行软件国际化设计、开发、测试和服务。为了满足国际化软件世界范围内发布的需要

2、,软件的国际化设计和本地化工程处理是两个重要步骤。作为软件质量软件质量保证的国际化软件测试过程包含一系列相互关联的测试技术测试技术和流程。在广泛采用国际化开发模式的基础之上,如何提高这些测试的效率值得进一步研究。国际化软件测试包括软件国际化测试和软件本地化能力测试。软件的国际化测试是重要的测试阶段,必须在本地化测试之前进行。国际化软件的测试目的是判断软件的国际化设计程度,确定软件是否支持可能的区域,本地化是否容易。软件本地化测试的对象是本地化的软件,需要在本地化的操作系统操作系统上进行。本地化测试过程中,需要同时运行源程序软件和本地化软件,以源程序软件结果作为本地化软件的主要参考。1 测试工具

3、国际化弱点测试工具国际化弱点测试工具(尤其是自动化工具)在如今的测试过程中扮演着重要角色。尽管自动化测试自动化测试无法完全取代手动测试,但许多测试领域都因自动化测试的引入而获益匪浅。例如,通过使用自动化测试工具,可以有效地验证本地化产品的功能或测试产品的全球化程度。测试工具通过对原始应用程序和本地化后的应用程序对照运行自动化测试,可以验证应用程序的本地化是否对功能造成破坏。使用自动化测试,无论 UI 语言是什么,工具都可以测试其功能。此外,为确保产品已全球化,在测试过程中需要采用更广泛的测试输入范围以及更多样的环境设置。自动化操作可更轻松地应对测试方案数量上的增加,并可以有效地跟踪全球化测试的

4、结果。虽然自动化测试过程是在全球化环境下针对新产品运行一些可信赖的旧有测试工具,但如果被测应用程序已被翻译,则检查应用程序 UI 功能性的测试工具可能会被中断。即使未受译文的影响,其他其他因素也可能导致测试结果不正确,例如工具验证日期时认定日期格式是固定的。而在全球化的应用程序中,日期格式会随着区域和地区的不同而不同,这样就会造成自动化测试工具不起作用。为避免上述问题的发生,测试工具的开发人员必须与全球化软件的开发人员遵循相同的规则。测试工具必须是全球化的,必须动态调整其区域设置,并且应该能够处理国际化文本数据。此外,如果需要通过名称来访问可本地化对象,则测试工具必须是可本地化的。目前全球化测

5、试的问题主要有:(1)在针对国际化测试技术和策略中实现自动化测试脚本的复用问题。(2)测试环境的语言及字符集设置的选择,如果缺乏这种选择或者错误地进行了选择,则可能在具体测试过程中带来系统由于码制的切换错误而出现乱码的问题。(3)多种语言显示的测试问题,软件的翻译质量包括翻译的准确性、完整性、一致性,以及特定区域市场的文化、传统、习俗等内容。如果要实现对翻译的检查,需要根据所测语言而准备相应的翻译文件进行对比。当测试多种语言时,会增加测试人员的负担。(4)多语言和字符集的测试数据的自动生成,为了测试软件对接收、处理和发送不同字符集的能力,需要实现针对不同语言和字符集数据的自动产生。总之,伴随对

6、软件测试的日益重视以及自动化测试的逐步引进,各种自动化测试工具相继推出。但是各种自动化测试工具的可应用性程度和支持侧重有所不同,并且广泛缺乏对国际化测试的支持。2 测试工具国际化的扩展测试工具国际化的扩展针对以上论述的国际化软件测试的技术实现难点,通过对 Selenium RC-java 工具进行分析用以实现其对国际化支持的扩展。Selenium 是由 ThoughtWorks 团队开发的 Web 应用程序自动化测试的工具,适合进行功能测试功能测试、验收测试。Selenium RC 基本测试流程如图 1 所示,它提供了一个 Selenium Server,可以自动开始/关闭/控制所支持的浏览器

7、。Selenium Server 与浏览器使用 AJAX(XmlHttpRequest)直接通信,可以使用简单的 HTTP GET/POST 请求直接向服务器发送命令,即可以使用任何可以发出 HTTP 请求的编程语言在浏览器中自动执行 Selenium 测试。Selenium RC 和大多数的自动化测试工具一样,也在很多方面缺乏对国际化测试的支持。如在没有指定浏览器参数文件的情况下,Selenium Server 会启动一个系统默认设置的浏览器执行测试,默认设置语言为当前浏览器版本语言;操作函数直接使用大量页面元素作为参数,对这类数据取值存在依赖,使得Selenium 测试变得脆弱且需要针对测

8、试脚本中同一页面元素文本属性值进行重复修改;不能提供多语言和字符集的测试数据等。针对 Selenium 工具的不足,通过对测试脚本结构的设计,以及在 Selenium RC 封装的 Java 工具包中添加对环境设置的选择和参数文件的处理等改进,实现针对国际化测试的扩展任务。2.1 将特定语言的测试元素独立于测试脚本代码,支持多语言测试的脚本复用将特定语言的测试元素独立于测试脚本代码,支持多语言测试的脚本复用为了达到在多国语言测试时复用整套脚本的目的,将所有取决于特定语言文化的测试元素独立于测试脚本代码存储在参数文件内。(1)存放固定参数的参数文件。在这类文件中,存放针对任何语言版本测试过程中均

9、不需改变的参数数据。这些固定参数可以是测试用例运行过程中输入的字符串,也可以是界面元素的属性值,例如测试机IP 地址、界面上按钮的 ID 值、界面上表格的 xpath 值等。(2)根据测试语言和字符集,存放输入的随机数据的参数文件。根据测试语言和字符集要求,分析涉及直接或间接处理字符串输入/输出的测试案例,抽取其中可以被替换为任意国际输入类型的随机数据。在执行测试时,通过替换这些输入数据,以测试软件对处理不同语言和字符集的能力。例如,在执行新建用户这个测试用例时,需要输入一个新建用户的用户名。在设计中,这个用户名可以为任意国际输入类型的数据。为了测试软件对语言为英文、字符编码为 ISO-885

10、9-1 的输入数据 UserName 的处理能力,将该输入数据作为参数存储在参数文件进行测试。(3)根据测试语言,存放界面元素的文本属性值的参数文件。在 Selenium 工具包中,操作函数直接使用界面元素的属性值作为参数,而这些属性值的类型包括 name、ID、xpath、txt 等等。当测试的目标语言发生改变时,界面元素的文本属性值也根据目标语言对应的翻译文本而发生改变。如果这类参数与测试语言不相匹配,测试会因为界面文本数据不合法而失败。因此,将这类参数存储在单独的参数文件中,以方便对其灵活处理。例如,在测试英文版本软件时,需要点击一个命名为 Apply 的按钮,将其名字作为参数存储在参数

11、文件中。2.2 动态选择语言和字符集,支持多种语言测试过程动态选择语言和字符集,支持多种语言测试过程以某具体 Web 产品的国际化测试项目为例,测试项目全过程是通过使用 ant 这个构建部署工具作为流程脚本引擎,自动调用程序而完成。整个过程可以全部自动化,测试人员只需输入简单的配置命令。当然在每日构建的基础上,还可以不用输入命令而通过定时任务的设定实现每天自动执行回归测试。满足这种国际化回归测试的要求,首要条件就是有正确的初始化测试环境需要添加对测试环境语言和字符集的设置。这种语言及字符集设置的选择,不仅包括对当前所测软件语言版本的选择,还需要包括当前操作系统等环境语言与字符集设置的选择。在没

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

13、件/etc/sysconfig/i18n 或者通过设置LC_ALL 和 LANG 2 个参数实现。上述方法也可以扩展到多个语言和字符集环境的设置的情况。首先,将所有需要测试的语言的字符集存储在配置文件中;然后,串行或者并行地在测试机上进行测试。其中,串行执行是指依次正确初始化测试环境,循环执行测试流程,而并行执行是通过 Socket 通信将信息传递到多台目标测试机,并行初始化测试环境,执行全部测试流程。2.3 通过对通过对XLIFF格式的翻译文件的查找,实现测试页面上显示的翻译格式的翻译文件的查找,实现测试页面上显示的翻译本项目中的翻译文件采取 XLIFF 文件格式。XLIFF 是一种 XML

14、 应用,每个文本片段保存在一个翻译单元中()。通过查找相应测试语言的 XLIFF 文件,实现对前述的第三类参数文件的正确替换,以支持对不同语言版本显示的翻译的测试。2.4 利用正则表达式,处理包含特殊字符的翻译单元利用正则表达式,处理包含特殊字符的翻译单元在上述自动化的参数文件替换过程中,需要对大量的 XML 格式的翻译文本数据进行查找。但是,有一些特殊字符在写入到 XML 文件时,会被实体引用所替换。所以,目标界面上显示的字符串,可能出现与写入在 XLIFF 翻译文件中存储的翻译字符串不一致的现象。针对上述这类翻译字符串与显示字符串不一致的情况,可以通过正则表达式解决。利用正则表达式的模式匹

15、配表达法,对字符串进行比较、匹配,从而判断测试结果是否正确。例如:软件界面上存在一个按钮,英文版本的按钮显示的字符串为“About(A)”,而简体中文版本的按钮显示的字符串为“关于(A)”。然而,写入在 XLIFF 文件时,英文对应的翻译字符串应为“About(&;A)”,简体中文对应的翻译字符串应为“关于(&;A)”。因此,在进行简体中文本地化测试时,首先需要利用正则表达式符号“*”替换“&;”,通过“About*”查找 XLIFF 文件;然后,将查找结果“关于(&;A)”处理为“关于*”,再进行界面翻译测试。2.5 采用简单替换方式,自动生成指定语言字符集的测试数据

16、采用简单替换方式,自动生成指定语言字符集的测试数据在执行国际化测试时,需要测试软件对处理不同语言和字符集的能力。这种能力,可以通过简单的预处理进行测试。即简单替换前述的第二类参数文件。具体步骤如下:(1)需要维护一个包含所有待测语言和字符集的字符库;(2)根据参数文件中参数的字节数,从字符库中抽取制定测试语言和字符集的字符进行替换。为了实现自动生成指定语言字符集的测试数据,上述方法相对简单易行。但是伴随测试语言和字符集范围的扩展,字符库需要覆盖的语言和字符集也需要相应增加,这将带来巨大的维护工作量。另外,如果需要字符库覆盖较全面的东亚语言字符,也将带来一定的工作量。上述扩展方案针对 Web 技术的大型国际化应用软件的测试,主要使用 Selenium RC-java 工具开发测试脚本。项目要求同时实现在 Linux+Firefox3.0 环境下,对软件的九种语言版本进行国际化测试。在实际的测试工作中,运用了测试元素独立、动态选择语言字符集、根据标准化 XLIFF 格式转化三项测试软件,以及特殊字符翻译处理、测试数据生成两项实际技术,对 Selenium RC-Java 工具进行了必要

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 生活休闲 > 科普知识

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号