[人工智能]AI移动自动化测试

时间:2022-12-10 18:13:20

[人工智能]AI移动自动化测试

1. 实现的效果

开发者通过上传移动端软件(apk,pkg等)到云端,点击云端自动化测试来对上传的软件进行自动化测试,分析和bug定位,最终输出bug检测结果.

2.实现的步骤

这里先列出大致的一个实现步骤,然后对每一步如何做,在列出具体的思路
1) 模拟用户登录问题
2) 页面元素分类,并对元素有效标识
3) 对标识的页面元素进行判定

3.具体每一步实现思路详解如下

3.1 模拟用户登录问题

首先需要对登录界面进行识别,因为输入用户名和密码,登录界面的特征比较明显,当界面中出现文本框、密码框和登录按钮时,即可判断为登录界面。
具体步骤如下:

3.2 选取特征值

登录页面的特征值:”用户名,”用户图标”,”密码”,”图标”,”登录”,”注册”,”忘记密码”,”找回密码”,第三方登录的图标.

3.3 确定用户名输入框和密码输入框,登录按钮位置

第一步:对登录页面进行NLP文本分类,找出登录页面所具有的特征值,一一标识,确定文本输入框和登录按键的位置
第二步:利用深度学习中的图像识别技术对页面图标进行识别,确定相应的位置
第三步:综合前两部判别 ,最终确定用户名输入框,密码输入框,登录按钮在页面的一个位置

3.4 模拟登录

前提是后台数据库里面已经设置好了相应的用户名和密码
通过程序在用户名输入框,密码输入框依次输入用户名,密码,模拟进行登录.

2 页面元素分类(层次结构)(UI深度遍历技术)

这里要完成的操作:

2.2.1 采用深度遍历技术对所有页面进行分类,并对分类好的元素进行一一唯一标识:

主要分为两大类:

1)可以点击的部分
2)不可以点击的部分

2.2.2 深度遍历技术

这里可以借助Smart Money方法来做,可以把每一个界面可以用最直观的方法变成一个节点树,这样可以保证每一个节点都有一个特定的对象,然后在对各元素进行标识,即为每个元素设定一个ID,保证不同的元素有不同的ID。具体方法怎么设置,需要根据场景效果自行规定,这里采用了别人的一个方法:
元素ID = 名称 + 类名 + 父元素ID
这种方式是可行的,也是可以实现的.

3 对标识的页面元素进行跳转判断
第2步,已经通过元素是否可以点击进行了有效分类,并且做了标识,这一步则需要对分类好的元素分别再进行有无图片进行分类,具体步骤如下:

3.1 可以点击跳转的部分

对可以可以点击的所有元素,通过深度学习(Caffe)技术,对其有无图片进行分类,并做相应标识:

主要分为以下几类:

3.1.1 图片显示完整

输出正常

3.1.2 图片显示不全

输出bug类型一

3.1.3 图片不能显示

输出bug类型二

3.1.4 没有图片的文本

这里需要对文本里面内容进行判断,采用nlp文本处理,来对内容是否显示完整进行有效判定:

1)内容显示完整 则表示正常
2)内容显示不完整 则输出bug类型三

3.2不可以点击的部分

同样对可以可以点击的所有元素,通过深度学习(Caffe)技术,对其有无图片进行分类,并做相应标识:
主要分为以下几类:

3.2.1 图片显示完整

输出正常
3.2.2 图片显示不全
输出bug类型一

3.2.3 图片不能显示

输出bug类型二

3.2.4 没有图片的文本

这里需要对文本里面内容进行判断,采用nlp文本处理,来对内容是否显示完整进行有效判定:

1)内容显示完整 则表示正常
2)内容显示不完整 则输出bug类型三

4. 整个过程的几个重要点

4.1)深度遍历结束判定

当遍历到某一个元素,点击超过一定次数时(也就是说反复遍历某个元素时),仍然无法访问到元素,则可判定遍历过程结束

4.2)界面跳转元素的判断

方法:

1)可以通过直接的元素名称来判断:如”返回”,”关闭”,”back”,等
2)通过深度遍历(盲点)方式,找出可以跳转的元素,并做唯一标示

4.3)登录操作

4.4)界面元素的标识

4.5)bug输出判定

5.bug分类

1) 硬件bug 造成软件崩溃
2) 内存bug 软件消耗内存过大
3) 网络请求bug 没有数据 图片显示不全
4)兼容性bug 不同设备终端显示问题
5) 性能bug 请求数据时间过长