五招促进AI和ML实现自动化测试

近年来,人工智能(AI)和机器学习(ML)技术正在蓬勃发展,诸如:自动驾驶汽车、机器人、以及Amazon的Alexa等应用,都深刻地影响和改变着我们的日常生活。当然,随着此类智能应用和设备使得我们的生活越来越轻松,大家对于软件产品的质量需求日益增长,并且对于产品缺陷的容忍度越来越低。一旦出现了功能或性能上的问题,用户会很快切换到市场上的同类替代产品中。因此,面对此类苛刻的要求,应用开发公司一方面不得不根据复杂的服务流程,不断迭代软件结构,一方面又要以更快的交付速度,推出高质量的软件。

  对此,人工智能和机器学习正好能够发挥作用。它们能够以更快的速度、更好的质量、以及更高的效率,通过高度自动化的测试方式,为企业提供合适的端到端解决方案。据此,开发团队能够在有限的时间范围内,创建出专有的测试用例,以避免从头开始编写测试脚本,并能够涵盖尽可能多的关键性、高风险性的测试场景。可以说,使用AI和ML进行自动化测试的方式,正在逐渐成为整个开发和测试过程中,不可或缺的一部分。

  下面,我将和您讨论通过使用由AI和ML带来的自动化智能测试技术,是如何解决传统测试中的痛点,并协助项目团队减少测试工作量,以及提高测试覆盖率的。

  1.针对自动化测试的自愈(Self-Healing)技术

自动化测试中的自愈技术,能够有效地解决测试脚本的维护问题。通过基于动态定位的策略,此类自动化脚本会在对象属性(包括名称、ID、CSS等)出现变化的每个阶段产生中断,以便程序能够自动检测到各种更改,并在无需人工干预的前提下,动态地修复它们。据此,项目团队能够在他们的敏捷测试中,利用左移的方法(shift-left approach),加快产品的交付速度,并提高生产率。

  例如:开发人员在对HTML页面中的各种对象标识符进行更改时,AI将自动纠正测试用例中相应的UI标识符。也就是说,AI引擎会在属性发生变化时,及时找到此类元素,然后根据源代码中的更改情况,做出相应的修改。可以说,这种自愈技术,节省了开发人员花费在识别更改,并对UI做出相应变动的大量时间。

  在具体应用中,基于AI的测试平台会按照端到端的处理流程,利用AI引擎发现那些由对象属性的变更所导致的测试项中断,进而凭借着自愈技术提取整个DOM,以深入研究各个属性。由于各项测试用例都是被自动化运行的,因此该过程无需任何人干预,便可使用动态定位策略,做出相应的更改。

  2.自动生成测试脚本

