大厂Data+Agent 秘籍:腾讯/阿里/字节解析如何提升数据分析智能。 了解详情
写点什么

通过人工智能和机器学习实现完全自动化的 5 种方法

  • 2021-06-07
  • 本文字数:1858 字

    阅读完需:约 6 分钟

通过人工智能和机器学习实现完全自动化的5种方法

在人工智能和机器学习领域,测试自动化已经取得了长足的进步。通过引入智能测试自动化工具,可以解决传统测试自动化的难点,从而获得最佳结果。下面分享 5 种通过人工智能和机器学习实现完全自动化的方法,这些方法能够帮助项目团队减少测试工作量,提高测试覆盖率。

1.测试自动化的自修复



测试自动化中的自修复技术解决了测试脚本维护的主要问题,即自动测试脚本在对象属性(包括名称、ID、CSS 等)的每个变更阶段都会中断。测试自动化中的自修复技术在实现过程中使用了动态定位策略,程序可以自动检测到这些变更,并动态地修正它们,无需人工干预。团队可以利用敏捷测试方法中的左移方法,使得过程更加高效,提高工作效率,加速交付。


举个例子,当开发者对 HTML 页面中的对象标识符进行任何更改时,测试用例中的 UI 标识符将自动更改。虽然属性改变了,但人工智能引擎仍然定位这些元素,并根据在源代码中的更改来修改它们。这一自修复技术使开发者不必花费大量时间来识别变更,同时更新 UI。

2.测试脚本的自动生成



自动化测试脚本的开发是一项复杂的工作,需要用到 Java、Python、Ruby 等高技能的编程语言。同时还需要做大量的初始工作,并投入一定的时间和资源。使用自动化脚本进行开发可将测试脚本的生成时间减少 50%。另外,在测试脚本设计过程中加入人工智能和机器学习技术,也能大大简化其设计流程。


目前市面上有各种各样的测试工具,比如通过手动测试用例构建的 selenium 自动化测试脚本,它可以读取测试脚本,并自动生成自动化脚本。该人工智能算法使用自然语言处理,能够理解用户的意图,并在 Web 应用中模拟这些行为。它的优点是可以减少 80% 的测试脚本设计和经历。

3.大量测试数据的有效使用


很多使用敏捷和 DevOps 方法执行持续测试的组织都选择了一种严格的测试方法,并在整个软件开发生命周期中每天进行数次使用,其中包括单元、API、功能、可访问性、集成和其他类型的测试。在执行这些测试用例时,系统将创建大量的测试数据。库存的数据越多,管理人员就越难做出更准确的决定。


通过可视化最不稳定的测试用例和其他需要重点关注的部分,机器学习可以帮助开发者更容易地识别关键的问题区域。此外,通过人工智能和机器学习系统的参与,还可以轻松地对测试数据进行切片、分块和分析,并能够读取模式、量化业务风险和加快手头项目的总体决策过程。


具体来说,在人工智能和机器学习的帮助下,分析人员可以获得以下更好的特性:

  • 测试影响分析

  • 安全漏洞

  • 平台特有缺陷

  • 测试环境不稳定

  • 测试失败的重复模式

  • 应用元素定位器的脆性

4.利用自动视觉验证工具对图像进行测试


当前,在基于图像的测试领域中,自动视觉验证工具得到了越来越多的应用。


软件开发中的视觉测试(也叫 UI 测试)可以确保开发者构建的 Web 或移动应用的 UI 呈现给最终用户,这些工具旨在通过更新 UI 来帮助开发者实现应用的功能。不过当前,大多数正在进行的测试通常难以实现自动化,而是采用人工测试的方式。


人工测试很容易导致一些元素被忽略,要想准确识别这些元素,测试人员可以利用基于机器学习的视觉验证工具。这是一种基于图像的测试注入,它动态地改变了公司在任何系统中提供自动测试服务的方式。测试分析人员可以创建自动检测软件中所有视觉错误的机器学习测试,这样做有助于验证应用的视觉正确性,而无需测试专家将输入隐性地插入到系统中。

5.人工智能搜索


当前,开发者使用的基于人工智能的最新自动化技术是使用 spidering 方法为应用自动编写测试。


开发者需要为自己的 Web 应用提供一些新的人工智能 / 机器学习工具,以便启动抓取。在抓取的过程中,该工具通过截图收集数据,为每个页面下载 HTML 代码,测量复杂,并不断重复运行这些步骤。最后,这一工具会创建一个数据集,并训练机器学习模型,从而理解应用程序的预期模式和行为。


