什么是软件测试中的人工智能?

news2024/9/25 15:24:34

什么是软件测试中的人工智能?

近日,由人工智能实验室OpenAI开发的全新“对话机器人”ChatGPT在各大中外媒体平台掀起了一阵狂热之风。从正式发布到风靡全球,不过100天,用户已突破1亿,成为史上用户增长最快的应用程序。ChatGPT的功能是如此强大,以此连马斯克都认为“我们离强大到危险的 AI不远了”。

关于人工智能以及它如何改变我们的做事方式,已经说了很多。说到软件测试,人工智能的地位是什么?这篇文章强调了人工智能如何帮助实现健壮的软件测试。

人工智能如何改变软件测试的动态?

人工智能是数字市场中被过度使用的流行语之一。“AI” 让人联想到万能的超级计算机、 Siri这样的声控辅助、自动驾驶汽车以及最近风靡全球的ChatGPT。

我们习惯性将AI视为计算机程序或机器思考(自我推理)和学习(收集数据并以有益的方式修改未来行为)的能力。

正是在这个定义中,我们开始在AI对软件开发工具和技术的意义上看到一些更有意义的东西。

Part.1 软件测试自动化中的人工智能

人工智能在软件开发中的应用仍在不断发展,但与自动驾驶系统或语音辅助控制、机器翻译和机器人等更先进的工作领域相比,人工智能目前在软件自动化测试中的使用水平较低。当然,测试自动化工具已经具有人工智能效果,但它们仍旧有局限性。

AI和ML是Parasoft正在进行的研究和开发的重要领域。我们的发现将继续为我们的产品带来新的方法来集成这些技术。以下是我们利用它们的一些方法。

Part.2 使用软件测试AI提高静态分析的采用

想要使用好静态分析工具的一个难点是,我们需要管理结果中的大量警告和误报。每个软件开发团队有专门的质量要求,对于检查器或编码标准,每个团队都有自己对误报的理解。Parasoft的解决方案是应用人工智能和机器学习来确定静态分析结果的优先级,通过这种方法来改善用户体验,以及更好地使用工具。

Parasoft团队正在使用这种方法,通过分析少量结果并基于这些相关的元数据构建分类器,将静态分析工具检查出来的结果快速分类,尽可能给团队提供他们希望看到的东西,或者是他们想要抑制的东西。

通过将开发人员引向最有可能影响项目的测试结果,让他们能够快速进行定位代码和修正结果,这极大地改善了用户体验。有了这些创新,企业可以非常短的周期内减少在采用和使用静态分析技术方面的成本。

Part.3 使用人工智能自动化单元测试生成和参数化

以Parasoft Jtest为例,这是我们为Java开发人员提供的软件测试解决方案,包括静态分析、单元测试、覆盖率分析和可追溯性等。在这里应用AI,我们发布了自动测试用例生成功能模块,这可以帮助开发人员利用JUnit在一开始生成测试。

Parasoft Jtest可以作为Java IDE插件,通过创建、扩展和维护单元测试的一键操作,为单元测试实践添加了有用的自动化能力。通过使用支持AI的Jtest,用户可以实现更高的代码覆盖率,同时在构建一套全面而有意义的Junit测试用例时,用户可以大量减少时间和精力。

Part.4 使用AI和ML自动化API测试生成和维护

另一个很好的例子是Parasoft SOAtest的智能API测试生成器,parasoft将机器学习添加到了各种功能组合中了。它超越了记录和回放测试这种功能,通过利用人工智能和机器学习,SOAtest可以将UI测试转换为完整的自动化API测试场景。

智能API测试生成器使用推理来了解在执行UI时进行的不同API调用中的模式和关系。通过该分析,构建了一系列API调用场景,这些API调用表示UI在进行工作期间进行的底层接口调用。

由此产生的自动化API测试更完整、可重用、可扩展和更能适应变化。

Part.5 使用机器学习自我修复Selenium测试的执行

自动验证UI层是软件测试的另一个关键组成部分,为了确保产品在投入生产前得到充分验证,绝大部分用户都需要进行UI测试。Selenium框架已被广泛用于UI测试,但用户仍在努力应对可维护性和稳定性等常见的Selenium测试挑战。这个时候,正需要AI技术,特别是机器学习可以提供很大的帮助,比如说,在运行时提供自我修复,以解决与UI测试执行相关的常见可维护性问题。

