大模型真的会让软件测试人员下岗吗?

在今年3月写过一篇文章:又一次被震惊:从生成和细化需求到应用各种方法设计测试用例 ,展示了chatGPT生成测试用例,而且可以用不同的方法生成测试用例,在我们的引导下它还能补充测试用例、完善测试用例。半年之后,chatGPT的能力强大许多,而且是多模态的,如下面例子所表现,所以我们更能借助LLM完成从生成验收标准、生成测试计划、生成测试用例、生成测试脚本到生成测试报告等全测试周期所需的交付件。

图片

(基于简单的描述生成非常规范、完整的测试用例。)

图片

基于流程图生成E2E的测试用例

自然不能用这些相对简单的例子(基于流程图生成E2E的测试用例也不简单,是真实案例)或几行字来回答标题所提出的问题:大模型真的会让软件测试人员下岗吗?即使大模型真的有潜力让软件测试人员下岗,也不是现在,而是3-5年后。为什么这么说呢?那是因为在长沙、在沈阳,一些专家和学者在讨论“大模型会成为软件工程的银弹吗?” 多数人认为很有可能,而且在未来3-5年或更长时间(10年)这一时刻会出现。

类似开发人员,人们会说:大模型会淘汰码农,但不会淘汰软件工程师。也就是说,如果你只是一个平庸的程序员,缺乏业务素质、工程能力、沟通协调能力,只会写代码、完成具体功能的代码实现,很有可能被淘汰,因为具体任务的代码很有可能由AIGC自动生成。虽然现在代码采用率不高,但可以由资深程序员来review和完善,因为有40-50%的工作被LLM干了,人员是可以优化的。如果要优化,那么上面说的“码农”被优化掉的可能性很大。

测试人员也有类似的场景,如果只是能干一些简单的测试设计、测试执行的工作,那很有可能会被淘汰。因为在普遍使用LLM情况下,大量的验收标准、测试用例、测试脚本、测试计划、测试报告被自动生成,测试团队自然也会被优化,而能力弱的、只会干简单工作的测试人员被优化掉的可能性也是很大的。

从这个角度看,其实是会用大模型的测试人员淘汰不会用大模型的测试人员。

我们如何成为会用大模型的测试人员呢?简单地说,就是拥抱大模型,躬身入局,不断实践、应用大模型,不断学习新的知识和新的工具,与时俱进,持续进取。具体说,分三步走。

第一步就是一面学习提示工程、一面在chatGPT或相应的工具上去实践。

提示工程,可以好好理解下面两张图,理解提示的结构和技巧(Few-shot Prompting)。如果可能,可以进一步了解思维链(CoT)等内容。还可以加约束,设置输出模板或Markdown格式。

图片

图片

例如,生成按文档模板要求的、规范的测试计划、测试用例。

图片

图片

图片

第2步,在这基础上,可以多了解其他同事、其他公司的一些优秀实践,或多看一些和测试领域应用大模型技术相关的论文,例如Adaptive Test Generation Using a Large Language Model,了解Transformer机制、预训练和fine-tuning等方面的知识,深度了解如何训练出一个测试大模型,提升自己的理论水平

图片

第3步,尝试部署开源大模型(如Llama 2),在此基础上,尝试用自己的测试数据精调(fine-tuning)出自己的测试大模型,应用于实际工作中。这一步,的确有挑战,从数据的准备、清洗和优化到数据构造,然后开始进行fine-tuning。在fine-tuning过程中,可以调整模型的超参数,如温度系数、学习率、窗口大小等,甚至可以学习高效微调技术(如LoRA)。然后使用验证数据集对fine-tuning后的模型进行验证,以评估模型的性能。这个过程会经过多次训练、验证,最终达到一个好的性能才算结束,最后将模型部署到研发环境中,供大家使用。

图片

经过这样一个过程,自己以后就拥有了一个强大的测试助手,自然对公司的价值更大,使自己立于不败之地。

当然,也没有这么简单,看了一篇简单的文档,自己就飞起来了,不可能。需要在工作中要脚踏实地去实践、去思考、再实践;需要走出去,多取经、多学习。

点击 “阅读原文”,获得更多的指导和学习。

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

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

相关文章

北邮22级信通院数电:Verilog-FPGA(10)第十周实验 实现移位寄存器74LS595

北邮22信通一枚~ 跟随课程进度更新北邮信通院数字系统设计的笔记、代码和文章 持续关注作者 迎接数电实验学习~ 获取更多文章,请访问专栏: 北邮22级信通院数电实验_青山如墨雨如画的博客-CSDN博客 目录 一.代码部分 二.管脚分配 三.实现过程讲解及效…

关于爬虫中的hook(defineProperty,hook cookies, hook载荷数据,hookXHR)

关于爬虫中的hook: defineProperty var people {age: 19, }; var count20; console.log(people.age) // 参数:对象 属性名字 函数 Object.defineProperty(people, age, {get: function () {console.log(获取值!);return count;},// set: …

域名服务器有哪些类型

域名服务器有哪些类型 随着现在网络的不断发展,越来越多的企业开始使用网络建站,以此来进行营销和推广,而网站在建设过程中需要使用域名和空间,那么域名服务器是什么?下面由给大家说一下。 主域名服务器 负责维护一…

SOME/IP 协议介绍(五)指南

指南(信息性) 选择传输协议 SOME/IP直接支持互联网上使用最广泛的两种传输协议:用户数据报协议(UDP)和传输控制协议(TCP)。UDP是一种非常简洁的传输协议,仅支持最重要的功能&#…

单页应用(SPA)和多页应用(MPA)的区别和优缺点?

