AI驱动的软件测试,何时可以信赖?

图片

图片

综合编译|TesterHome社区

作者|Yuliya Vasilko,数据工程师

以下为作者观点:

越来越多的组织转向人工智能(AI)驱动的测试解决方案,以简化质量保证流程并提高软件可靠性。

随着对人工智能的依赖程度越来越高,一个根本性的问题出现了:这种测试方法什么时候才能值得信赖?人工智能驱动测试的有效性和可靠性取决于一系列复杂因素的相互作用,需要进行更深入的研究。

图片

AI如何促进软件测试


人工智能为各个领域带来了变革性的进步,软件测试也不例外。通过利用人工智能功能,软件测试流程变得更加快速、准确和全面。概述起来,目前AI在软件测试中的应用有:

  • 自动生成测试用例:AI算法分析需求和代码,自动生成测试用例。可确保更广泛的测试覆盖范围,并减少创建测试场景所需的人工工作。

  • 缺陷预测与分析:人工智能可分析历史数据、代码模式和错误报告,以预测潜在缺陷。这样,测试人员就可以专注于关键领域,并据此确定工作的优先次序。

  • 异常检测:人工智能驱动的工具可以检测测试过程中的异常行为,帮助识别传统方法可能无法发现的潜在缺陷。这种积极主动的方法可增强缺陷识别能力。

  • 自动测试执行:人工智能驱动的测试工具擅长在不同配置和环境下执行大量测试用例。这不仅节省了时间,还提高了测试的准确性。

  • 日志分析和错误检测:人工智能算法可以分析日志文件和错误报告,找出与错误相关的模式。这可以通过精确定位相关信息来加速错误检测和解决。

  • 测试环境管理:人工智能可动态设置、配置和管理测试环境。这减少了环境设置的开销,使测试人员能够更专注于实际测试。

  • 自动错误分拣:人工智能可根据历史数据和严重程度对收到的错误报告进行分类和优先级排序。然后,它将这些报告分配给相应的开发人员或团队,加快错误的解决。

  • 性能测试:人工智能可以模拟真实世界的用户负载,找出应用程序中的性能瓶颈和压力点。这有助于在部署前优化性能。

  • 可用性测试:通过模拟用户交互,人工智能可识别可用性问题并提出改进建议,以提升整体用户体验。这可确保软件满足用户的期望。

  • 回归测试自动化:当添加新代码时,人工智能可自动运行回归测试过程。通过快速识别任何回归,这种方法可确保新的更改不会破坏现有功能。

我们可以看到,在软件测试中集成人工智能有多重好处。它可以加快测试周期,提高准确性和测试覆盖率,减少人为错误和工作量,从而让测试人员专注于更复杂、更高级的任务。

此外,人工智能可以全天候执行测试任务,实现连续测试,并在没有人工干预的情况下更快地反馈代码变更。人工智能为软件开发过程带来的好处还不止这些。

不过,将人工智能整合到现有的测试工作流程中需要专业知识,还需要仔细考虑符合项目目标和需求的特定工具和技术。此外,由于潜在的算法偏差、数据质量、道德考虑以及软件行为的复杂性,在软件测试中实施人工智能可能会有风险。

AI给软件测试结果带来的潜在风险

随着人工智能越来越多地融入软件测试流程,认识到与创新同时出现的潜在风险和威胁至关重要

1.测试用例生成中的偏见

人工智能系统从历史数据中学习,如果这些数据包含偏见,人工智能模型就会延续和放大这些偏见。人工智能驱动的测试用例生成可能会在测试过程中无意中引入偏见。例如,如果人工智能算法主要针对正面测试用例进行训练,它可能会忽略关键的负面场景。这会导致测试覆盖面不完整,降低测试工作的有效性。为避免这种情况,应采用涵盖广泛用户人口和行为的多样化训练数据。在培训和测试阶段实施偏差检测和缓解技术。纳入人工监督并定期审查人工智能模型,以确保持续的公平性。