过去,当我们需要开发自动化测试脚本时,往往需要开发人员具备JavaPythonRuby等高级编程语言的相关技能。显然,这是一个既耗时又耗力的过程。如今,AI和ML技术,则能够大幅简化测试脚本的设计与开发全过程。

  目前,市场上有许多此方面的测试工具,其中selenium是最常见的一款。用户既能够手动构建各种自动化的测试脚本,又可以通过平台去读取、并自动生成各种自动化的脚本。在实际应用中,它能够通过自带的各种AI算法,使用自然语言处理(NLP)技术,在完成了全面、良好的训练后,可以理解用户的意图,进而模仿Web应用的各种动作。值得一提的是,在整个操作过程中,用户无需亲自编写任何代码。有数据表明,该工具能够让常规测试脚本的设计时间和人员的工作量减少80%左右。套用当前流行的概念,此类自动化测试可被称为“非接触式测试(Touchless testing)”。

  3.有效地利用大量测试数据

  许多使用敏捷(Agile)和DevOps方法实施持续测试的组织,每天都会在其软件开发的生命周期中,多次采用端到端的严格测试方法,对其软件应用的单元、API、功能、可访问性、集成效果等其他方面予以测试。

  而相对于上述测试内容的增加,待测数据在体量上的增多,则更让项目团队无法通过软件应用做出更好、更准确的决策。对此,机器学习却能够通过可视化那些极不稳定的测试用例,协助开发人员轻松地关注大数据对于软件关键功能与服务的影响。

  在实际应用中,AI和ML系统能够轻松地对海量数据进行切片、切块和分析,为目标项目提供模型的解读、业务风险的量化、以及决策过程的提速。同时,开发人员还可以用AI和ML系统,来确定有待优先处理的持续集成作业,或是发现待测环境中目标平台的潜在错误,以及获得如下方面的“测试红利”:

  ·测试影响分析

  · 安全漏洞

  · 平台的特有缺陷

  · 测试环境的不稳定性

  · 测试失败中的重复模式

  · 应用组件的漏洞位置

  4.使用自动化视觉验证工具,执行基于图像的测试

  软件开发过程中的可视化测试(也称为用户界面测试),可以确保即将构建出的Web、或移动应用的UI,能够给用户带来流畅的体验。过去此类测试往往难以实现自动化,而需要人员进行繁琐的手动测试。如今,使用基于ML的视觉验证工具,使得测试人员可以识别出那些,过去在手动测试过程中容易遗漏的元素。实际上,在不少自动化网络社区中,大家正在流行着利用最新的机器学习技术,以及自动化视觉验证工具,执行基于图像的测试。

  这种基于图像的测试,可以动态地改变软件公司在任何系统中,提供自动化测试服务的方式。据此,测试专家不必再将各项输入,隐式地插入目标系统中,而只需通过创建ML类测试,以自动化的方式,验证待测软件在显示效果(或称视觉)上的正确性,及时发现各种错误与不足。

  5.利用AI进行爬取

  如今,不少开发人员也会使用基于AI的自动化技术,采用爬取的方法,自动为应用程序编写测试用例。也就是说,一些新颖的AI/ML工具能够针对Web应用开启爬网功能。

  在实际爬取过程中,此类工具首先会通过类似屏幕截图,为每个页面下载HTML代码,以及测量流量负载等方式,来收集数据,并且持续重复前面的步骤。接着,它们会基于收集到的数据构建出全量数据集,并根据待测应用的预期模式和行为,去训练出可供机器学习的模型。然后,此类工具将当前阶段观察到的模式与先前输入的模式进行比较。如果结果出现偏差,它们会将其作为测试中的错误予以标记。最后,由具有该领域知识的人员,对这些标记出的问题进行验证。可见,尽管ML工具主要负责错误的检测过程,但是人工核查仍然必不可少。

  小结

  目前,大多数公司都已将AL和ML之类的新技术,应用到了软件测试的自动化流程中。当然,您和您的测试团队,应当通过学习该领域的专业知识,了解如何将复杂的数据结构进行分解与分析,以增强针对测试的判断与决策能力,并提高项目的总体效率与服务水平。希望上述五点经验,能够更好地为您实现该目标。

 

 

 感谢每一个认真阅读我文章的人,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走:

这些资料,对于【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴上万个测试工程师们走过最艰难的路程,希望也能帮助到你!有需要的小伙伴可以点击下方小卡片领取 

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/492596.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

鸿蒙开发 之 ArkTsUI基础组件

介绍 ArkTS是鸿蒙生态的应用开发语言。它在保持TypeScript(简称TS)基本语法风格的基础上,对TS的动态类型特性施加更严格的约束,引入静态类型。同时,提供了声明式UI、状态管理等相应的能力,让开发者可以以更…

vue2和vue3 setup beforecreate create生命周期时间比较

创建一个vue程序&#xff0c;vue3可以兼容Vue2的写法&#xff0c;很流畅完全没问题 写了一个vue3组件 <template><div></div> </template><script lang"ts"> import {onMounted} from vue export default{data(){return {}},beforeCr…

044-WEB攻防-PHP应用SQL盲注布尔回显延时判断报错处理增删改查方式