此外,该工具还将其当前阶段与之前观察到的所有模式进行比较。如果有偏差,工具将把这部分标记为测试期间可能出现的 Bug。下一步,开发者需要确认被标记的问题是否确实是 Bug。也就是说,机器学习工具负责 Bug 的检测过程,但是开发者在接受调用之前必须进行最后的确认。

结论


要想在测试中充分利用人工智能和机器学习技术,需要开发者具备一定的机器学习测试算法基础,并且要有战略上的测试方法。同时,还需要拥有一支测试团队,团队需要知道如何将复杂的数据结构分解成能够帮助开发者加强决策过程,并提高总体项目效率和收益的简化表示。


作者介绍:


Mohit Shah,供职于 ImpactQA,高级技术内容营销人员。


原文链接:


https://dzone.com/articles/5-great-ways-to-achieve-complete-automation-with-a

2021-06-07 10:542701

评论

发布
暂无评论
发现更多内容

Spring 全家桶之 Spring Data JPA(一)

小白

8月月更

STM32入门开发 LWIP网络协议栈移植(网卡采用DM9000)

DS小龙哥

8月月更

SAP 产品增强技术回顾

汪子熙

SaaS SAP 企业级应用 云应用 8月月更

React Redux 组件更新/渲染原理 connect 中的 mapStateToProps

HullQin

CSS JavaScript html 前端 8月月更

开源一夏|5分钟快速为OpenHarmony提交PR(Web)

坚果

开源 OpenHarmony 8月月更

开源一夏 | 粗暴项目监控,快速上手Spring家族的亲儿子SpringAdmin监控项目

知识浅谈

spring 开源 8月月更

如何解决 “主节点故障恢复的自动化” 问题?

八点半的Bruce.D

鲲鹏编译调试及原生开发工具基础知识

乌龟哥哥

8月月更

【LeetCode】重新格式化字符串Java题解

Albert

LeetCode 8月月更

Android进阶(一)Android 发邮件与几种网络请求方式详解

No Silver Bullet

android 8月月更 邮件发送

Open Office XML 格式中的 Style 设计原理

汪子熙

xml 微软 Office 8月月更 openOffice

OAuth Client默认配置加载

阿提说说

Spring Security OAuth

C++运算符重载(三)之递增运算符重载

CtrlX

c c++ 代码 进阶员进阶 8月月更

5 张弹珠图彻底弄清 RxJS 的拉平策略:mergeMap、switchMap、concatMap、exhaustMap

掘金安东尼

前端 RXJS 8月月更

数据库 SQL 优化大总结之:百万级数据库优化方案

TimeFriends

8月月更

数字钱包红海角逐,小程序生态快速引入可助力占领智慧设备入口

FinClip

突破次元壁垒,让身边的玩偶手办在屏幕上动起来!

HarmonyOS SDK

vue高频面试题合集(一)附答案

helloworld1024fd

Vue

Linux配置SSH免密码登录(非root账号)

程序员欣宸

SSH 8月月更

vue高频面试题合集(二)附答案

helloworld1024fd

Vue

前端面试 | 必知必会的10道Promise题!

千锋IT教育

浅谈Java和SAP ABAP的静态代理和动态代理,以及ABAP面向切面编程的尝试

汪子熙

编程语言 oop aop spring aop 8月月更

在座的Python爬虫工程师,你敢爬律师事务所站点吗?

梦想橡皮擦

Python 爬虫 8月月更

开源一夏|OpenHarmony如何选择图片在Image组件上显示(eTS)

坚果

开源 OpenHarmony 8月月更

学习Apache ShardingSphere解析器源码(一)

我不吃六安茶

ANTLR Apache ShardingSphere

全新FIDE 编译简单评测

Geek_99967b

小程序

ABAP应用服务器的HTTP响应状态码(Status Code)

汪子熙

前端开发 HTTP web开发 SAP 8月月更

运动健康服务场景事件订阅,让应用推送“更懂用户”

HarmonyOS SDK

云原生(十三) | Kubernetes篇之深入Kubernetes(k8s)概念

Lansonli

云原生 k8s 8月月更

软件定制开发——企业定制开发app软件的优势

开源直播系统源码

软件开发 直播系统源码 app定制开发 软件定制开发

通过人工智能和机器学习实现完全自动化的5种方法_AI&大模型_Mohit Shah_InfoQ精选文章