OPhone平台除了为应用程序开发提供了丰富的API外,同时也为开展自动化测试提供了多种途径。本文将对OPhone平台上可采用的几种自动化测试技术进行介绍,并对每种技术的优缺点做简要的总结。
目录:
* 基于JUnit+Instrumentation框架的自动化测试
* 基于键盘事件和图像识别的自动化测试
* 基于OPhone API的自动化测试
* 总结
正文:
基于JUnit+Instrumentation框架的自动化测试
OPhone平台中整合了JUnit测试框架和Instrumentation机制。图1是JUnit+Instrumentation自动化测试框架的架构图。
(图)OPhone自动化测试技术介绍
JUnit是广泛应用于Java程序开发中的单元测试框架。它定义了特定格式的方法做为测试用例,提供TestSuite测试套件和TestRunner测试执行器分别用于组织测试用例和运行测试用例并反馈测试结果。
Instrumentation 则是一种操作系统和上层应用程序之间的监控机制。当应用程序运行时,若Instrumentation设置为开启,它将在应用程序运行前初始化,与应用程序运行在同一个进程中,监测应用程序与系统之间的交互,并可以对应用程序进行一定的控制,例如,监控应用中各Activity的调用情况,启动和结束 Activity,对Activity生命周期中的各个状态进行切换,甚至可以向Activity发送按键事件和字符。
为了可以更加便捷的进行自动化测试,如图2所示,OPhone平台利用Instrumentation对JUnit框架进行扩展。
(图)OPhone自动化测试技术介绍
经过这样的扩展,框架的易用性得到了提高。举例来说,假设AppActivity是某应用的一个Activity,我们想测试AppActivity界面上的一些功能,可以实现一个ActivitityInstruemtationTestCase2<AppActivity>的子类,当这个子类运行时,AppActivity就会自动启动,而省去了通过Intent等手动启动的步骤。