我们的产品Parasoft Selenic就提供了这个功能,您可以在定期执行Selenium测试期间“了解”您的内部数据结构。Selenic引擎监控每次运行,并捕获有关待测应用程序的Web UI内容的详细信息。Selenic采用Parasoft的专有数据建模方法,将这些信息存储在其人工智能引擎中。这个模型会不断更新,通过分析所有测试的历史执行,继续变得“智能”。

通过测试影响分析优化测试执行

测试影响分析(TIA)评估对生产代码所做更改的影响,它有助于揭示受代码更改影响的测试用例。TIA的主要好处是,它消除了在修改之后对整个代码库运行测试的需要。这样可以节省时间和成本,同时保持开发过程高效运行。

在执行手动测试期间,您一样可以从TIA技术中受益,也可以利用基于TIA的工具与CI/CD管道的集成。这可以优化自动化测试的运行,并就更改对其项目质量产生影响的问题,向开发人员提供更快的反馈。根据产品的性质和要执行的测试类型,您可以利用Parasoft的人工智能增强技术来优化执行。

结论

软件市场的爆炸性增长表明,更多的软件将继续发布,以解决我们日常业务中的问题。然而,为了使软件高效运行并尽快进入市场,软件测试中需要自动化和人工智能。这就是Parasoft的用武之地。

在Parasoft,我们提供AI驱动,ML驱动的软件测试解决方案,将质量集成到软件开发过程中,以便在SDLC早期预防、检测和修复缺陷。

想了解更多关于使用人工智能加速测试创建的信息吗?马上联系我们吧!

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

图解 | 工信部网络与数据安全57项“执法事项清单”来了

2023年2月,工业和信息化部根据《工业和信息化部全面推行行政执法公示制度执法全过程记录制度重大执法决定法制审核制度暂行实施方案》的相关要求,结合有关法律法规依据的修订情况及行政执法工作实际,编制发布了《工业和信息化部行政执法项目清…

高效制作知识库的软件工具,这6个都很不错哦!

任何工作流程都离不开文档管理,因此文档管理也是企业数字化转型中的重要环节。面对复杂的业务流程、频繁的文档编辑任务和跨区域的文件共享需求,优秀的文档管理体系能够帮助企业实现安全的文档存储,高效的文档搜索,便捷的文档协作…

CVE-2023-23752 Joomla未授权访问漏洞分析

漏洞概要 Joomla 在海外使用较多,是一套使用 PHP 和 MySQL 开发的开源、跨平台的内容管理系统(CMS)。 Joomla 4.0.0 至 4.2.7 版本中的 ApiRouter.php#parseApiRoute 在处理用户的 Get 请求时未对请求参数有效过滤,导致攻击者可向 Joomla 服务端点发送包…

大数据框架之Hadoop:MapReduce(三)MapReduce框架原理——MapTask工作机制

MapTask工作机制如下图所示。 (1)Read阶段:MapTask通过用户编写的RecordReader,从输入InputSplit中解析出一个个key/value。 (2)Map阶段:该节点主要是将解析出的key/value交给用户编写map()函数…

SDL2 简明教程(五):OpenGL 绘制

系列文章目录 SDL2 简明教程(一):使用 Cmake 和 Conan 构建 SDL2 编程环境 SDL2 简明教程(二):创建一个空的窗口 SDL2 简明教程(三):显示图片 SDL2 简明教程&#xf…

DC220V冲击继电器RCJ-3

系列型号 RCJ-2型冲击继电器; RCJ-2/48VDC冲击继电器 RCJ-2/110VDC冲击继电器 RCJ-2/220VDC冲击继电器 RCJ-2/100VAC冲击继电器 RCJ-2/127VAC冲击继电器 RCJ-2/220VAC冲击继电器 RCJ-3/220VAC冲击继电器 RCJ-3型冲击继电器 RCJ-3/127VAC冲击继电器 RCJ-3/100VAC冲…

Jenkins集成Allure报告

Jenkins集成Allure报告 紧接上文:Jenkins部署及持续集成——傻瓜式教程 使用Allure报告 1、在插件库下载Allure插件Allure Jenkins Plugin 2、在构建后操作中加入allure执行的报告目录(相对于项目的路径) 3、run.py代码改成如下 import p…

2023年白酒行业研究报告

第一章 行业概况 白酒是中国传统的酿酒业之一,历史悠久,源远流长。白酒指以高粱等粮谷为主要原料,以大曲、小曲或麸曲及酒母等为糖化发酵剂,经蒸煮、糖化、发酵、蒸馏、陈酿、勾兑而制成的,酒精度(体积分数)在18%-68%…