2.人类的理解力有限

复杂的人工智能算法会生成人类难以理解的测试用例。人工智能生成的测试用例的决策过程缺乏透明度,会妨碍开发人员理解测试、诊断问题并做出明智的改进决策。为了应对这种情况,在审查和验证人工智能生成的测试时,应优先考虑人类的专业知识,以确保它们与质量保证工程师对系统行为的理解保持一致。您还可以开发可视化工具,简化复杂的场景,便于人类理解,并在人工智能和测试团队之间定期举行知识共享会议,以缩小差距。

3.数据隐私与安全

人工智能测试需要访问大量数据,如果不对数据进行妥善处理、存储和匿名化,就会引发对数据隐私和安全漏洞的担忧。为人工智能测试中使用的敏感数据实施强有力的全方位安全措施,以及定期审计和监控数据处理实践是关键所在。

4.假阳性和假阴性

人工智能驱动的测试工具有时会产生假阳性(显示不存在的问题)或假阴性(遗漏实际问题)。误报可能导致浪费时间和精力去调查不存在的问题,而误报则可能导致关键缺陷被漏检。通过对人工智能生成的结果进行全面验证,并结合人类的专业知识来审查和确认测试结果,可以最大限度地降低这种风险。

5.过度强调自动化


过度依赖人工智能驱动的测试可能会导致对人类直觉、创造力和领域知识的重视程度下降。这可能会导致错过人类测试人员擅长的探索性测试。通过保持平衡的方法来抵制对自动化的过度强调。纳入探索性测试,鼓励人类测试人员提供领域专业知识,并确保人工智能是对人类直觉的补充,而不是完全取代人类直觉。

6.依赖训练数据


如果用于训练人工智能模型的训练数据有限,或者没有涵盖广泛的场景,人工智能可能难以有效地推广到现实世界的情况中。在处理训练数据中代表性不足的罕见或新奇事件时,这种风险尤为突出。这可能导致人工智能在面对与训练数据不同的输入或情况时表现不佳,从而产生次优结果并降低人工智能系统的可靠性。

质量保证工程师应确保训练数据的多样性和全面性,涵盖各种可能的输入,定期更新训练数据,采用数据增强和合成数据生成技术来填补空白。此外,还应为人工智能融入迁移学习等技术,以利用相关领域的知识并提高其在新环境中的性能。

7.伦理考虑


人工智能决策可能会涉及道德问题,尤其是在人类判断、移情和语境理解至关重要的领域。如果人工智能只负责生成测试用例,它可能会忽略某些用户的观点,导致产品只迎合特定的人口统计或用户行为。通过制定明确的道德准则、进行彻底的道德审查以及持续监控人工智能行为以发现潜在的偏见或意外后果,来解决道德方面的问题。

8.技能差距


对人工智能技术专业知识的需求超过了现有熟练专业人员的供应。这可能会导致在有效实施和维护人工智能系统方面遇到挑战,造成次优结果、成本增加和项目延迟。缩小技能差距需要在培训和技能提升方面进行投资,以确保测试团队掌握有效利用人工智能的必要知识。

平衡人工智能的优势与人类的专业知识,是成功应对挑战并从人工智能驱动的软件测试中获益的关键。通过提高透明度、严格验证和持续监控,我们可以利用人工智能的能力,同时最大限度地减少其隐患,确保我们对创新的追求始终坚定而安全。

接口自动化测试实战(Java技术栈,从0到1设计框架)

 

从0到1实现UI自动化测试和框架设计 (Java技术栈)

Web UI自动化测试-进阶速成实战

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

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

相关文章

功能案例 -- 拖拽上传文件,生成缩略图

直接看效果 实现代码 <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>拖拽上传文件</title>&l…

低价寄快递寄件微信小程序 实际商用版,对接了低价快递渠道,运营平台赚取差价,支持市面上全部主流快递

