软件测试最全探索人工智能在自动化测试中的应用_测试结果智能分析,2024年最新软件测试最新面试题

img
img

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化的资料的朋友,可以戳这里获取

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

由于逻辑导图需对被测应用进行探索,探索中会不断出现新的未测试过界面,但也会出现已经测试完的界面,为了不重复探索,需要识别界面是否为新界面,而界面中不乏有会自动变化的控件,比如轮播图,或定时刷新显示的数据

这块可以通过人工智能识别图像判断是否是新的界面,方法如下:

测试对象为进入界面的截图,对比对象为此前所有界面截图的数据集

使用ORB检测器,BFMatcher提取并计算特征点,KNN筛选结果,计算出对比图片的相似度

主要代码如下:

读取图片

img1 = cv2.imread(img1_path, cv2.IMREAD_GRAYSCALE) img2 = cv2.imread(img2_path, cv2.IMREAD_GRAYSCALE)

初始化ORB检测器

orb = cv2.ORB_create() kp1, des1 = orb.detectAndCompute (img1, None) kp2, des2 = orb.detectAndCompute (img2, None)

提取并计算特征点

bf = cv2.BFMatcher ((cv2.NORM_HAMMING)

knn筛选结果

matches = bf.knnMatch (des1, trainDescriptors=des2, k=2)

查看最大匹配点数目

good = [m for (m, n) in matches if m.distance < 0.75 * n.distance] similary = len(good) / len(matches)

经验证,目前参数设置相似度达到65%以上既为同一界面比较合适。但该算法也会出现极个别界面相似度异常(比如下面两个画面会被算法识别为新的界面,即低于65%),还需要完善算法或使用更好的算法。

为了保证准确性,添加使用了图像像素遍历比较的方法,并把相似度定为98%。

把未通过KNN算法相似度低于65%但像素比对高于98%的界面,认为是已测试过的界面。

2、智能识别业务功能

2.1 OCR文字识别

通过OCR图片文字识别技术可以识别业务关键字,如储蓄,存款,存单,定期,纪念日,专享,利率等。并对每个界面的关键词组建立相关数据,构建界面关键词库,锚定界面业务功能。

2.2图像特征识别

针对图标,图片等对象,也可以通过卷积神经算法得出对象特征,计算对象所属业务功能和业务层级关系。在界面中存在文字相同的对象的情况下,可以起到很好的识别区分效果。

示意图如下:

2.3功能界面分类

通过之前提到的控件识别及界面标题识别,结合具体的功能界面,可以推测出功能界面信息。

如下图,左图将识别为入口类界面;中图将识别为具体功能界面;

右图这种在标题位置有明显标识的类型,将被识别为具体功能界面,并将把标题权重提高,作为主要功能关键词。

3、应用控件对象识别。

应用中的每个界面都有很多控件,并且控件的类型多种多样。我们需要能智能的识别出控件的类型,路径等信息

比如下左图是某银行APP首页;下右图为控件对应的XML信息。

通常人工编写脚本的过程是手动找到控件的XML信息,编写Appium可识别的对象,然后加上Appium的操作代码,完成对对象的操作指令,如下图:

上图红框中,find_element_by_name,find_element_by_xpath都是找对象的不同方法,括号中的参数是对应的数值,一般需要人工确认才能找到对象,而find_element_by_xpath是最通用的方法,其对应的参数就是Xpath。

click()方法是最多使用的对象操作指令,可以完成多数的页面跳转。

所以要机器完成appium脚本创作,只需要自动找出对象和加上对应的操作指令即可。

通过学习研究,我们总结出一些Xpath的规律,一般可以有以下几个元素构成:

一:text或content-desc(例如:财富)

二:resource-id(例如:cn.com.spdb.mobilebank.per:id/close_dialog)

三:instance(例如:0)

四:class(例如:android.widget.RadioButton)

通过组合后一般可以得到以下的Xpath

//android.widget.RadioButton[@resource-id=‘cn.com.spdb.mobilebank.per:id/radio_button1’]

//android.widget.TextView[@text=‘转账汇款’]

//android.widget.LinearLayout[@resource-id=
‘cn.com.spdb.mobilebank.per:id/ll_item_adver_layout’]/android.widget.ImageView[1]

APP的控件类型非常多,并且还有很多自定义控件(布局控件),还有一些兼容用的视图,而对控件的操作主要是点击,输入和清空只用在文本控件的操作上。

可以参考下面的列表,包含了常用的一些控件类型:

4、控件对象的操作封装

安卓基础控件库

另外移动应用中存在着多页的页面,需要上下滑,或左右滑,才能完整显示,所有需要添加翻页的功能,并且要考虑到不同分辨率的情况。

以下是对应的滑动代码。

5、测试结果智能分析

1、错误分类识别和处理

测试中难免出现报错,手工排查效率很低,特别是在大量测试后,人工排查也将费时费力,如果自动识别测试错误类型,并针对性的自助处理,测试效率将大大提高。

主要有程序错误,数据错误,环境错误三大类,处理逻辑请看下图:

2、业务变更自动识别

在功能逻辑导图形成的前提下,智能对比变更前后的应用差异,快速告知测试人员业务功能变更情况;可以有效降低变更关联性风险,提高变更分析效率。

示意图:

img
img
img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上软件测试知识点,真正体系化!

由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新

需要这份系统化的资料的朋友,可以戳这里获取

z6-1715560811948)]

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上软件测试知识点,真正体系化!

由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新

需要这份系统化的资料的朋友,可以戳这里获取

  • 28
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值