写点什么

探索 AI 在自动化软件测试中的角色

  • 2024-12-26
    北京
  • 本文字数:1577 字

    阅读完需:约 5 分钟

大小:789.90K时长:04:29
探索 AI 在自动化软件测试中的角色

Victor Ionascu 表示,QA 专业人员越来越多地转向使用 AI 来解决软件测试领域中日益复杂的许多问题。AI 驱动的自动化能力可以提高测试覆盖率、缩短测试周期并提高结果的准确性,从而让开发人员更快地发布更高质量的软件。

 

Victor Ionascu 在 QA Challenge Accepted 上谈到了 AI 在软件测试中的作用。

 

Ionascu 表示,当今测试领域面临的主要挑战之一是确保全面的测试覆盖率。在处理复杂系统时,尤其是在银行或物流等需要处理安全、多步骤数据交易的行业,测试人员几乎不可能手动覆盖所有边缘情况。随着复杂性的增加,遗漏重要工作流程中边缘情况的风险也会增加。正如 Ionascu 所解释的那样,难点在于确保覆盖率的同时不影响任务时间表:


随着应用程序变得越来越复杂,识别边缘情况并将其转换为可行的测试用例变得越来越困难。这会导致测试覆盖率出现潜在的不足,从而导致一些问题被忽视的后果。


Ionascu 表示,自动化测试虽然很有价值,但往往存在开发稳健测试所需的时间过多,以及适应现实世界动态场景的能力有限等问题。自动化测试的挑战不仅在于设置自动化框架或创建脚本,还在于随着系统的发展而维护和改进它们的过程。

 

Ionascu 提到,开发能够处理现实世界动态场景的稳健测试所需的时间,对测试来说是一个重大问题。他补充说,许多自动化测试都很脆弱,它们在稳定的环境中运行得很好,但在面临意外变化或极端情况时就会崩溃。

 

在日常工作中,Ionascu 使用人工智能来增强手动和自动测试。他举了一个例子:


我使用人工智能驱动的测试生成工具(如 Amazon CodeWhisperer 和 ChatGPT)来协助创建自动化测试用例,从而减少了编写复杂脚本所需的时间。这些工具可以帮助我生成动态数据、创建极端情况场景,甚至找出我可能错过的安全漏洞。


Ionascu 说,人工智能工具可以增强手动和自动测试的工作流程。他补充说,这些工具有助于自动执行重复性任务,例如测试用例生成和错误分类,从而使 QA 团队能够专注于更高价值的活动,例如探索性测试和质量策略。

 

Ionascu 表示,虽然自动化操作可以加快重复性任务的速度,但它通常需要大量的人工监督和维护才能处理复杂的工作流程,尤其是当它们遇到了一些在测试脚本的初始开发期间人们尚难以预测的可变条件时更是如此:


尽管测试自动化很有价值,但它并不是动态和复杂系统的灵丹妙药。


InfoQ 采访了 Victor Ionascu,讨论自动化测试和在软件测试中使用 AI 的话题。

 

InfoQ:你在自动化软件测试中面临哪些挑战?


Victor Ionascu:在我们的一个项目中,我们必须测试一个处理多个实体(包括银行和政府机构)之间安全文件传输的应用程序。这一流程涉及多层加密(AES 和 RSA),我们需要验证整个加密/解密过程。最初,我们开发的自动化测试用例在标准场景中运行良好。我们编写了以下流程脚本:

  1. 使用特定算法加密文件

  2. 将它们传输到中央系统

  3. 在接收端验证解密

 

但当一些实际场景出现时,例如意外的网络延迟或不同的文件格式,自动化就会失败。测试无法适应这些动态变化,需要我们频繁手动干预、重写或调整脚本。即使是很小的系统变化,例如引入新的加密算法或数据量意外激增,也会破坏自动化测试。这表明当前的自动化工具在适应更复杂、不断发展的环境方面存在局限性。

 

InfoQ:作为一名软件测试员,你在日常工作中如何使用人工智能?

Ionascu:在一个性能测试案例中,我们必须模拟一个安全文件传输系统的负载测试,该系统最多可处理 10,000 个并发用户。最初,我们使用手动流程,包括编写带有硬编码数据的用户请求静态测试脚本,但随着系统扩展,这种方式变得效率低下。

 