盈利模式 快递代下CPS就是用户通过线上的渠道&#xff08;快递小程序&#xff09;&#xff0c;线上下单寄快递来赚取差价&#xff0c;例如你的成本价是5元&#xff0c;你在后台比例设置里面设置 首重利润是1元&#xff0c;续重0.5元&#xff0c;用户下1kg的单页面显示的就是6元…

ElasticSearch知识点

什么是ElasticSearch ElasticSearch: 智能搜索&#xff0c;分布式的搜索引擎&#xff0c;是ELK的一个非常完善的产品&#xff0c;ELK代表的是: E就是ElasticSearch&#xff0c;L就是Logstach&#xff0c;K就是kibana Elasticsearch是一个建立在全文搜索引擎 Apache Lucene基础…

FreeRTOS源码阅读笔记2--list.c

list.c中主要完成列表数据结构的操作&#xff0c;有列表和列表项的初始化、列表的插入和移除。 2.1列表初始化vListInitialise() 2.1.1函数原型 void vListInitialise( List_t * const pxList ) pxList&#xff1a;列表指针&#xff0c;指向要初始化的列表。 2.1.2函数框架…

联系作者方式的教程

首先你应该目前是在付费资源运行效果的展示文章页面&#xff0c;如下所示 然后一直往下滑&#xff0c;滑到这个文章的最下面&#xff0c;就可以看到我的推广名片&#xff0c;最后点击这个名片就可以获取到我的联系方式了~

学习OpenCV(蝴蝶书/C++)相关——2.MacOS下使用LLDB调试cpp程序

文章目录 1. VScode中的调试2. 配置VSCode中C++的调试(以OpenCV为例)2.1 创建适用于C++的.launch文件2.2 常见参数说明2.3 调试OpenCV的.launch文件示例2.3.1 .launch文件demo2.3.2 Debug模式的可执行文件3. 联合task.json文件一起使用3.1 创建tasks.json和launch.json文件3.2 …

安装纯净版Linux后的必备设置

目录 一&#xff1a;网络设置 1&#xff0c;设置yum源 2&#xff0c;配置网络 二&#xff1a;samba服务设置 1&#xff0c;安装samba 2&#xff0c;设置samba 3&#xff0c;windows上挂载 三&#xff1a;安装必备的开发软件 1&#xff0c;GCC安装 2&#xff0c;Pyth…

JLink edu mini 10Pin接口定义

注意&#xff1a;SWD接口在阵脚2&#xff0c;4&#xff1b;而20Pin的SWD接口在阵脚7&#xff0c;9 参考&#xff1a;1 官网资料&#xff1b; 2 【润石RS0104YQ Demo开发板测试分享】J-Link EDU Mini调试5V系统_国产运算放大器_模拟开关_线性稳压器_电平转换器_小逻辑_比较器…

Linux之基本指令操作

1、whoami whoami&#xff1a;查看当前账号是谁 2、who who&#xff1a;查看当前我的系统当中有哪些用户&#xff0c;当前有哪些人登录了我的机器 3、 pwd pwd&#xff1a;查看我当前所处的目录&#xff0c;就好比Windows下的路径 4、ls ls&#xff1a;查看当前目录下的文件信…

Doris:多源数据目录(Multi-Catalog)

目录 1.基本概念 2.基本操作 2.1 查看 Catalog 2.2 新增 Catalog 2.3 切换 Catalog 2.4 删除 Catalog 3.元数据更新 3.1手动刷新 3.2定时刷新 3.3自动刷新 4.JDBC Catalog 4.1 上传mysql驱动包 4.2 创建mysql catalog 4.3. 读取mysql数据 1.基本概念 …

【MySQL】列属性

文章目录 CHAR和VARCHAR插入单行 INSERT INTO插入多行插入分层行 LAST_INSERT_IN()创建表复制 CREAT TABLE AS更新单行 UPDATE...SET更新多行在UPDATES中使用子查询【需着重复习】删除行 DELETE恢复数据库到原始状态 CHAR和VARCHAR CHAR(50)&#xff1a;存储文本占5个字符&…

