ChatGPT对软件测试的影响

ChatGPT 是一个经过预训练的 AI 语言模型,可以通过聊天的方式回答问题,或者与人闲聊。它能处理的是文本类的信息,输出也只能是文字。它从我们输入的信息中获取上下文,结合它被训练的大模型,进行分析总结,给出一个可能会让我们耳目一新的答案。

正因为简单易用,并且似乎具有超常的智慧,它使得我们“普通老百姓”有机会近距离接触到这个超能 AI,并且爱上了它;另一方面,正是由于它“智力过人”,我们在喜欢它的同时也产生了担忧,那就是我们的工作会不会被它取代,导致失业……

我的 ChatGPT 初体验

我使用 ChatGPT 也有一段时间,由于我目前所做工作主要偏向于产生内容,根据一些特定场景设计或制定解决方案之类的文本处理的事情,我会把 ChatGPT 当做一个比搜索引擎更加方便更加强大的工具来使用。比如,我可以给它输入特定场景上下文,让它帮我提供解决方案的思路。

由于大模型的支持,它的产出是经过提炼和总结的,是相对系统的,更接近于我所需要的结果,显然它是比搜索引擎更加强大、更加智能的工具,能够节省我查找资料并从资料中提炼我所需信息的大量时间,而且它可以开拓我的思路,给出一些我可能暂时想不到或者没想到的点子,这一点非常有帮助。

那是不是可以依赖于它来帮我搞定一切呢?并不能。因为它会一本正经地胡说八道,它总是过于自信,会把一个不准确的或者完成错误的结果非常自信的给出来……这个现象有个专业术语叫“人工智能幻觉”,维基百科解释如下:

在人工智能中,幻觉或人工智能幻觉是人工智能的自信反应。当模型有“幻觉”(输出欺骗性数据的倾向)时,其使用的的训练数据并不能证明输出的合理性。

该术语源自幻觉的心理学概念,因为它们具有相似的特征。人工智能幻觉的危险之处之一是模型的输出看起来是正确的,即使它本质上是错误的。

 如果你想学习自动化测试,我这边给你推荐一套视频,这个视频可以说是B站播放全网第一的自动化测试教程,同时在线人数到达1000人,并且还有笔记可以领取及各路大神技术交流:798478386   

【已更新】B站讲的最详细的Python接口自动化测试实战教程全集(实战最新版)_哔哩哔哩_bilibili【已更新】B站讲的最详细的Python接口自动化测试实战教程全集(实战最新版)共计200条视频,包括:1、接口自动化之为什么要做接口自动化、2、接口自动化之request全局观、3、接口自动化之接口实战等,UP主更多精彩视频,请关注UP账号。https://www.bilibili.com/video/BV17p4y1B77x/?spm_id_from=333.337.search-card.all.click 比如我跟 ChatGPT 一起 pair 整理的那份测试类型清单,在整理过程中我多次对它的回复进行澄清和修正才得以完成。我发现 ChatGPT 的有些认知是过时的,尤其在质量和测试领域,很多被大众认可的理念可能不是最新的,但是大数据会使得 ChatGPT 同样“认可”了这些观点,并输出给我。由于这是我非常熟悉的领域,它给出的回答带有明确错误或者过时认知的时候,我是能快速识别的。

当我接触到不太熟知的领域的时候,我也会去咨询它,通过这种方式来了解和学习。但是,这个时候需要特别谨慎,由于 AI 幻觉的存在,我需要批判性地看待它给出的答案。这一点跟使用搜索引擎是类似的,我们从网络上搜索到的内容很有可能也是不准确或错误的,只不过 ChatGPT 过于自信,很容易迷惑我们,让我失去判断力。

基于我对 ChatGPT 的使用感受,下面我想聊聊 ChatGPT 对具体的软件测试工作会带来什么影响。

ChatGPT 能做哪些软件测试工作?

 

