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 的优势。

 

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

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

相关文章

Linux系统——防火墙拓展及重点理解

目录 一、iptables 1.基本语法 2.四表五链——重点记忆 2.1四表 2.2五链 2.3总结 3.iptables选项示例 3.1 -Z 清空流量计数 3.2 -P 修改默认规则 3.3 -D 删除规则 3.4 -R 指定编号替换规则 5.白名单 6.通用匹配 7.示例 7.1添加回环网卡 7.2可以访问端口 7.3 主…

软件技术实训解决方案2024

软件技术实训解决方案 软件产业在新兴产业中占据重要地位,是推动数字经济发展的关键力量。面对“十四五”时期的新机遇和挑战,我国已经明确了加强关键数字技术创新应用的战略方向,并将软件和信息技术服务业的发展列为重点。这不仅是为了加快…

信息密码管理

密码管理 密码技术时保护信息安全的最有效手段,也是保护信息安全按按的最关键技术。各国政府相应出台了各种密码管理政策用于控制密码技术、监控密码市场等。目前我国密码管理相关的机构是国家密码管理局,全称国家商用密码管理办公室。 国家出台密码相关的主要政策有《商用…

利用R语言绘制相关性热图

数据示例(归一化处理后): install.packages("corrplot") install.packages("ggplot2") install.packages("ggpubr") library(corrplot) install.packages("GGally") library(GGally) library(ggplot…

【BIOS】解锁BIOS隐藏菜单/高级选项

免责声明:修改BIOS存在风险,请谨慎操作。作者不对因操作不当而导致的任何后果负责。 一些默认的BIOS菜单选项相当有限,无法进行一些高级选项的修改。通过修改BIOS内容,我们可以解锁被隐藏的高级菜单,如Above 4G Decod…

Windows11(非WSL)安装Installing llama-cpp-python with GPU Support

直接安装,只支持CPU。想支持GPU,麻烦一些。 1. 安装CUDA Toolkit (NVIDIA CUDA Toolkit (available at https://developer.nvidia.com/cuda-downloads) 2. 安装如下物件: gitpythoncmakeVisual Studio Community (make sure you install t…

《计算思维导论》笔记:10.5 应用关系运算进行数据库的查询

《大学计算机—计算思维导论》(战德臣 哈尔滨工业大学) 《10.5 应用关系运算进行数据库的查询》 一、引言 我们接着给大家介绍数据库中的关系运算:应用关系运算,进行数据库的查询。 二、利用关系运算进行查询 我们前面给大家介绍…

实例观察 c 语言中 volatile 的作用

volatile 意思是易变的。 在 c 语言中,如果变量被 volatile 修饰,就是告诉编译器这个变量随时都可能发生变化,那么每次读取变量的时候都会到内存中读取。 如果变量没有被 volatile 修饰,并且编译器发现在多次读取变量之间&#…

《剑指Offer》笔记题解思路技巧优化 Java版本——新版leetcode_Part_4

《剑指Offer》笔记&题解&思路&技巧&优化_Part_4 😍😍😍 相知🙌🙌🙌 相识😢😢😢 开始刷题1. LCR 148. 验证图书取出顺序——栈的压入、弹出序列2. LCR 14…

CDP和Chrome

CDP和Chrome CDP和WebDriver Protocol WebDriver和 Chrome DevTools Protocol(CDP) 是用于自动化浏览器的两个主要协议,大多数的浏览器自动化工具都是基于上述其中之一来实现的。可以通过这两种形式来和浏览器交互,通过代码来控…

每日一题——LeetCode1460.通过翻转子数组使两个数组相等

方法一 哈希Map 用两个Map集合分别统计target和arr里出现的元素和出现的次数,在比较两个Map集合看是否出现的元素和次数都相同 var canBeEqual function(target, arr) {let map1 new Map();let map2 new Map();for (let item of target) {map1.set(item, (map1…

利用 pt-archiver 实现数据库归档功能

文章目录 一、前言关于Percona 二、Percona Toolkit安装 percona-toolkit:pt-archiver 归档命令的使用格式:示例: 三、归档步骤:1)、创建归档数据库和归档表方式一(推荐):这种方式的优缺点: 方式…

在script标签写export为什么会抛错|type module import ES5 ES6 预处理 指令序言 JavaScript JS

今天我们进入到语法部分的学习。在讲解具体的语法结构之前,这一堂课我首先要给你介绍一下 JavaScript 语法的一些基本规则。 脚本和模块 首先,JavaScript 有两种源文件,一种叫做脚本,一种叫做模块。这个区分是在 ES6 引入了模块…

【JVM篇】什么是类加载器,有哪些常见的类加载器

文章目录 🍔什么是类加载器🛸有哪些常见的类加载器 🍔什么是类加载器 负责在类加载过程中,将字节码信息以流的方式获取并加载到内存当中 🛸有哪些常见的类加载器 启动类加载器 启动类加载器是有Hotspot虚拟机通过的类…

数据结构通讲

目录 集合源码详解 一、常见数据结构讲解 1. 线性数据结构 1.1 数组 1.2 队列 1.3 链表 1.3.1 单向链表 1.3.2 双向链表 1.4 栈 2. 非线性数据结构 2.1 树 2.2 二叉树 2.2.1 概念介绍 2.2.2 遍历操作 2.2.3 删除节点 2.2.4 查找局限性 2.2.5 AVL( …

10_Java泛型

一、为什么要有泛型 1.泛型的设计背景 集合容器类在设计阶段/声明阶段不能确定这个容器到底实际存的是什么类型的对象,所以在JDK1.5之前只能把元素类型设计为Object,JDK1.5之后使用泛型来解决。因为这个时候除了元素的类型不确定,其他的部分…

收藏!如何有效实施DevOps?

当今IT行业的竞争日益激烈,各家公司都在寻找优化软件研发过程的方法,因为交付比对手更具竞争力的产品已经越发成为一件成本高昂的事情。这也是DevOps发挥作用的地方,因为它可以在工程管理的各个方面提供帮助。 瀑布开发模型已被广泛使用多年&…

信号系统之神经网络

1 目标检测 科学家和工程师经常需要知道是否存在特定的物体或条件。例如,地球物理学家在地球上探索石油,医生检查病人是否有疾病,天文学家在宇宙中寻找外星智慧,等等。这些问题通常涉及将采集的数据与阈值进行比较。如果超过阈值…

(AtCoder Beginner Contest 341)(A - D)

比赛地址 : Tasks - Toyota Programming Contest 2024#2&#xff08;AtCoder Beginner Contest 341&#xff09; A . Print 341 模拟就好了 &#xff0c; 先放一个 1 , 然后放 n 个 01 ; #include<bits/stdc.h> #define IOS ios::sync_with_stdio(0);cin.tie(0);cout…

探究二维码技术:连接现实与数字世界的桥梁

title: 探究二维码技术&#xff1a;连接现实与数字世界的桥梁 date: 2024/2/19 13:15:36 updated: 2024/2/19 13:15:36 tags: 二维码技术数据编码纠错算法图像处理商业应用安全验证实时交互 引言&#xff1a; 二维码已经成为现代社会中广泛应用的一种技术工具。它不仅在商业领…