044-WEB攻防-PHP应用&SQL盲注&布尔回显&延时判断&报错处理&增删改查方式 #知识点&#xff1a; 1、PHP-MYSQL-SQL注入-方式增删改查 2、PHP-MYSQL-SQL注入-布尔&延迟&报错 3、PHP-MYSQL-SQL注入-数据回显&报错处理 演示案例&#xff1a; ➢PHP…

05 Flink 的 WordCount

前言 本文对应于 spark 系列的 Spark 的 WordCount 这里主要是 从宏观上面来看一下 flink 这边的几个角色, 以及其调度的整个流程 一个宏观 大局上的任务的处理, 执行 基于 一个本地的 flink 集群 测试用例 /*** com.hx.test.Test01WordCount** author Jerry.X.He* ver…

k8s分布式图床(k8s,metricsapi,vue3+ts)

image-manage 文档 warning 注意⚠️ 1. 你需要至少一个mysql数据库 2. 你需要至少一个redis数据库 3. 你需要一个版本至少 kubernetes 1.29的集群(集群可选) ::: 单机部署(docker) # clone the project docker run -p 8080:8080 \-v 你的数据目录:/app\-e CONFIG_ISCLUST…

ELF 1技术贴|开发板网口功能讲解

在当前的嵌入式系统设计趋势中&#xff0c;MAC功能普遍被整合至CPU内核&#xff0c;形成一种高度集成的网络功能模块。与此同时&#xff0c;PHY芯片作为独立器件&#xff0c;专注于应对物理层错综复杂的电气特性和信号转换需求。为了确保PHY芯片能够在所需的各种网络模式和参数…

一周学会Django5 Python Web开发-Django5文件上传实现

锋哥原创的Python Web开发 Django5视频教程&#xff1a; 2024版 Django5 Python web开发 视频教程(无废话版) 玩命更新中~_哔哩哔哩_bilibili2024版 Django5 Python web开发 视频教程(无废话版) 玩命更新中~共计26条视频&#xff0c;包括&#xff1a;2024版 Django5 Python we…

邀请函 | 2024年数据技术嘉年华集结号已吹响,期待您参会!

龙腾四海内&#xff0c;风云际会时&#xff0c;2024年中国数据嘉年华如约而至。从起初小范围的网友聚会&#xff0c;到如今面向全国各地从业者、爱好者的年度集会&#xff0c;纵使岁月更迭&#xff0c;我们初心依旧。我们在各自最好的年华里共同见证了中国数据库行业的蓬勃发展…

NLP 使用Word2vec实现文本分类

&#x1f368; 本文为[&#x1f517;365天深度学习训练营学习记录博客 &#x1f366; 参考文章&#xff1a;365天深度学习训练营 &#x1f356; 原作者&#xff1a;[K同学啊 | 接辅导、项目定制]\n&#x1f680; 文章来源&#xff1a;[K同学的学习圈子](https://www.yuque.com/…

浅谈门级驱动电压对IGBT性能的影响

绝缘门极双极型晶体管&#xff08;IGBT&#xff09;是复合了功率场效应管和电力晶体管的优点而产生的一种新型复合器件&#xff0c;具有输入阻抗高、工作速度快、热稳定性好、驱动电路简单、饱和压降低、耐压高电流大等优点&#xff0c;因此现今应用相当广泛。但是IGBT良好特性…

TypeScrip遍历对象报错问题

解决TypeScrip遍历对象报错问题 文章目录 解决TypeScrip遍历对象报错问题声明接口&#xff0c;遍历对象报错解决方式keyof给对象声明一个接口泛型as anyas any 声明接口&#xff0c;遍历对象报错 interface DEPT {name: string;age: number,[key: string]: any }解决方式 // 用…

【C#】获取文本中的链接,通过正则表达式的方法获取以及优化兼容多种格式

欢迎来到《小5讲堂》 大家好&#xff0c;我是全栈小5。 这是《C#》系列文章&#xff0c;每篇文章将以博主理解的角度展开讲解&#xff0c; 特别是针对知识点的概念进行叙说&#xff0c;大部分文章将会对这些概念进行实际例子验证&#xff0c;以此达到加深对知识点的理解和掌握。…