The invention discloses a method and a system for Android apps automated black box testing, all the information and control information to identify the target target window in the window, in the access control information only when the analysis of the ADB command control information document can obtain all the control information, a simple and direct access to information through the ADB window. Command process; automatic test case generation, the automatic generation of test cases in the process of Android application window full coverage; generate test script automatically, by encapsulating the Robotium automated testing framework, only need to add keywords and test data in the test case document, generate test script automatically, when the test data changes when you can just modify the test data in the test case document; the invention does not need in the case of program source code It improves the automation of testing, the coverage rate of the interface and the reusability of the test scripts.
【技术实现步骤摘要】
一种安卓应用程序自动化黑盒测试的方法及系统
本专利技术属于安卓应用程序测试
,尤其涉及一种安卓应用程序自动化黑盒测试的方法及系统。
技术介绍
窗口(window)为应用程序显示在设备屏幕上的整个图形界面,唯一标识当前界面。引起窗口变化的因素包括不同Activity间的相互切换、同一个Activity组件中不同布局控件的显示与隐藏等。ADB(AndroidDebugBridge)即Android调试桥,是Android系统中的一种命令行工具,可以利用ADB实现Android手机与PC的连接。APK(AndroidPackage)即Android安装包。随着移动互联网技术的快速发展,Android应用程序的开发数量也越来越多。为保证Android应用程序的质量,应用程序在正式发布到应用市场之前,需要对它进行测试。但是开发者只提供了APK应用包给应用市场,只能进行黑盒测试。同时,自动化黑盒测试也非常符合最近比较流行的移动云测试服务。开发者只需上传被测应用程序的APK文件,就可利用云服务平台的资源进行测试。因此,实现在无源码的情况下对Android应用程序进行自动化测试是非常有意义的。然而,现有的方法和技术仍然不能充分满足自动化和覆盖率方面的要求,主要存在的问题包括:其一,需要手动编写或者手动录制测试脚本,导致测试的自动化程度不高;其二,需先通过静态分析技术构建Activity转换图,不仅过程复杂,而且界面覆盖率不高。TanzirulAzim等人提出了使用目标和深度优先遍历的方式模拟用户操作与Android应用程序进行交互,从而实现对应用程序进行测试,具体的 ...
【技术保护点】
一种安卓应用程序自动化黑盒测试的方法,其特征在于,该安卓应用程序自动化黑盒测试的方法包括以下步骤:步骤一,通过基于ADB命令的安卓应用窗口控件识别方法识别目标窗口中的所有控件信息和目标窗口信息;步骤二,运用安卓应用窗口全覆盖测试用例自动生成方法自动生成测试用例;步骤三,运用RobotiumEx高重用测试脚本自动生成方法自动生成测试脚本。
【技术特征摘要】
1.一种安卓应用程序自动化黑盒测试的方法,其特征在于,该安卓应用程序自动化黑盒测试的方法包括以下步骤:步骤一,通过基于ADB命令的安卓应用窗口控件识别方法识别目标窗口中的所有控件信息和目标窗口信息;步骤二,运用安卓应用窗口全覆盖测试用例自动生成方法自动生成测试用例;步骤三,运用RobotiumEx高重用测试脚本自动生成方法自动生成测试脚本。2.如权利要求1所述的安卓应用程序自动化黑盒测试的方法,其特征在于,步骤一,通过基于ADB命令的安卓应用窗口控件识别方法识别目标窗口中的所有控件信息和目标窗口信息时,控件信息包括控件类型、控件名称和控件属性,窗口信息包括窗口所在Activity名称和窗口哈希码;通过基于ADB命令的安卓应用窗口控件识别方法识别目标窗口中的所有控件信息和目标窗口信息包括以下步骤:步骤(1),通过ADB向设备分别发送dump和adbshelldumpsyswindoww|findstrmCurrent命令;步骤(2),通过执行dump命令获得保存当前设备屏幕上的窗口控件信息的xml文件,通过执行adbshelldumpsyswindoww|findstrmCurrent命令获得当前窗口所属的Activity名和窗口哈希码;步骤(3),把获得的xml文件抓取到本地主机上,对其进行解析,并把获得的当前窗口所属的Activity名和窗口哈希码信息加入控件信息中,生成控件节点列表;步骤(4),把生成的控件节点列表重新写入一个xml文件中。3.如权利要求1所述的安卓应用程序自动化黑盒测试的方法,其特征在于,步骤二,运用安卓应用窗口全覆盖测试用例自动生成方法自动生成测试用例时,需要构建一个基于安卓应用窗口的遍历模型,遍历模型为一个有向图,图节点表示一个窗口节点,而图的边表示一个模拟动作,在基于窗口的遍历模型中,窗口标识(WindowFlag)用于唯一标识一个窗口,在窗口标识中保存了Activity名称和窗口哈希码信息,可通过分别对Activity名称和窗口哈希码进行对比来判断两个窗口是否相同;任务(Task)可表示为(窗口标识,动作,控件节点)这样一个三元组,其中窗口标识表示一个动作在此窗口下执行,动作表示一个待模拟的操作,控件节点表示待模拟操作所属控件,只有当应用程序运行到此窗口且此窗口上的动作被执行后,一个任务才算被执行;窗口节点(WindowNode)中保存了与窗口相关的所有信息,其中包括对应的窗口标识、当前窗口中包含的所有待执行的任务形成的任务列表、父节点、子节点列表、从起始窗口节点到当前窗口节点的路径上执行的所有任务列表以及当前窗口中的转换列表;转换(Transition)用于表示模型中的一个转换关系,它保存了任务和窗口节点信息,其中任务表示当前窗口节点中的一个任务,而节点表示任务执行后所产生的子节点;运用安卓应用窗口全覆盖测试用例自动生成方法自动生成测试用例包括以下步骤:步骤(1),通过基于ADB命令的安卓应用窗口控件识别方法识别目标窗口中的所有控件信息和目标窗口信息,根据控件类型为每个控件生成一个任务,形成任务列表,根据窗口信息生成窗口标识,并把窗口标识加入窗口节点中;步骤(2),如果窗口节点的任务列表不为空,依次从任务列表中取出一个任务,并根据窗口标识判断当前窗口是否为执行任务所需要的窗口,如果是所需窗口,则直接执行任务,如果不是所需窗口,则先恢复到当前任务所需要的窗口,然后执行任务;步骤(3),判断执行这个任务后窗口是否发生切换;步骤(4),如果发生切换,则判断是否跳转到其他应用的窗口中,如果跳转到其它应用的窗口中,则重启应用程序,循环步骤(1)、步骤(2)、步骤(3),否则把当前任务加入到任务执行路径列表中,循环步骤(1),获取跳转后的窗口节点信息,把新窗口节点信息和当前执行的任务加...
【专利技术属性】
技术研发人员:蔡树彬,明仲,周小婷,卢亚辉,
申请(专利权)人:深圳大学,
类型:发明
国别省市:广东,44
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。