3) 自动化测试脚本可被重复使用
自动化测试的成本比较高,只有自动化测试的脚本能够被重复的利用,才能创造出比较大的经济效益。倘若花费大量人力物力来开发一个近乎完美但的脚本重复使用率很低的自动化测试脚本,那么这就导致经济价值低于成本,也就失去了意义。
2。1。3 实现安卓应用程序的图形用户界面
安卓操作系统[4]通常安装在智能手机设备上,可能有有限的硬件资源(如处理器或内存)和一个小屏幕,但通常配备了大量的传感器和通信设备,如麦克风,Wi-Fi和蓝牙芯片,全球定位系统接收器,单一或多点触摸屏,倾斜传感器,相机等。为了优化这些资源的管理和应对固有的硬件限制,Android应用程序实现了只有一个线程可以访问用户界面资源的多线程模型,而其他的线程在后台运行。此外,每个应用程序都在它自己的虚拟机运行,是一个虚拟机的Android移动设备优化。文献综述
一个Android应用程序是由java组件在运行时实例化的几种类型(即活动、服务、广播接收机和内容提供商),在活动组件的开发中,应用程序的用户界面是至关重要的。事实上,活动组件负责为每个用户可以进行的一个可视化的用户界面。一个应用程序通常包括一个或几个活动类,该类扩展了安卓开发框架提供的基础活动类。在屏幕上显示的每个活动的用户界面是使用其他框架类建造的,比如 View、ViewGroup、 Widget、 Menu、Dialog等。
在其生命周期[5]中,一个活动实例通过三个主要的状态,即运行、暂停和停止。在运行时只需一个活动实例将在运行状态,并将有完整的和专有的控制的设备的屏幕。一个活动实例可以对其他活动实例进行动态调用,这会导致调用活动传递到暂停状态。当一个正在运行的活动暂停,那么它就已经失去了焦点,但仍然是可见的用户。此外,一个活动可以进入停止状态时,它完全被另一种活动所掩盖。
在安卓的应用中,处理是事件驱动的,并且有2种类型的事件可以被触发(例如,用户事件,和由于外部输入源的事件)。用户事件(如单击,鼠标悬停,等),可以在用户界面项被触发(如按钮,菜单,等等)是由其定义属于各自的接口对象处理程序处理,或相关活动类的实例(使用事件代理设计模式)。对于由其他输入源触发的事件,如全球定位系统接收器、电话、网络等,它们的处理总是被委派给一个活动类的实例。
2.2 GUI测试模型
图形用户界面是具有层次结构的共同财产。微软的Windows和linux系统的使用由Windows包含控件的图形用户界面。可以通过调用一个小部件来创建更多的窗口。基于Web的图形用户界面包含一个图形元件,如超文本网页。调用一个超文本将导致更多的网页。调用一个超文本将能创建更多的网页。现代图形用户界面中的移动平台(如Android应用程序)组成的活动,每个包含的部件可能会创造更多的活动。来;自]优Y尔E论L文W网www.youerw.com +QQ752018766-
一个图形用户界面容器的调用,从另一个容器中的小部件,是基于大多数图形用户界面应用程序的层次结构的基础。GUI Ripper[ 6 ]原来的设计是基于这种层次性现代图形用户界面。这种设计已被证明具有足够的灵活性,在今天的图形用户界面,继续分层工作。GUI Ripper最初实施基于java swt gui[5]。后来扩展到基于Web的图形用户界面,iOS,Android,java JFC,java SWT(Eclipse)和UNO(开放式办公)框架。每个平台的GUI Ripper的核心是基于原有的设计。