由于 ChatGPT 处理的是文本信息,测试工作中所有跟文本打交道的工作理论上它都是可以做的,前提是要给它提供相应的上下文或者领域知识,比如:

  • 给定业务需求文档,它可以阅读文档并从中提炼信息,识别需求关键点。

  • 给定需要测试的场景,它可以生成对应场景下测试用例,包括输入数据和预期输出,以及常见的安全、性能、易用性等非功能测试对应的用例。

  • 给定测试需求,并指定自动化测试框架,它可以编写相应的自动化测试代码;

  • 给它测试结果文档,它可以汇总测试结果、生成测试报告,甚至能够根据结果推荐改进方案;

  • 给它缺陷信息,它能够帮助测试人员分析和诊断缺陷,生成对应的缺陷分类分析报告,并提供缺陷定位和修复建议。

  • 给它错误日志信息,它可以整合日志、分析并提炼关键信息,总结日志相关的问题。

ChatGPT 做测试工作有哪些局限性?

虽然理论上 ChatGPT 能做的测试工作有很多,但由于前面提到的 AI 幻觉存在,也就是它会误判,它会一本正经地胡说八道,它给出的结果离不开专业测试人员的判断和验证,无法交给它来独立完成测试工作。

还有一个必须得关注的是安全和隐私问题,也就是 ChatGPT 在处理测试数据和测试结果时需要保证数据的安全性和隐私性。业务上下文中可能包含商业机密,测试数据中可能包含敏感信息,例如用户名、密码等,需要进行保护和加密。同时,测试结果也需要进行保护和管理,避免被未授权的人员获取和使用。如果安全和隐私问题得不到保障,也就没法在正式的测试工作中使用 ChatGPT。

前面那些 ChatGPT 能做的工作基本都是有相对明确的规则或可以推断出相对确定的解决方案的,还有一些工作是 ChatGPT 很难完成的,对于一些需要创造性、探索性和强专业性的工作,测试人员来做更具优势,而 ChatGPT 很难通过获取到的有限信息来胜任这类工作。例如:

  1. 需要创造性思维和探索能力的工作:测试人员具有独特的创造性思维和探索能力,能够对不同场景的测试策略进行调整,能够发现系统中的潜在问题和未知的边界情况,可以通过假设和试验来寻找不同的测试路径,并提供有价值的反馈和改进建议。

  2. 用户体验和感知:测试人员能够模拟真实用户的行为和情境,从用户的角度出发评估系统的易用性、用户界面和交互体验。他们可以提供有关界面设计、文案表达和用户反馈的关键洞察。

  3. 性能等非功能性测试:这些测试需要更深入的技术知识和专业工具来评估,ChatGPT 很难具备测试人员在这些方面所具备的专业知识和经验。

  4. 异常情况和边界测试:测试人员能够主动挖掘系统的异常情况和边界条件,并进行测试。他们能够思考和模拟系统可能遇到的各种异常情况,以验证系统的稳定性。

  5. 文化和语言理解:在国际化和多语言环境下,测试人员能够更好地理解和评估不同文化背景和语言环境下的系统表现,包括语言翻译、本地化和地域特定需求。

  6. 除了前面的具体测试工作之外,还有测试相关的团队协作、沟通、以及流程中需要测试人员的综合能力和经验的工作,也是 ChatGPT 暂时做不到的。

当然,大家注意我这里说的是 ChatGPT 很难胜任,不是说它一定不能做。或许随着 AI 技术的不断发展,AI 真的会具有智慧,也可以像人一样思考和感知,那个时候可能它所不能做的事情会更少了。但目前阶段来讲,还不具备条件将测试工作完全交给 ChatGPT 或其他 AI 去做。

怎么看待 ChatGPT 对软件测试的影响?

