10 月 23 - 25 日,QCon 上海站即将召开,现在购票,享9折优惠 了解详情
写点什么

通过人工智能和机器学习实现完全自动化的 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:542825

评论

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

爱奇艺世界大会|刘文峰:科技创新如何为用户和艺术家服务?

爱奇艺技术产品团队

高性能 JavaScriptの笔记(三)

空城机

JavaScript 大前端 5月日更

这一年,我们都需要他安静而勇敢的陪伴

小天同学

读书笔记 读书 5月日更

云小课 | 大数据融合分析:GaussDW(DWS)轻松导入MRS-Hive数据源

华为云开发者联盟

华为云 GaussDB(DWS) MRS数据源 融合分析 数据仓库服务

还不会使用分布式锁?教你三种分布式锁实现的方式

华为云开发者联盟

数据库 zookeeper 分布式锁 etcd 数据库表

爱奇艺世界大会|开幕式速览:智能制作助推影视工业化,匠心构筑行业健康生态

爱奇艺技术产品团队

完蛋,好像病了

IT蜗壳-Tango

5月日更

MySQL慢日志全解析

Simon

MySQL 慢查询

2021金三银四面试经历:阿里七面(已拿offer),面试经历+真题分享

Java 编程 程序员 架构 面试

Netty常用解码器学习笔记

风翱

Netty 5月日更

千万级学生管理系统考试试卷存储方案设计

eoeoeo

4年Java开发经验,经常被问到高并发、性能调优方面的问题,该怎么办?

Java架构师迁哥

从0到1数字化转型的“精益落地”模式

高瑞

超时与线程池的坑

ES_her0

5月日更

【LeetCode】形成两个异或相等数组的三元组数目Java题解

Albert

算法 LeetCode 5月日更

为什么TCP 建连接要3次,断连接却要4次呢?

架构精进之路

TCP 网络层 5月日更

终于来了!这份阿里P9纯手写的Java并发核心手册,把我没学会的高扩展、高性能、高可用全部讲清楚了

Java 程序员 架构 面试

关于打的 umd 包在使用时,报 require is not defined 错误的问题出处

blueju

多吃点花生米吧!

Nydia

学习

快乐是一种选择

BY林子

快乐

搞服务器开发竟不知道宝塔为何物,有点说不过去呀!

liuzhen007

5月日更

Dubbo 延迟服务暴露

青年IT男

dubbo

架构实战营模块4作业-千万级学生管理系统的考试试卷存储方案

好吃不贵

架构实战营

长连接网关技术专题(四):爱奇艺WebSocket实时推送网关技术实践

JackJiang

Netty websocket 即时通讯 IM 网关

Golang Array and Slice

escray

学习 极客时间 Go 语言 5月日更

Kafka万亿级消息实战

vivo互联网技术

kafka 集群

数据挖掘从入门到放弃(四):手撕(绘)关联规则挖掘算法

数据社

机器学习 5月日更

五岳核心版上线!这份阿里开发手册核心版又将被多少人疯狂转载?

Java 编程 程序员 架构 面试

如何给产品定价

石云升

创业 产品 职场经验 5月日更

架构实战营模块四作业

竹林七贤

产品数据分析

lenka

5月日更

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