【Spark分布式内存计算框架——离线综合实战】3. SparkSession 工具类、广告数据 ETL

SparkSession 工具类 在项目工程【cn.itcast.spark.utils】包下创建工具类:SparkUtils,专门构建SparkSession实例对象,具体步骤如下: 构建SparkConf对象、设置通用相关属性判断应用是否本地模式运行,如果是设置值mas…

04 DC-DC变换器(DCDC Converter / Switched-mode Power Supply)简介

文章目录0、DC-DC变换器概述1、DC-DC变换器的基本结构BuckBoostBuck-BoostBoost-Buck小结2、换流与特性分析分析Buck电路分析Boost电路分析Buck-Boost电路(前级Buck后级Boost)分析Cuk电路(前级Boost后级Buck组合)小结3、换流与特性…

OAuth2在项目的应用-扫码登录

业界提供了OAUTH的多种实现如PHP、JavaScript,Java,Ruby等各种语言开发包,Oauth协议目前发展到2.0版本,1.0版本过于复杂,2.0版本已得到广泛应用。参考:https://baike.baidu.com/item/oAuth/7153134?fralad…

2020蓝桥杯真题含2天数(填空题) C语言/C++

题目描述 本题为填空题,只需要算出结果后,在代码中使用输出语句将所填结果输出即可。 小蓝特别喜欢 2,今年是公元 2020 年,他特别高兴,因为每天日历上都可以看到 2。 如果日历中只显示年月日,请问从公元 …

转录组丨limma差异表达分析,绘制火山图和热图

limma差异表达分析 本篇笔记的内容是在R语言中利用limma包进行差异表达分析,主要针对转录组测序得到的基因表达数据进行下游分析,并将分析结果可视化,绘制火山图和热图 文章目录limma差异表达分析[toc]环境部署与安装输入数据准备差异表达分析…

java JMM 内存屏障

内存屏障的目的 每个CPU都会有自己的缓存(有的甚至L1,L2,L3),缓存的目的就是为了提高性能,避免每次都要向内存取。但是这样的弊端也很明显:不能实时的和内存发生信息交换,分在不同CPU执行的不同线程对同一…

你真的需要文档管理软件吗?

什么是文档管理软件? 文档管理软件 (DMS) 是一种数字解决方案,可帮助组织处理、捕获、存储、管理和跟踪文档。 通过严格管理您的关键业务信息,您可以开发以稳定、可预测、可衡量的方式启动、执行和完成的流程。 如果没有功能齐全的文档管理软…

堆-优先队列priorityqueue原理和应用

java中PriorityQueue优先队列 优先队列 :底层是用数组实现的二叉堆,因为堆通常分为大顶堆或者小顶堆,所以优先队列可以获取每次出来的都是最大或者最小元素(对象可以实现比较器,Java优先级队列默认每次取出来的为最小元…

RocketMQ-NameServer详解

RocketMQ 路由管理 服务注册及服务发现由NameServer提供。 服务发现: 分布式服务 SOA(全称:Service Oriented Architecture 面向服务的架构)构体系中会有服务注册中心,分布式服务 SOA 的注册中心主要提供服务调用的解析…

10套“2023年软考备考资料”送给你

距离软考考试越来越近了,备考的形势越发紧张了。考点那么多,我们需要抓出常考的大部分知识点。 ​为此,为大家整理了《2023年软考免费备考资料》,内含软考各科目不同类型共10套备考资料。 ​ 第1套:早鸟学习计划&am…

华为OD机试题,用 Java 解【密室逃生游戏】问题

最近更新的博客 华为OD机试 - 猴子爬山 | 机试题算法思路 【2023】华为OD机试 - 分糖果(Java) | 机试题算法思路 【2023】华为OD机试 - 非严格递增连续数字序列 | 机试题算法思路 【2023】华为OD机试 - 消消乐游戏(Java) | 机试题算法思路 【2023】华为OD机试 - 组成最大数…

使用matlab生成符合哈工大学报的图片格式

前言 去年投稿了哈尔滨工业大学学报,因为模板问题没有过于要求投稿的细节,所以出图都是按照自己的风格来的。录用前的最后要求时需要修改图片格式,具体是表示成函数图,并且横纵坐标保持相同的精确位数。我想那么多图片我咋搞呀&a…