1.3 自动化测试的引入

  针对手工测试在国际化测试中的缺点,自动化测试应运而生。自动化测试的引入很好的解决了上述问题,自动化测试的优势在于可以规范测试流程,减少人为的错误,并且自动化测试由电脑自动执行,效率高,另外自动化代码开发出来之后,可以在不同语言、不同市场上重复利用,重复利用率很高,这一点是自动化测试应用在国际化测试中大的优势。

  2、自动化测试在国际软件测试中的实施

  2.1 可行性分析

  并非所有的国际化测试都适合引入自动化测试,自动化测试也需要开发和搭建测试框架、创建测试用例,这也意味着成本的投入,如果自动化的投入超过了手工测试,则自动化的引入是不必要的,因此自动化测试较适合软件长期使用,版本经常更新的软件,每次版本的更新都要进行测试,这进一步提高了自动化测试程序的利用率。

  因此软件的国际化测试是否适合引入自动化测试是需要满足一定条件的,以下几个方面缺一不可:软件的开发过程已经基本完成,并且该软件会长期使用,定期会推出新的版本;软件需要应用于多个语言和市场上,测试的重复率较高;自动化测试较易实现,投入成本不高。

  2.2 自动化测试的实施

  2.2.1 自动化测试程序的框架结构

  目前市场上所使用的自动化测试的工具以及方法都很多,从工具上看主要有LoadRunner、QuickTestProfessional、TestDirectorforQualityCenter、Tational Tobot、WinRunner、QA Run等等,从测试模式上看,主要有录制回放模式、录制编辑和回放模式、编程和回放模式、基于数据驱动的编程回放模式等等。

  由于很多测试工具并非免费软件,而且各种软件的实用性具有局限性,所以在时间、人力等条件允许的情况下,好能够使用编程回放模式,自己开发测试框架模型。目前的测试框架模型总结起来,可归纳为三层结构:

  底层驱动层:该层基于控件,用来提供底层的驱动,主要是实现各控件的定义、识别,提供对键盘、鼠标等的支持,实现对异常的处理,以及实现国际化、本地化相关的功能。该层和具体的被测软件无关。

  软件代理层:该层基于软件,实现对软件各个页面中控件的定义,各个页面中常用函数的编写等,主要是编制基于软件的函数以及属性以供上层的测试用例层调用,可以实现代码的重用,使整个测试框架结构清晰。该层实现的规模需要分析控制,规模太大、实现的太细,会花费较多的时间,而实现的太粗略,会导致上层的测试用例层实现起来较为复杂,而且不利于软件代码的重用。

  测试用例层:该层主要是调用/软件代理层0和/底层驱动层0的方法和属性来实现测试的功能,所以如果下面两层的基础打的较好,该层实现起来会非常容易,只是简单的调用、组合。

  因此自动化框架结构的搭建,主要花费时间的是底下两层,这两层在实现之后即可重复使用,之后在每个新版本的测试中只需要修改补充即可,不需要花费较多的时间,也不需频繁的更新,而上层测试用例层则需经常更新、添加以及修改。

  2.2.2 / 自动化0 + / 手工0 结合模式的引入

  自动化框架结构实现之后,具体地如何来实现国际化测试功能呢?由于国际化测试关注的重点主要是界面,所以初有测试小组使用如下方法来实现,即获取界面上被测焦点,和标准库中的数据进行比较,看是否一致。比如:检查界面的串是否本地化为汉语,可以获取该串,然后和数据库中该串正确的显示方式比较,如果一致,表示该串本地化正确。这种实现方式在使用一段时间之后,由于其明显的缺陷被测试人员舍弃,这个缺陷是手工测试人员写测试用例时一般是分块写,一个手工测试用例里面可能包含很多串,所以自动化以串为测试点的方法引入之后,自动化测试用例数量比手工测试用例数量庞大的多,该方法可以减少手工人员的数量,随之而来的则是自动化人员数量的增加,自动化框架结构过于庞大,维护成本过高。