基于爬虫技术用以提高全球化测试效率的全新自动化解决方案2014-03-15 ibm 张微微, 杨晓波, 张海东随着计算机产业在全球市场的不断扩大,软件产品的全球化显得越来越重要。但在软件全球化过程 中,有许多繁重的工作是去寻找和校验产品界面上翻译后的字符串,从而确保软件产品界面友好并符合 多国语言文化的习惯。这对软件全球化来说是一个很大的挑战。现在我们提供一个基于爬虫技术的自动 化解决方案,用于快速查找和定位在Web应用界面上翻译后的字符串,来减少手工工作,提高全球化测 试工作的效率。此自动化解决方案的实现步骤主要有以下几点:a. 利用网络爬虫技术来探索 Web 应用上的 URL,并存成一份URL列表。b. 使用浏览器代理来加载每一个 URL 对应的网页内 容,用算法查找页面内翻译后的字符串。c. 一旦查找到对应的字符串,在页面上高亮显示翻译 后的字符串所在的区域,并截屏保存成文件提供给相应语言的本地的测试人员校验。一、全球 化测试及其测试难点随着计算机产业在国际全球市场的日益扩大,使得软件产品不仅需要有强 大的功能,还要能够适应全球客户所在地的语言和文化才能在竞争激烈的市场中脱颖而出,所以全球化 测试在软件开发测试中越来越重要。全球化测试主要包括 GVT(Globalization Verification Test) 和 TVT(Translation Verification Test)两部分,前者主要是针对软件产品的使用能够跨越多个文 化地区,并且不必顾及语言及地区性的差别,要求其功能和设计不仅仅支持单一的语言和区域,还要保 证一套确定的支持 Unicode 的语言以及特定区域的相关数据能够正常输入、显示、输出 ;后者针对的是在产品中显示的字符串的翻译是否合理,是否能够正确显示。我们所设计的解决方案主 要是为了提高后者 TVT 测试的效率。目前在 TVT 测试过程中遇到的难点主要有两点:定位被测字符串在产品中的位置:产品功能日趋复杂,如果开发人员没有提供足够的产品信息,测 试人员需要学习了解产品来找到被测字串在产品中的页面,这不光给测试人员带来挑战,也会花费较多 的时间成本,测试的覆盖率也不乐观。TVT 测试工作重复枯燥:如果测试用例比较复杂,或者有时为了节省成本,我们 TSE(TVT Support Engineer)会通过测试用例步骤,直接帮忙截取相应翻译语言的产品界面,再发给本地翻译测试 人员以便让他们更容易更方便的进行测试。但 TVT 测试的语言可能有20个,甚至更多,每个测试用例 对应的每个语言都需要截图,在测试用例较多的情况下,如果采用人工截图,就会耗费较多的人力和时 间。可见这部分工作比较重复枯燥,也有可能影响大家工作的积极性。二、自动化解决方案的相关技术介绍此自动化解决方案的主要功能是通过字符串信息来自动 找到字符串在产品中的界面,自动截取界面并保存,最后本地翻译测试人员只需直接对截图的画面进行 测试,可以避免由复杂而重复的测试所带来的困难和人力成本。该解决方案的关键技术是通过网络爬虫 技术找到网站产品下所有页面,并从中选出含被测字串的页面,所以此方案只针对基于 Web 的软件产 品。网络爬虫技术也叫网络蜘蛛,它是一个按照一定的规则自动提取网页的技术,每到一个网 页就用程序读取网页内容,找到网页中的其它链接地址,然后通过这些链接地址寻找下一个网页,这样 一直循环下去,直到把这个网站所有的网页都抓取完为止,所以能通过它对 Web 应用的结构进行探索 。网络爬虫总是要从某个起点开始爬,这个起点叫做入口地址,也就是只需提供某一 Web 应用的入口 地址,用爬虫技术就可以搜索到此应用下的所有页面。IBM 有一款含网络爬虫技术的软件产品 叫做 Appscan Standard,该解决方案可以直接应用这个产品中的技术。Appscan standard 是业界一款 优秀的Web应用安全测试工具,是对网站等 Web 应用下所有页面进行安全攻击,来检查网站是否存在安 全漏洞,所以它具备分析网站结构的爬虫技术,而我们所设计的解决方案需要的就是这个关键技术,利 用了网页的请求都是用 http 协议发送,发送和返回的内容都是统一的 HTML 语言,那么对 HTML 语言 进行分析,找到里面的参数和链接,记录并继续发送,最终找到这个网站下众多的页面和目录,这个功 能在 Appscan 中叫做“探索”,就是去分析了解未知的网站结构,并进行记录。三、自动化解 决方案的设计过程与实现基于 web 的产品的 TVT 人工测试过程如下:TVT 开始前会由开发组提供叫 PII(Program Intergrated Information)的文档,包含了软件产品 中一些用户可见的字串,类似于图 1,是由 KEY=Value 这种形式组成,Value 就是软件产品中用户可 见的字串。通过 PII 档案,我们可以确定开发组本次需要做翻译测试的字串,实际测试中所涉及的档 案可能有几十到几百个,需要测试的字串字数也有几千到几万。假如红框内的字串是其中需要测试的。图 1. PII 文档