有许多自动化测试自动化的方法:使用现有的Java库来测试用户界面,如Jemmy,或使用IDL(Interface Design Language,接口设计语言)生成代码,或者使用内置的探针(probe)(详见www.ocsystems.com),或开发可自我测试的组件。只要我们需要使用/开发软件来测试软件,我们就应该尽量自动化该过程。其他一些提高测试自动化效率的例子是自动化测试用例代码的生成,包括软件接口测试代码和测试用例过程代码,以及组合应用(composite application)的使用,下面会进一步描述这些概念及其所使用的工具。
自动化测试用例代码生成
-软件接口测试代码
-软件接口可以是任何类型的中间件,比如CORBA、DDS,或简单的多播布局。
-从各种输入格式生成软件接口代码,比如IDL、C风格头文件等。
-生成将这些接口代码“粘合”到测试框架的代码。
测试用例过程代码
-为测试用例过程的每个步骤生成相关代码来执行它的行为。
-标准化的测试用例格式使自动化步骤过程的提取更加便利。
-XML可用来定义准确的测试步骤信息,作为自动生成过程的输入。
-StringTemplate提供了一个通用代码集,同时也提供了项目专有的代码集。
该示例使用的工具
-ANTLR(www.antlr.org/)
-工程语法文件。已有许多通用语言语法文件可供下载(如IDL和C)。
■ 使用Java生成词法分析器和解析器(其他语言也可以)。
-StringTemplate(www.stringtemplate.org/)
■ 与ANTLR是同一个团队开发的。
■ 提供可插入的模板。可以用多种语言生成代码,而不必修改自动生成代码。
-JAXB标准(https:/ / jaxb.dev.java.net /)
■ 基于XML架构的XML到Java对象绑定机制。
■ 生成Java类,用来解析XML数据。
请参阅附录D中案例研究,讨论了我们如何使用这些自动化测试技术(主要是开源工具)来实现我们自己的框架。此外,请参阅我们在GTAC 2008(Google Test Automation Conference,Google自动化测试大会)上的演讲,了解如何实现自动化代码生成的更多细节。
此外,具有创新意识的开发人员都求助于组合应用的灵活性,以便走在快速变化的业务条件的前面。在库设置里签出(check out)软件组件以便复用这些软件组件的概念值得关注。将已有的组件组装进自己创建的组件中,获得新的外观、新的用户界面和事务,在背后将资源组合进应用的新模式中,可以更快地获得新版本。我非常支持这种“库”和“软件复用”的观点,因为现有的自动化软件测试就可以在各种组件中复用了。比如,因为等效或适用的“自动化元件”也可以重复利用,所以自动化测试的过程将支持“库”软件组件检查和重复使用必需的效率。这反过来将有助于简化自动化测试工作。
相关链接: