ChatGPT对软件测试的影响!


 

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

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

   

我的 ChatGPT 初体验

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

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

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

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

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


 

比如我跟 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 的优势。

 

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

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

相关文章

【C++杂货铺】string详解

目录 1. 基本概念: 1.1 本质: 1.2 string和char*区别: 1.3 特点: 2. 构造函数(初始化) 3. 赋值操作 4. 字符串拼接 5 查找 和 替换 6. 字符串比较 7. 字符存取 8. 插入和删除 ​9. 子串获取 🌈前言&#x…

Rocky Linux网卡静态配置

一、开源系统 Rocky Linux 下载安装 1、安装教程 Rocky Linux 下载安装 二、远程工具 MobaXterm下载安装 1、安装教程 MobaXterm 下载安装 三、Rocky Linux 网卡配置 1、使用ip addr确认网卡名称(此处可得知网卡为ens160) [rootlocalhost ~]# ip a 1:…

23款奔驰GLE350升级小柏林音响 安装效果分享

小柏林之声音响是13个喇叭1个功放,功率是590W,对应普通音响来说,已经是上等了。像著名的哈曼卡顿音响,还是丹拿音响,或者是BOSE音响,论地位,论音质柏林之声也是名列前茅。星骏汇小许Xjh15863 升…

2.C语言——输入输出

1.字符输入输出函数 1.输入:getchar() 字面意思,接收单个字符,使用方法 char a; a getchar();实际上效果等同于char a; scanf("%c",&a);2.输出:putchar() 2.格式化输入输出函数 1.输入:scanf() 格式: scanf(“格式控制…

Axes属性汇总

Axes属性很多,主要起控制坐标区的外观和行为的作用,共涉及十三类。 第1类:字体 Font Name——字体名称,默认为’Helvetica’。 要使用在任何区域设置中都有较好显示效果的等宽字体,请使用 “FixedWidth”。等宽字体依…

系统测试计划(直接套用实际)

1测试目的 2测试范围 3资源要求 3.1人力资源 3.2指派干系人 3.3测试环境 3.4测试工具 4测试类型 5测试安排 5.1测试进度 5.2测试策略 5.2.1测试需求 5.2.2测试类型 6测试停止标准 7测试风险 8缺陷管理 8.1缺陷属性 8.2缺陷类型 8.3缺陷严重程度 8.4缺陷优先级 8.5缺陷状态 8.6缺…

C#上位机与三菱PLC的通信07--使用第3方通讯库读写数据

1、通讯库介绍 mcprotocol 是一个基于 Node.js 的三菱 PLC MC 协议通信库,具有以下特点: 支持多种三菱 PLC MC 协议的设备,如 FX3U、Q03UDECPU、QJ71E71 等。 支持多种功能码和数据类型,如读取线圈(M)、…

[AIGC] 利用 chatgpt 深入理解 Java 虚拟机(JVM)

Java 虚拟机(JVM)是 Java 编程语言的核心运行环境,它负责解释和执行 Java 字节码。它是 Java 程序能够跨平台运行的关键,因为不同的操作系统和硬件平台都有自己的指令集和体系结构,而 JVM 则提供了一个统一的运行环境&…

硬核!10分钟教你搭建一个本地版GPT4.0!

今天10分钟手把手教会你在自己电脑上搭建一个官方原版的GPT4.0。 不用ChatGPT账号,不用API,直接免费使用上官方原版的GPT4.0! 对!你没看错!不仅是正版GPT4.0,还完全免费! 而且整个部署流程极其简…

java根据前端所要格式返回树形3级层级数据

一、业务分析,根据前端需求返回如下数据格式 二、后端设计数据类型VO /*** author TTc* version 1.0* date 2024/2/15 16:47*/ Data AllArgsConstructor NoArgsConstructor public class Catalog2Vo {/*** 一级父分类的 id*/private String catalog1Id;/*** 三级子…

C# 12 中新增的八大功能你都知道吗?

一、主构造函数 在 Visual Studio 2022 版本 17.6 预览版 2 中引入。 从 C# 12 开始,可以在类和结构中声明主构造函数。主构造函数参数都在类的整个主体的范围内。为了确保显式分配所有主构造函数参数,所有显式声明的构造函数都必须使用 this() 语法调用…

SSL证书要钱吗?SSL证书一定要安装吗?

为了保护网站的数据安全和用户隐私,越来越多的网站开始采用SSL证书来加密数据传输。那么,SSL证书到底是否需要收费呢?又是否一定要安装呢?本文将从专业角度为您解答这些问题。 首先,我们来了解一下什么是SSL证书。SSL…

CPU是如何工作的?什么是冯·诺依曼架构和哈弗架构?

《嵌入式工程师自我修养/C语言》系列——CPU是如何工作的?什么是冯诺依曼架构和哈弗架构? 一、CPU内部结构及工作原理1.1 CPU的结构1.2 CPU工作流程举例 二、计算机体系结构2.1 冯诺依曼架构2.2 哈弗架构 三、总结 快速学习嵌入式开发其他基础知识&#…

《源代码》:穿越思考的时空之旅

计算机专业必看的几部电影 计算机专业必看的几部电影,就像一场精彩的编程盛宴!《黑客帝国》让你穿越虚拟世界,感受高科技的魅力;《社交网络》揭示了互联网巨头的创业之路,《源代码》带你穿越时间解救世界,…

error: src refspec main does not match any解决办法

一、问题描述: 用GitHub Actions自动部署Hexo,到了最关键的一步;突然报错:error: src refspec main does not match any 1、错误一: main分支应填写为master分支;但是只改这里也会报其他错误 2、错误二&a…

mqtt 协议的概念和理解

一、概述 MQTT(Message Queuing Telemetry Transport,消息队列遥测传输协议),是一种基于发布/订阅(publish/subscribe)模式的”轻量级”通讯协议,该协议构建于TCP/IP协议上,由IBM在1…

【C项目】无头单向不循环链表

简介:本系列博客为C项目系列内容,通过代码来具体实现某个经典简单项目 适宜人群:已大体了解C语法同学 作者留言:本博客相关内容如需转载请注明出处,本人学疏才浅,难免存在些许错误,望留言指正 作…

Rabbitmq入门与应用(五)-延迟队列的设计与实现

延迟队列设计 在开发过程中涉及到延迟队列的应用,例如订单生成后有30分钟的付款时间,注册是有60秒的邮件或者短信的发送读取时间等。 常规使用rabbitmq设计延迟队列有两种方式 使用创建一个延迟队列阻塞消息使用延迟队列插件 Dead Letter Exchanges —…

Linux——信号(2)

在上一张博客我们介绍了Linux中信号的概念和信号是如何产生的,虽然信号 有多种产生方式,但是最终只能由操作系统给对应进程发送特定信号。现在 我将更加规范的介绍Linux中的信号。上一章的遗留问题 我们上一章中在观察信号的默认处理的时候发现终止信号…

canal监听binlog记录业务数据的变更;canalAdmin对instance做web配置

概述 平时在开发中会通过logback打印一些开发日志,有时也会需要记录一些业务日志,简单的就直接用log记录一下,但是系统中需要记录日志的地方越来越多时,不能每个地方都写一套log记录; 由于平常用的大多都是mysql&…