论文部分内容阅读
软件测试,尤其是自动化测试,对于保证软件的质量有重要的作用。自动化测试就是根据需要,编写不同的测试工具,通过这些工具,按照测试工程师的预定计划对软件产品进行自动的测试。它是软件测试的一个重要的组成部分,能够完成许多手工无法完成或者难以实现的一些测试工作。正确、合理地将测试自动化,能够快速、全面地对软件进行测试,从而提高软件质量,节省经费,缩短产品发布周期。随着科技的进步,手机已经从最初的通话设备,发展到集通话、短信、网络接入、影视娱乐为一体的综合性个人手持终端设备。智能手机(Smartphone)正在融入人们的生活。由于安装了功能强大的操作系统,用户可以自行安装软件、游戏等第三方服务商提供的程序,通过此类程序来不断对手机的功能进行扩充。在开发这些应用程序的过程中往往需要进行大量的回归测试。回归测试的目的是在对软件的源代码进行修改之后,对软件进行测试,以保证没有引入新的缺陷。据统计,回归测试的成本约占整个软件系统开销的l/3。由于回归测试的重要作用,一个功能完备的自动化测试平台能大量节省回归测试的成本,缩短测试时间。目前,这个课题尚处于起步阶段,具有极大的研究价值。本文根据Android应用程序的特点,讨论了控制端-执行端(Console-Agent)的自动化测试平台的实现方式。其中,Console端负责与用户的交互,Agent端负责应用程序控件对象的监听与控制。接着,本文分析了Android应用程序控件树的结构,并根据控件中不同的监听器类型分别探讨了三种监听的实现方式:直接以外部类的对象作为监听器方式实现监听;以代理的方式实现对控件事件的监听;以AOP通知的形式实现监听。最后,本文针对在回放过程中UI更新的线程不安全问题,采取了有效的解决方案。总而言之,本文详细介绍了自动化功能测试平台架构的建立,描述了录制、回放涉及的相关技术,剖析了建立Android应用程序自动化测试平台的技术难点,提出解决方案,并通过若干例子展示本平台的实现效果。