Vatee万腾科技决策力的未来展望:开创数字化创新的新高度

随着科技不断演进&#xff0c;Vatee万腾的科技决策力在数字化创新领域展现出了强大的潜力和前瞻性。 Vatee万腾的科技决策力被视为数字化创新的引擎&#xff0c;为未来创新注入了新的动力。通过深刻的市场洞察和科学决策&#xff0c;Vatee万腾致力于推动数字化创新走向新的高度…

算法导论6:摊还分析,显式与隐式

P258 摊还分析概念 聚合分析&#xff0c;利用它&#xff0c;我们证明对于n&#xff0c;一个n个操作的序列最坏情况下的花费的总时间为T(n)&#xff0c;因此&#xff0c;在最坏情况下&#xff0c;每个操作的平均代价&#xff08;摊还代价&#xff09;为T(n)/n 举了例子来形容这…

C#中.NET 7.0控制台应用使用LINQtoSQL、LINQtoXML

目录 一、新建控制台应用和数据库连接 二、手动添加System.Data.Linq程序包 三、手动添加System.Data.SqlClient程序包 四、再次操作DataClasses1.dbml 五、示例 1.源码 2.xml文件 默认安装的.NET 7.0控制台应用是不支持使用LINQtoSQL、LINQtoXML的。 默认安装的.NET F…

自动驾驶学习笔记(八)——路线规划

#Apollo开发者# 学习课程的传送门如下&#xff0c;当您也准备学习自动驾驶时&#xff0c;可以和我一同前往&#xff1a; 《自动驾驶新人之旅》免费课程—> 传送门 《Apollo Beta宣讲和线下沙龙》免费报名—>传送门 文章目录 前言 路线规划 路由元素 路径搜索 最优…

【安卓13】谷歌原生桌面launcher3源码修改,修改桌面布局(首屏应用、小部件、导航栏、大屏设备任务栏)

前言 近期接到一个关于谷歌EDLA认证的需求&#xff0c;我负责的是谷歌原生桌面布局的修改&#xff0c;通过研究源码&#xff0c;将涉及到了一些修改思路发出来&#xff0c;大家可以参考一下有没有对你有用的信息。主要修改内容有&#xff1a; 1、搜索栏、底部导航栏未居中 2、…

LangChain应用全解析

一、Langchain基础 1.Langchain简介 (1)替换模型 from langchain.prompts import ChatPromptTemplatechat ChatOpenAI(temperature0) 使用代理ip llm ChatOpenAI(model_name"gpt-3.5-turbo", max_tokens2048, temperature0.5,openai_api_keyapi_key,openai_ap…

论文阅读:PVT v2: Improved Baselines with Pyramid Vision Transformer

来源&#xff1a;PVTv1 和PVTv2 链接&#xff1a;https://arxiv.org/pdf/2102.12122.pdf 链接&#xff1a;https://arxiv.org/pdf/2106.13797.pdf PVTv2是在PVTv1基础上&#xff0c;所以先介绍PVTv1 Pyramid Vision Transformer: A Versatile Backbone for Dense Prediction…

windows上运行yolov3代码详解(小白)

batch_normalize1 # 是否做BN 代码链接 环境配置 没有Anaconda的话可以安装下 首先创建虚拟环境&#xff0c;名称随意&#xff0c;版本3.9.我觉得挺好的 激活虚拟环境 conda activate 刚刚创建的环境名称 切换到requirements.txt目录下&#xff0c;直接vscode打开yolov3文件…

【操作系统面试题(32道)与面试Linux命令大全】

文章目录 操作系统面试题引论1.什么是操作系统&#xff1f;2.操作系统主要有哪些功能&#xff1f; 操作系统结构3.什么是内核&#xff1f;4.什么是用户态和内核态&#xff1f;5.用户态和内核态是如何切换的&#xff1f; 进程和线程6.并行和并发有什么区别&#xff1f;7.什么是进…