总的来说,ChatGPT 对软件测试工作的影响是积极的,有以下几个方面的好处:

  1. 提高测试效率。ChatGPT 作为一个强大的人工智能工具,用对了地方是可以帮助节省测试人员时间的,前面也讲到了很多它所能做的工作。

  2. 启发测试人员,实现更全面的测试覆盖。前面提到在我用 ChatGPT 协助产生内容和制定方案的时候,它能开拓我的思路。对于测试人员制定策略、设计用例或工具选型等方面,ChatGPT 能够起到同样的作用,可以给到测试人员启发。

  3. 准确性更高。对于分析类的工作,如果 ChatGPT 获取了足够的上下文,它应该能做到比测试人员分析得更准确,因为人类容易犯错,而在确定语境下 ChatGPT 犯错的可能性会小很多。

另一方面,我对 ChatGPT 在软件测试中的使用持谨慎态度,不能盲目运用到实际工作中。在使用 ChatGPT 来开拓思路的时候,需要批判性地看待它提供的结果,不能过度依赖 ChatGPT。

最后,还想说一点是 ChatGPT 短期内不会取代测试人员,大家不用恐慌。但是,ChatGPT 的出现,测试人员不能置之不理,需要去了解它,掌握如何利用它;同时,自身要保持终身学习的习惯,不断提高各方面的综合能力,保持作为人类对 AI 的优势。

 

 

 

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Elasticsearch 优化

Elasticsearch 优化 2.1硬件选择 Elasticsearch 的基础是 Lucene ,所有的索引和文档数据是存储在本地的磁盘中,具体的 路径可在 ES 的配置文件 ../config/elasticsearch.yml 中配置,如下: #----------------------------…

2023年高教社杯数学建模思路 - 案例:异常检测

文章目录 赛题思路一、简介 -- 关于异常检测异常检测监督学习 二、异常检测算法2. 箱线图分析3. 基于距离/密度4. 基于划分思想 建模资料 赛题思路 (赛题出来以后第一时间在CSDN分享) https://blog.csdn.net/dc_sinor?typeblog 一、简介 – 关于异常…

【taro react】(游戏) ---- 贪吃蛇

1. 预览 2. 实现思路 实现食物类,食物坐标和刷新食物的位置,以及获取食物的坐标点;实现计分面板类,实现吃食物每次的计分以及积累一定程度的等级,实现等级和分数的增加;实现蛇类,蛇类分为蛇头和…

初阶数据结构(六)队列的介绍与实现

💓博主csdn个人主页:小小unicorn💓 ⏩专栏分类:C 🚚代码仓库:小小unicorn的学习足迹🚚 🌹🌹🌹关注我带你学习编程知识 栈 队列的介绍队列的概念:队…

C++设计模式_02_面向对象设计原则

文章目录 1. 面向对象设计,为什么?2. 重新认识面向对象3. 面向对象设计原则3.1 依赖倒置原则(DIP)3.2 开放封闭原则(OCP )3.3 单一职责原则( SRP )3.4 Liskov 替换原则 ( LSP )3.5 接口隔离原则 ( ISP )3.6 优先使用对象组合,而不是类继承3.7…

【算法日志】动态规划刷题:股票买卖问题(day41)

