[发明专利]一种面向安卓平台的测试用例自动化生成方法及生成系统在审
申请号: | 201911318530.X | 申请日: | 2019-12-19 |
公开(公告)号: | CN111143205A | 公开(公告)日: | 2020-05-12 |
发明(设计)人: | 李俊馨;苏亭;蒲戈光;何积丰 | 申请(专利权)人: | 华东师范大学 |
主分类号: | G06F11/36 | 分类号: | G06F11/36 |
代理公司: | 上海德禾翰通律师事务所 31319 | 代理人: | 陈艳娟 |
地址: | 200062 上海*** | 国省代码: | 上海;31 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 面向 平台 测试 自动化 生成 方法 系统 | ||
1.一种面向安卓平台的测试用例自动化生成方法,其特征在于,包括以下
步骤:
步骤一:利用安卓应用测试框架AndroidViewClient和安卓应用进行交互,录制安卓图形用户界面的事件序列,生成相应的录制测试脚本;
步骤二:通过程序分析方法,将录制测试脚本转换成为抽象语法树,提取树的结点信息生成基于自定义的领域特定语言的录制事件序列脚本;
步骤二中得到的录制事件序列脚本所基于的自定义的领域特定语言是能够表达步骤一生成的录制测试脚本的另一种结构清晰的形式,它基于一种轻量级的数据交换格式即json,它的内容是以下键值对:
A1:键是views,值是各个view,每个view对应步骤一中录制的某个事件的操作对象,各个view里面又有自己的键值对,对于操作对象是具体控件的,所述view自己的键值对的键包括resource_id、text和content-description三者中的任意一种以及class和bounds;对于操作对象是坐标的,所述view自己的键值对的键只有in_coordinates表示坐标;
A2:键是states,值是各个state,每个state对应步骤一中录制的某个事件时对应的图形用户界面状态,各个state里面又有自己的键值对,键包括views,对应这个state对应事件的操作对象,该值是A1中的某个或多个值;dump_views,对应这个state的图形用户界面的某些控件,用于加大匹配这个state的精确度,值是新的键值对,新的键值对的键是控件名称,值是控件的非空的resource_id、text和content-description三种属性的并集;seq_id,是从1开始逐一递增的数字;
A3:键是operations,值是各个operation,对应于步骤一中录制的某个事件,各个operation里面又有自己的键值对,键包括事件类型和事件对应的操作对象;
A4:键是main,值是一个新的键值对,新的键值对的键是各个state的名称,对应于A2的某个值,值是各个state对应的事件操作名称,对应于A3的某个值;
A5:键是multiple,值是一个新的键值对,新的键值对的键是eachend,值是数字列表;
步骤三:将录制事件序列脚本与带权重偏好的随机选择算法结合在一起,去自动和安卓应用程序进行交互,并生成相应的状态转换模型;步骤三生成的状态转换模型是基于一种轻量级的数据交换格式即json,由以下组成:
C1:结点,每个结点表明与安卓应用程序交互时的某个图形界面用户状态,信息包括特有的状态哈希值state_str、和其它状态有相同的界面结构的哈希值structure_str、截图文件的存储路径和对应的activity;
C2:边,每条边表明某两个状态之间的单向转换所对应的事件,信息包括这个事件起始状态的state_str、这个事件结束状态的state_str、事件的类型和事件对应的操作对象;
C3:本次交互过程的其它信息,包括该安卓应用程序的包名、交互时安卓设备的序列号、结点总数、边总数、该安卓应用程序的总activity数目和本次交互所到达的activity数目;
步骤四:将与安卓应用程序交互后得到的所述状态转换模型进行聚合,根据得到的聚合状态转换模型,生成待定测试用例,检查待定测试用例的有效性,无效则重新生成,有效则为测试用例。
2.根据权利要求1所述的面向安卓平台的测试用例自动化生成方法,其特征在于,步骤一中生成的录制测试脚本形式是python脚本,其中记录的操作对象是控件的单击事件、长按事件和设置文本事件,对应的控件包含控件本身的resource_id、text和content-description三种属性中的任意一种,还包含控件的class属性和控件所在屏幕中的位置范围即bounds属性。
3.根据权利要求1所述的面向安卓平台的测试用例自动化生成方法,其特征在于,步骤二中自定义的领域特定语言能够表示步骤一中生成的单一录制测试脚本,还能够表示多个录制测试脚本,其中的multiple键值对就是用来表明每个录制测试脚本对应的最后一个事件的序列号,利用的是states键值对中每个值的seq_id。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于华东师范大学,未经华东师范大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201911318530.X/1.html,转载请声明来源钻瓜专利网。