单页应用(Single-Page Application,SPA)和多页应用(Multi-Page Application,MPA)是两种常见的Web应用程序开发模式,它们有一些区别和各自的优缺点。 单页应用(SPA)&…

在电脑PC端可以分类记笔记的软件选择哪个?

选择用电脑来记录笔记是比较便捷的,电脑屏幕比较大,操作起来比较便捷。但是很多人用电脑来记录笔记,通常会使用电脑上自带的记事本、文档记事工具来整合笔记,打开文档记事本类的软件,密密麻麻的文字呈现出来。 选择用…

Cesium点位弹窗

1.弹窗没法向加入点位一样加入到地图内部,entity没法实现 2.使用绝对定位,将地图组件通过定位加入到地图上,注意弹窗层级一定在地图上 3.通过判断点击位置是否是点位来获取entity信息,将信息显示在弹窗 4.将点击处点位的经纬度转为…

前端常用utils方法持续更新中

1.数字太长截断显示 在data上方定义一个filter 在template中{{value | ellipsis}} filters: {ellipsis(value) {if (!value) return if (value.length > 8) {return value.slice(0, 8) ...}return value}},2.根据数据值动态更改表格样式 :cell-style“changeCellStyle” …

RHCSA --- Linux存储管理

存储管理 Boot:可引导操作系统的分区(必须是主分区) 分区 ll /dev/nvme0n* 表示的是 nvme接口的磁盘 0n1 1 0n2 2 0n3 3 brw-rw----. 1 root disk 259, 0 Nov 15 19:31 /dev/nvme0n1 磁盘1 brw-rw----. 1 ro…

【Linux】Makefile

一、gcc 的缺点 gcc -o test a.c b.c我们具体分析:gcc -o test a.c b.c这条命令 它们要经过下面几个步骤: 1)对于a.c:执行:预处理 编译 汇编 的过程,a.c >xxx.s >xxx.o 文件。2)对于b.c…

算法必刷系列之位运算

位运算 位运算既能在某些条件下提升运算速度,又能在某些条件下节省运算内存。计算机底层涉及大量位运算,位运算可以替代加加减乘除。位运算的基本运算单元是bit,相比于整数的int占据四个字节,大量节约运算空间,适用于…

算法之冒泡排序

算法之冒泡排序 冒泡排序Bubble Sort 交换排序相邻元素两两比较大小,有必要则交换。元素越小或越大,就会在数列中慢慢的交换并“浮”向顶端,如同水泡咕嘟咕嘟往上冒。 核心算法 排序算法,一般都实现为就地排序,输出…

ESP32网络开发实例-物联网声污染监测系统

物联网声污染监测系统 文章目录 物联网声污染监测系统1、KY-038 声音传感器模块2、软件准备3、硬件准备4、代码实现在本文中,我们将使用 ESP32、声音模块和 Blynk 应用程序创建一个基于物联网的声音污染监测系统。 我们将使用 KY-038 麦克风传感器以分贝为单位检测声音并在 OL…

vscode c++ 报错identifier “string“ is undefined

vscode c 报identifier “string” is undefined 问题 新装了电脑, 装好vsc和g等, 发现报错 但开头并没问题 解决 shiftctrlp选择 C/C Edit:COnfigurations (JSON)自动生成打开 c_cpp_properties.json添加g路径等 "cStandard": "c11","cppStanda…

【数据结构(二)】单链表(3)

文章目录 1. 链表介绍2. 单链表应用实例2.1. 顺序添加方式2.1.1. 思路分析2.1.2. 代码实现 2.2. 按照编号顺序添加方式2.2.1. 思路分析2.2.2. 代码实现 3. 单链表节点的修改3.1. 思路分析3.2. 代码实现 4. 单链表节点的删除4.1. 思路分析4.2. 代码实现 5. 单链表常见面试题5.1.…

Universal adversarial perturbations(2017 CVPR)

Universal adversarial perturbations----《普遍对抗扰动》 通俗UAP算法步骤理解:对于 x i ∈ X {x_i} \in X xi​∈X 的每个采样数据点,比较 k ^ ( x i v ) \hat k({x_i} v) k^(xi​v) 与 k ^ ( x i ) \hat k({x_i}) k^(xi​) ,如果 k…

JAVA工具类匹配重复或者连续的字符和符号

import java.util.ArrayList; import java.util.List;public class StringChecker {static String SYMBOLS "~!#$%^&*()_{}|<>?,./";static List<String> symbolSubstrings splitStringIntoSubstrings(SYMBOLS, 3);/*** 检查字符串是否包含重复或…

Rust与其他语言对比:优势在哪里?

大家好&#xff01;我是lincyang。 今天&#xff0c;我们将深入探讨Rust语言与其他编程语言比较的优势&#xff0c;并通过具体的代码示例和性能数据来加深理解。 Rust与其他语言的比较 1. 内存安全性 Rust&#xff1a;采用所有权系统&#xff0c;编译器在编译时检查内存安全…

西南科技大学814考研二

C语言数据结构与算法 线性表 顺序表(静态分配内存) #include <stdio.h> #include <stdbool.h> //静态顺序表 #define MAX_SIZE 8 //顺序表储存的数据类型 typedef int ElemType; typedef struct {ElemType data[MAX_SIZE];int length; }SeqList; //初始化顺序表…

redis 非关系型数据库

redis 非关系型数据库&#xff0c;缓存型数据库。 关系型数据库和非关系型数据库的区别 关系型数据库是一个机构化的数据库&#xff0c;行和列。 列&#xff1a;声明对象 行&#xff1a;记录对象属性。 表与表之间是有关联&#xff0c;使用sql语句&#xff0c;来对指定的表…