一种Android设备软件自动测试方法技术

技术编号:8131032 阅读:416 留言:0更新日期:2012-12-27 03:11
本发明专利技术涉及一种Android设备软件自动测试方法,包括自动脚本录制、回放和验证步骤,其中录制包括:101)启动被测程序,并创建一层覆盖在被测程序上的透明可视(View)层;所述透明View层是android.view.View的子类;102)按测试要求操作屏幕或按键;在操作过程中,所述透明View层截取记录对应触控/按键事件,再通过向被测程序发送对应一致的模拟触控/按键事件传递操作指令;被测程序执行所述操作指令。这种自动测试方法,基于Android系统本身,无须使用shell命令和高性能pc,从而提升测试安全、可靠、广泛和易实施性。

【技术实现步骤摘要】

本专利技术涉及软件黑盒测试技术,具体涉及一种安卓(Android)设备软件自动测试方法,尤其应用于智能手机。
技术介绍
现有,Android系统软件自动化测试工具中大致分为三种,其一是由测试开发者为某个程序的某个测试路径预先设计好测试工具(比如目前流行的Juit (java单元测试)和Robotium ( 一种基于Android的黑盒自动化测试框架),再用来自动化测试,这样的好处是省去了测试员的工作量,但却大大地增加了测试开发者的工作量,首先一个程序是存在多条测试路径的,测试开发者就必须得根据不同的测试路径来设计测试工具,若不这样也就做不到程序测试的全面性。所以做不好上述问题也就做不好自动化测试,同时也会导致产品存在严重的风险与缺陷。或许你可以说采用人工的方式进行测试!这样确实可以解决自 动化测试的问题,但传统的人工测试覆盖面窄,周期长,人工成本高等问题又是各厂商所不能接受的。其二是采用计算机(pc)连接Android终端的方式,其实现是通过在pc机上装有Android自带的安卓驱动(ADB)工具或是通过通用串行总线(USB)实现与外围设备连接并配置好套接字(Socket)通讯参数,在界面上通过标准小窗口工具箱(swt)/jface工具展示出来,在底层则通过壳(shell)命令来获取设备被测程序的信息来生成相应测试脚本,这样虽能解决上述问题,但它脱离不了电脑,做不到随时随地自动化测试,工具的便捷性与实用性非常差,比如申请号为:201110446674. O的专利。其三是通过开放设备的最高管理权限,通过获得该设备的最高使用权限时才能使用的shell命令来获取设备被测程序的信息来生成相应测试脚本,该方式与Android系统底层连接紧密,不利于Android设备的安全,易成为黑客入侵的工具/技术,比如申请号为201010616361. O的专利的安全问题就令人担忧。所以说在现行的测试技术亦中都不足以做好Android系统的自动化测试,亟待改进。
技术实现思路
本专利技术需要解决的技术问题是,如何提供,无须使用shell命令和高性能pc进行自动化测试,从而提升测试安全、可靠、广泛和易实施性。本专利技术的上述技术问题这样解决构建,包括以下自动脚本录制步骤101)启动被测程序,并创建一层透明可视(View)层;所述View层是android.view. View 的子类;102)按测试要求操作屏幕或按键;在操作过程中,所述透明View层截取记录对应触控/按键事件,再通过向被测程序发送对应一致的模拟触控/按键事件传递操作指令;被测程序执行所述操作指令。按照本专利技术提供的Android设备软件自动测试方法,步骤102)中通过回调函数HandleEvent和自动测试框架Instrumention向被测程序发送模拟触控/按键事件。按照本专利技术提供的Android设备软件自动测试方法,步骤102)中被测程序执行所述操作指令包括更新屏幕界面。按照本专利技术提供的Android设备软件 自动测试方法,当透明View监听到有UP动作时先暂时移除本身并传递录制信息到回调函数HandleEvent中,而回调函数HandleEvent则根据录制的信息结合自动化测试框架Instrumention发送模拟触控/按键事件来更新被测程序界面,步骤102)中截取记录包括记录对应屏幕界面。按照本专利技术提供的Android设备软件自动测试方法,所述自动脚本录制步骤包括跨进程录制,这在基于shell和pc的方式中无法做到。按照本专利技术提供的Android设备软件自动测试方法,所述录制步骤还包括通过预先定义的交互方式通知透明View层结束录制,生成录制脚本,具体是所述录制步骤还包括当透明View监听到有结束录制请求后结束录制并通知后台服务RecordService提取录制信息,生成录制脚本。按照本专利技术提供的Android设备软件自动测试方法,该自动测试方法还包括脚本回放步骤根据录制脚本向被测程序发送与录制脚本对应的一系列模拟触控/按键事件。按照本专利技术提供的Android设备软件自动测试方法,所述脚本回放步骤多次重复。按照本专利技术提供的Android设备软件自动测试方法,所述回放步骤还包括脚本解析和有效性检测子步骤。按照本专利技术提供的Android设备软件自动测试方法,该自动测试方法还包括结果验证步骤。按照本专利技术提供的Android设备软件自动测试方法,结果验证步骤包括但不限制于以下方式(一 )所述结果验证步骤包括截取被测程序屏幕输出和自动/人工图像比对;( 二)所述结果验证步骤包括记录被测程序数据输出和自动数值比对。本专利技术提供的Android设备软件自动测试方法,尤其应用于智能手机,较现有技术具有以下优点I、被测程序可以通过本专利技术来录制不同测试路径的测试脚本,并且不需要编写任何代码或修改测试脚本,避免手动录制不同测试路径的脚本来解决程序测试路径多样性与测试工具开发者设计工具困难、工作量大的问题;2、不需要借助pc机来实现自动录制,且不需要Android设备的最高管理权限;利用技术完全模拟人机交互功能,可以录制90%以上的程序测试路径多样性的测试脚本,从而减少自动化测试工具的开发量以及人力资本的投入,大大地提高了自动化测试效率;3、通过采集元素坐标进行自动化测试的,由于录制时只会根据界面的切换而进行录制测试脚本,故而能进行跨进程的脚本录制与脚本回放测试;4、可用于回归测试,冒烟测试以及功能测试,更实用、更安全、更便捷和更可靠。附图说明下面结合附图和具体实施例进一步对本专利技术进行详细说明图I为本专利技术优选具体实施例触摸屏智能手机上的自动化测试软件的程序流程示意图。具体实施例方式首先,说明本专利技术基础和关键(一)基本思想在录制过程中,当被测程序启动时同时创建一层透明的View放置于被测程序上。当有事件发生时,该View所实现的监听方法会记录动作被测程序所点触元素所在的坐标或者该设备的按键值并生成测试脚本保存于手机存储卡上。回放时,再根据对应脚本解析 算法结合Instrumentation (Android平台的一种自动化测试框架)实现跨进程的回放测试。(二)自定义 View 层该自定义的透明View继承自android, view. View,通过复写它的按键事件onKeyDown O、onKeyUp O、onKeyLong O 以及触控事件的 onTouchEvent O 以上的几个方法来监听设备动作事件,同时该步骤还会在启动该被测程序时把被测程序的TargetPackage、Activity Name (被测程序的包名与主类名)与当前设备的信息(自定义代号为0)封装成一条特殊的字符串(格式为"自定义代号"+"," +" TargetPackage" +","+ " Activity Name" +" ," +" XX")添加到 StringBuffer (java 中一个类似于 String的字符串缓冲区)中)。第二,结合优选实施例详细说明本专利技术具体实现如图I所示,本专利技术优选具体实施例触摸屏智能手机上的自动化测试软件程序具体包括以下步骤301)启动程序,选择开始录制(该步骤的实现是获取当前设备的所有可见可操作的程序并罗列出来显示在屏幕上,单击选择某项后会启动该程序,同时也会创本文档来自技高网
...

【技术保护点】
一种Android设备软件自动测试方法,其特征在于,包括以下自动脚本录制步骤:101)启动被测程序,并创建一层覆盖在被测程序上的透明View层;所述View层是android.view.View的子类;102)按测试要求操作屏幕或按键;在操作过程中,所述透明View层截取记录对应触控/按键事件,再通过向被测程序发送对应一致的模拟触控/按键事件传递操作指令;被测程序执行所述操作指令。

【技术特征摘要】

【专利技术属性】
技术研发人员:曾元清
申请(专利权)人:广东欧珀移动通信有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1