代码随想录刷题60Day 目录 前言 买卖股票的最佳时机1 买卖股票的最佳时机2 买卖股票的最佳时机3 买卖股票的最佳时机4 前言 本日着重于多状态问题的处理,各状态之间会有一定联系,状态转移方程将不再局限一个。 买卖股票的最佳时机1 int maxProfit(…

RHCE——九、SELinux

SELinux 一、概念1、作用2、SELinux与传统的权限区别 二、SELinux工作原理1、名词解释主体(Subject)目标(Object)策略(Policy)安全上下文(Security Context) 2、文件安全上下文查看1…

[ZenTao]源码阅读:自定义任务类型

1、module/custom/control.php 2、module/custom/model.php

php开发环境搭建_宝塔、composer

宝塔面板下载,免费全能的服务器运维软件 一 下载宝塔面板 解压安装 登录之后修改安全入口 1 进入软件商店下载nginx,mysql5.6,php7.2 2 将php的安装路径配置到环境变量中 此电脑--右键--点击属性---高级系统设置---环境变量---系统变量path---添加确定 输入php -v…

音视频技术开发周刊 | 308

每周一期,纵览音视频技术领域的干货。 新闻投稿:contributelivevideostack.com。 OpenAI首席科学家最新访谈:对模型创业两点建议、安全与对齐、Transformer够好吗? OpenAI首席科学家Ilya Sutskever最近和他的朋友Sven Strohband进…

大数据到底是好是坏?_光点科技

近年来,随着科技的不断发展和互联网的普及,大数据已经成为一个备受关注的话题。它带来了许多机遇和挑战,引发了人们对于其是好是坏的争议。大数据究竟是一把双刃剑,需要我们从多个角度来审视。 大数据的好处无疑是显而易见的。首先…

java入坑之网络编程

一、 网络基础知识 1.1网卡 1.2IP地址 1.3端口 1.4保留IP 1.5网络协议 二、UDP 编程 2.1相关概念 计算机通讯:数据从一个IP的port出发(发送方),运输到另外一个IP的port(接收方) UDP:无连接无…

详解I2C

I2C(也常写作 I I C IIC IIC, I 2 C I^2C I2C),全称为Inter-Integrated Circuit(“互连集成电路”),用于在集成电路之间进行短距离数据传输。它由Philips(现在的NXP半导体&#xff0…

DolphinDB 携手白鲸开源 WhaleStudio 打造高效敏捷的 DataOps 解决方案

浙江智臾科技有限公司(简称:DolphinDB)和北京白鲸开源科技有限公司(简称:白鲸开源)是在大数据技术领域活跃的两支专业团队。 DolphinDB 专注于为用户提供集高性能存储、复杂分析能力和流处理于一体的实时计…

Linux内核源码分析 (5)多处理器调度

Linux内核源码分析 (5)多处理器调度 文章目录 Linux内核源码分析 (5)多处理器调度注:本章节使用的内核版本为Linux 5.6.18一、 SMT和NUMA1、SMP (对称多处理器结构)2、NUMA (非一致内存访问结构) 二、多核调度三、调度域和调度组四、SMP调度详…

Power BI 连接 MySQL 数据库

Power Query 或 Power BI 只提供了对 SQL Server 的直接连接,而不支持其它数据库的直连。所以第一次连接 MySQL 数据库时,就出现下面的错误信。 这就需要我们自己去安装一个连接器组件。https://downloads.mysql.com/archives/c-net/ 错误解决方案 我一…

MySQL 8 数据清洗总结

MySQL 8 数据清洗三要素: 库表拷贝和数据备份数据清洗SQL数据清洗必杀技-存储过程 前提:数据库关联库表初始化和基础数据初始化: -- usc.t_project definitionCREATE TABLE t_project (id varchar(64) NOT NULL COMMENT 主键,tid varchar(…

Spring MVC 五 - Spring MVC的配置和DispatcherServlet初始化过程

今天的内容是SpringMVC的初始化过程,其实也就是DispatcherServilet的初始化过程。 Special Bean Types DispatcherServlet委托如下一些特殊的bean来处理请求、并渲染正确的返回。这些特殊的bean是Spring MVC框架管理的bean、按照Spring框架的约定处理相关请求&…

rtsp 拉流 gb28181 收流 经AI 算法 再生成 rtsp server (一)

1、 rtsp 工具 1 vlc 必备工具 2 wireshark 必备工具 3 自己制作的工具 player 使用tcp 拉流,不自己写的话,使用ffmpeg 去写一个播放器就行 4 live555 编译好live555, 将live555的参数修改以下,主要是缓存大小 文章使用c 来写一…

JavaScript Web APIs-01学习

复习: splice() 方法用于添加或删除数组中的元素。 **注意:**这种方法会改变原始数组。 删除数组: splice(起始位置, 删除的个数) 比如:1 let arr [red, green, blue] arr.splice(1,1) // 删除green元素 consol…