通过使用 CodeWhisperer 等人工智能工具,我能够动态生成用户负载。AI 还建议实现一个扩展机制,而不是使用固定用户负载进行测试。这样系统就可以根据服务器的性能动态调整用户负载,确保我们更有效地捕获峰值负载处理和响应时间。

 

原文链接:

Exploring AI's Role in Automating Software Testing

2024-12-26 08:009818

评论

发布
暂无评论

The Beacon链游NFT系统开发技术

薇電13242772558

NFT

超简单!Java 项目自动生成接口文档教程

Apifox

Java 接口文档 API 文档生成 自动生成

超级详细|Linux系统下从0到1的玩法大全

浅羽技术

Linux unix 操作系统 命令 三周年连更

全栈开发实战|Vue进阶——使用静态模块打包工具webpack

TiAmo

Vue webpack 三周年连更 静态模块打包

每个Java程序员都必须知道的四种负载均衡算法

Java 负载均衡 负载均衡算法

终于有人把动态规划、冒泡排序、二叉树、链表、栈全部讲清楚了

Java你猿哥

数据结构 算法 二叉树 排序 LeetCode算法

Mybatis返回集合类型到底是空集合还是null?源码解读

Java 源码 mybatis

中国边缘云公有云服务市场 Top2,百度智能云让智算无处不在

Baidu AICLOUD

分布式云

大语言模型时代狂飙以来,到底是谁在让你失业|社区征文

小诚信驿站

三周年征文

JSF源码分析(一)

京东科技开发者

spring jsf 企业号 4 月 PK 榜

拿来吧你!保姆级Docker底层原理及源码实战手册,上线点赞破10W

Java Docker 容器

【Linux】firewall-cmd之防火墙简介及命令详解【附加实战⭐建议收藏!!⭐】

A-刘晨阳

Linux 防火墙 Firewalld防火墙 三周年连更

生物计算大模型技术在药物研发领域的应用

Baidu AICLOUD

生命科学 PaddleHelix

华为云开源项目OpenTiny中TinyVue有什么优势?

英勇无比的消炎药

开源 Vue 组件库

ARB链质押挖矿代币空投游戏dapp系统开发合约定制

开发微hkkf5566

浅谈智能语音交互

六月的雨在InfoQ

语音识别 语音合成 三周年连更 智能语音交互

为什么说网络安全行业是IT行业最后的红利?

网络安全学海

网络安全 安全 信息安全 渗透测试 WEB安全

《人间失格》

后台技术汇

三周年连更 人间失格

python中对象引用 | python小知识

AIWeker

Python python小知识 三周年连更

天呐!我真的没想到推特GIF动图保存到手机相册竟然简单几步就能完成!

frank

twitter

品牌活动|行云创新出席“新工业·智物联”全国巡回 CEO 峰会

行云创新

行云创新 新工业 智物联 全国巡回CEO峰会珠海站

阿里“妈宝级”之作,Kubernetes原理剖析与实战应用手册,太全了

Java Kubernetes k8s

GitHub爆款!Java性能优化:轻松道破软件性能调优,不止搞定JVM

Java你猿哥

Java JVM Java性能优化

ChatGPT及大模型专题研讨会在蓉成功举办共探前沿技术与产业发展

NLP资深玩家

面试官:介绍一下什么是缓存雪崩、缓存击穿、缓存穿透?

Java你猿哥

redis 面试题 缓存穿透 缓存击穿 缓存雪崩

我认真总结并分析了Spring事务失效的十种常见场景

Java spring Spring事务

Typescript- 数据类型

格斗家不爱在外太空沉思

typescript 三周年连更

Java中的「接口」到底是什么?

海拥(haiyong.site)

三周年连更

GPU 加速药物研发与基因组学分析

Baidu AICLOUD

生命科学

一文详解RocketMQ-Spring的源码解析与实战

华为云开发者联盟

开发 华为云 华为云开发者联盟 企业号 4 月 PK 榜

Android C++系列:C++11函数特殊特性

轻口味

c++ 三周年连更

探索 AI 在自动化软件测试中的角色_AI&大模型_Eran Stiller_InfoQ精选文章