AI测试的迷思
近年来,我一直关注AI相关的测试,并积极参与多个全国性测试社区和社群。在这些社区中,我与不同公司和领域的测试专家交流探讨AI测试相关话题,包括业界顶尖公司的专家和国内知名测试学者。我也参加了多个大会,聆听了许多关于AI测试的主题分享,并尝试了多款AI相关的测试工具,从中获得了许多知识和感悟。
在这些测试社区和社群中,我遇到了许多关于AI测试的问题,例如什么是AI测试,如何进行AI测试,AI测试有哪些工具与方法等。然而,当我在网上搜索AI测试相关的书籍时,却发现大量的AI开发相关书籍,却鲜有专门介绍AI测试的书籍。这说明测试业界仍在混沌中不断摸索前进。
为了分享我所学到的AI测试相关知识和经验,我梳理了自己的学习经历,尝试回答了一些我遇到的关于AI测试的常见问题,并将这些内容整理成文章,与大家一起交流探讨。
AI测试的迷思
在讨论AI测试时,通常存在两种理解:
第一种是利用AI辅助当前的软件测试,例如使用AI系统学习测试分析和测试设计,进而自动生成测试用例并自动化实现这些测试用例。
第二种则是对AI系统进行测试。尽管业界对于AI系统进行测试仍然使用常规测试手段,如功能测试、性能测试和安全测试等,但测试其功能有效性时往往难以获取明确的测试数据和验收条件。这种情况下,只能通过对算法的深入理解和根据经验生成或寻找数据,并大致评估功能测试结果的有效性来进行测试。
而利用AI辅助当前的自动化测试则是一个新兴领域。使用AI(如深度学习)系统来帮助测试工作绝对是近几年最热门的测试趋势之一,其中包括自动生成并执行自动化测试、大规模测试结果分析、自动化探索性测试、缺陷定位等。
美国已经有多家公司推出了商用的AI测试工具。在朱少民老师的公众号“软件质量报道”中,有一篇名为《未来已来,人工智能测试势不可挡:介绍9款AI测试工具》的文章,介绍了9款基于AI的测试工具。但这些AI测试工具普遍存在测试用例准确性和大规模测试用例可维护性等问题。
第一个问题:AI辅助测试真的能用吗?
虽然许多公司已经开始研究AI辅助测试,并有许多工具问世,但它们都有一个显著问题:准确性。由于现有的AI学习算法本身的限制,学习并生成的测试用例和验证条件的准确率都不是非常高。我曾参加过几个大会,其中一些中国一线互联网厂商分享的AI辅助测试的准确率仅略高于80%,不到90%。这种准确率在金融等某些对精度要求高的系统中很难得到认可。
其次,当自动化测试用例规模很大时,测试用例的维护工作很难依靠人工完成,只能依靠工具。由于AI测试工具的不准确性,导致维护工作的准确性也不是十分理想。
尽管如此,在质量要求不高的大型系统中,AI辅助测试可以极大地降低测试成本,因此在这些系统中,AI辅助自动化测试已经得到应用。此外,在质量要求高并且资源充足的项目中,AI辅助测试可以作为人工自动化测试的扩展,作为自动化探索性测试的一种工具,可以进一步保证软件质量。
第二个问题:AI辅助测试已经发展到什么程度了?
目前,AI辅助测试仍处于初级阶段。我将AI辅助测试分为三个阶段:
第一阶段是通过深度学习模型自动产生测试用例的输入,然后通过人工验证输出结果的正确性。
第二阶段是通过深度学习模型自动产生测试用例的输入,并通过规则模型自动验证输出结果的正确性。
第三阶段是通过深度学习模型自动产生测试用例的输入和输出,并自动验证输出结果的正确性。
目前业界已经基本实现了第一阶段,有一些公司也已经开始实现第二阶段。然而,只有极少数的大公司已经实现了第三阶段,并且这些公司的准确性还有待提高。因此,AI辅助测试仍有很长的路要走。
第三个问题:哪些软件系统能用AI辅助测试?
理论上,任何软件系统都可以使用AI来辅助自动化测试工作。然而,由于目前AI测试系统的现状,它还不能真正用于所有类型的软件系统。许多实际项目只在某些特定系统的特定接口层上使用AI测试,例如Web Service API等。
在不同行业领域中,AI测试的使用情况也不同。例如,在金融和军工等对质量要求很高的行业中,AI测试目前只能作为当前已有功能自动化测试的扩展部分。而在互联网等质量要求不高的行业中,一些技术能力强的公司已经将AI测试作为主要的自动化测试方式之一。不过,AI辅助自动化测试无疑是自动化测试的未来!
总结
通过上面对于问题的回答,希望能解决大家对于AI测试的困惑,包括了解什么是AI测试,自己的项目是否适合使用AI测试,以及未来是否需要在AI测试上投资等问题。
综上所述,AI测试目前仍处于发展初期,因此不适合大规模使用,只有在特定项目中才可以考虑使用。无论是使用AI还是人工方式实施自动化测试,核心都是测试的有效性和测试结果的准确性,以及测试用例的可维护性。这些是大规模自动化测试成功与否的关键因素。
因此,无论是AI自动测试还是人工自动测试,其核心本质都是一样的:靠知识学习、分析、总结等一系列人的思维来解决测试分析、测试设计和自动化测试实现的工作。但目前AI系统本身的发展还不足以很好地替代人在测试分析和测试设计方面的工作,导致AI实现的自动化测试的准确性以及可维护性比人工方式更差。不过,AI测试在时间和成本方面有明显的优势,这也是其越来越受欢迎的原因。
因此,在测试领域,AI需要更加努力才能真正替代人的工作。在考虑使用AI测试之前,应该仔细评估项目的特定需求和条件,以确定是否适合使用AI测试。未来,随着AI技术的不断发展和完善,AI测试将成为自动化测试的重要趋势,而投资于AI测试的相关技术和人才也将是一个明智的选择。
文/Thoughtworks 刘冉
阅读原文:https://insights.thoughtworks.cn/what-is-ai-testing/
相关文章:
AI测试的迷思
近年来,我一直关注AI相关的测试,并积极参与多个全国性测试社区和社群。在这些社区中,我与不同公司和领域的测试专家交流探讨AI测试相关话题,包括业界顶尖公司的专家和国内知名测试学者。我也参加了多个大会,聆听了许多…...
[ 红队知识库 ] 一些常用bat文件集合
🍬 博主介绍 👨🎓 博主介绍:大家好,我是 _PowerShell ,很高兴认识大家~ ✨主攻领域:【渗透领域】【数据通信】 【通讯安全】 【web安全】【面试分析】 🎉点赞➕评论➕收藏 养成习…...
Qt广告机服务器(上位机)
目录功能结构adSever.promain.cpptcp_MSG.h 共用Tcp传输信息adsever.h 服务器adsever.cpp 服务器addate.h 时间处理addate.cpp 时间处理adtcp.h 客户端Socket处理adtcp.cpp 客户端Socket处理client.h 客户端信息类client.cpp 客户端信息类admsglist.h 信息记录模块admsglist.cp…...
SOA架构的理解
1. SOA概述 SOA(Service-Oriented Architecture,面向服务的架构)是一种在计算机环境中设计、开发、部署和管理离散模型的方法。SOA不是一种新鲜事物,它是在企业内部IT系统重复构建以及效率低下的背景下提出的。在SOA模型中&#x…...
如何选择一款数据库?
1主流数据库技术介绍常见的数据库模型主要分为SQL关系型数据库和NoSQL非关系型数据库。其中关系型数据库分为传统关系数据库和大数据数据库,非关系型数据库分为键值存储数据库、列存储数据库、面向文档数据库、图形数据库、时序数据库、搜索引擎存储数据库及其他&am…...
week2
蓝桥2 递归*树的遍历约数之和分形之城并查集亲戚连通块中点的数量*食物链银河英雄传说哈希笨拙的手指模拟散列表单调队列剪裁序列滑动窗口最大子序和KMP周期递归 *树的遍历 中序遍历: 遍历左子树,根节点,右子树 后序遍历:遍历左子树,右子树,根节点 一个二叉树,树中每个…...
JavaScript的学习
一、引言 1.1 JavaScript简介 JavaScript一种解释性脚本语言,是一种动态类型、弱类型、基于原型继承的语言,内置支持类型。它的解释器被称为JavaScript引擎,作为浏览器的一部分,广泛用于客户端的脚本语言,用来给HTML网…...
用gin写简单的crud后端API接口
提要使用gin框架(go的web框架)来创建简单的几个crud接口)使用技术: gin sqlite3 sqlx创建初始工程新建文件夹,创建三个子文件夹分别初始化工程 go mod如果没有.go文件,执行go mod tidy可能报错(warning: "all" matched no packages), 可以先不弄,只初始化模块就行(…...
CF大陆斗C战士(三)
文章目录[C. Good Subarrays](https://codeforces.com/problemset/problem/1398/C)题目大意题目分析code[C. Boboniu and Bit Operations](https://codeforces.com/problemset/problem/1395/C)题目大意题目分析code[C. Rings](https://codeforces.com/problemset/problem/1562/…...
TTS | 语音合成论文概述
综述系列2021_A Survey on Neural Speech Synthesis论文:2106.15561.pdf (arxiv.org)论文从两个方面对神经语音合成领域的发展现状进行了梳理总结(逻辑框架如图1所示):核心模块:分别从文本分析(textanalysi…...
HTML第5天 HTML新标签与特性
新标签与特性文档类型设定前端复习帮手W3Schoool常用新标签datalist标签,与input元素配合,定义选项列表fieldset元素新增input表单文档类型设定 document – HTML: 开发环境输入html:4s – XHTML: 开发环境输入html:xt – HTML5: 开发环境输入html:5 前…...
java ee 之进程
目录 1.进程的概念 2.进程管理 3.进程属性(pcb) 3.1pid 3.2内存指针 3.3文件描述符 3.4进程调度 3.4.1进程状态 3.4.2 进程的优先级 3.4.3进程的上下文 3.4.4进程的记账信息 5.进程间通信 1.进程的概念 一个运行起来的程序,就是进程 .exe是一个可执行文件(程序),双…...
Linux学习记录——십사 进程控制(1)
文章目录1、进程创建1、fork函数2、进程终止1、情况分类2、如何理解进程终止3、进程终止的方式3、进程等待1、进程创建 1、fork函数 fork函数从已存在进程中创建一个新进程,新进程为子进程,原进程为父进程。 #include <unistd.h> pid_t fork(vo…...
使用 create-react-app 脚手架搭建React项目
❀官网 1、安装脚手架:npm install -g create-react-app 2、查看版本:create-react-app -V !!!注意 Node版本必须是14以上,不然会报以下错误。 3、创建react项目(项目名不能包含大写字母&…...
inquirerjs
inquirerjs inquirerjs是一个用来实现命令行交互界面的工具集合。它帮助我们实现与用户的交互交流,比如给用户一个提醒,用户给我们一个答案,我们根据用户的答案来做一些事情,典型应用如plop等生成器工具。 npm install inquirer…...
[数据库]内置函数
●🧑个人主页:你帅你先说. ●📃欢迎点赞👍关注💡收藏💖 ●📖既选择了远方,便只顾风雨兼程。 ●🤟欢迎大家有问题随时私信我! ●🧐版权:本文由[你帅…...
shell基本知识
为什么学习和使用Shell编程 什么是Shell shell的起源 shell的功能 shell的分类 如何查看当前系统支持的shell? 如何查看当前系统默认shell? 驼峰语句 shell脚本的基本元素 shell脚本编写规范 shell脚本的执行方式 shell脚本的退出状态 …...
Http长连接和短连接
http1.0以前,默认使用的是短连接,客户端与服务器之间每进行一次http操作,就会建立一次连接,例如,打开一个网页,包括html文件,js,css,每获取一次资源,就需要进…...
[SQL Statements] 基本的SQL知识 之DDL针对表结构和表空间的基本操作
[SQL Statements] 基本的SQL知识 之DDL针对表结构和表空间的基本操作 什么是数据库的表以及表空间 在MySQL中,一个数据库可以包含多个表,每个表是由若干个列(column)和行(row)组成的。表是存储数据的基本…...
Git版本控制工具(详解)
Git版本控制工具 Git常见命令速查表 集中式版本控制 cvs和svn都是属于集中式版本控制系统 他们的主要特点是单一的集中管理服务器 保存所有文件的修订版本协同开发人员通过客户端连接到这台服务器 取出最新的文件或者提交更新 优点每个人都可以在一定程度上看到项目中的其他…...
React Native 开发环境搭建(全平台详解)
React Native 开发环境搭建(全平台详解) 在开始使用 React Native 开发移动应用之前,正确设置开发环境是至关重要的一步。本文将为你提供一份全面的指南,涵盖 macOS 和 Windows 平台的配置步骤,如何在 Android 和 iOS…...
PHP和Node.js哪个更爽?
先说结论,rust完胜。 php:laravel,swoole,webman,最开始在苏宁的时候写了几年php,当时觉得php真的是世界上最好的语言,因为当初活在舒适圈里,不愿意跳出来,就好比当初活在…...
什么是库存周转?如何用进销存系统提高库存周转率?
你可能听说过这样一句话: “利润不是赚出来的,是管出来的。” 尤其是在制造业、批发零售、电商这类“货堆成山”的行业,很多企业看着销售不错,账上却没钱、利润也不见了,一翻库存才发现: 一堆卖不动的旧货…...
【论文笔记】若干矿井粉尘检测算法概述
总的来说,传统机器学习、传统机器学习与深度学习的结合、LSTM等算法所需要的数据集来源于矿井传感器测量的粉尘浓度,通过建立回归模型来预测未来矿井的粉尘浓度。传统机器学习算法性能易受数据中极端值的影响。YOLO等计算机视觉算法所需要的数据集来源于…...
IT供电系统绝缘监测及故障定位解决方案
随着新能源的快速发展,光伏电站、储能系统及充电设备已广泛应用于现代能源网络。在光伏领域,IT供电系统凭借其持续供电性好、安全性高等优势成为光伏首选,但在长期运行中,例如老化、潮湿、隐裂、机械损伤等问题会影响光伏板绝缘层…...
多种风格导航菜单 HTML 实现(附源码)
下面我将为您展示 6 种不同风格的导航菜单实现,每种都包含完整 HTML、CSS 和 JavaScript 代码。 1. 简约水平导航栏 <!DOCTYPE html> <html lang"zh-CN"> <head><meta charset"UTF-8"><meta name"viewport&qu…...
Mysql中select查询语句的执行过程
目录 1、介绍 1.1、组件介绍 1.2、Sql执行顺序 2、执行流程 2.1. 连接与认证 2.2. 查询缓存 2.3. 语法解析(Parser) 2.4、执行sql 1. 预处理(Preprocessor) 2. 查询优化器(Optimizer) 3. 执行器…...
三分算法与DeepSeek辅助证明是单峰函数
前置 单峰函数有唯一的最大值,最大值左侧的数值严格单调递增,最大值右侧的数值严格单调递减。 单谷函数有唯一的最小值,最小值左侧的数值严格单调递减,最小值右侧的数值严格单调递增。 三分的本质 三分和二分一样都是通过不断缩…...
git: early EOF
macOS报错: Initialized empty Git repository in /usr/local/Homebrew/Library/Taps/homebrew/homebrew-core/.git/ remote: Enumerating objects: 2691797, done. remote: Counting objects: 100% (1760/1760), done. remote: Compressing objects: 100% (636/636…...
stm32wle5 lpuart DMA数据不接收
配置波特率9600时,需要使用外部低速晶振...
