ChatGPT能测试用例,那么测试人员会被取代吗?_有人说chatgpt将会替代软件测试工程师(点工)-程序员宅基地

技术标签: 自动化测试  测试用例  测试  功能测试  chatgpt  

ChatGPT4已经发布了并引起了巨大的反响,有一些基于ChatGPT的应用还是令人印象深刻的,比如

  • 画个草图,让ChatGPT根据草图去生成一个有完备功能的网页;
  • 让ChatGPT实现一个可以在网页上运行的贪吃蛇游戏;
  • 看图说话
  • 调教ChatGPT让其在几小时内写一个chrome扩展

在GPT4的论文中有一句话是这么说的:

GPT-4和类似的模型可能会从此引起失业,甚至那些需要多年经验和教育的职位也可能逐渐消失,比如法律服务。

简单理解就是GPT-4模型专治老专家,作为功能测试人员,领域经验往往是非常核心的竞争力,从业年限越久,老专家属性越明显。那么ChatGPT可以替代软件测试从业者么?

我们不妨直接试一试先,验证一下这个想法。

最简单的登录用例

ChatGPT4需要尊贵的会员才能使用,bing的聊天功能就成了比较理想的平替了,据说其背后也是gpt4模型。下面所有的内容均是使用bing生成的。

问:我有一个web系统的登录页面,其中有1个用户名的文本框,密码文本框以及登录按钮,请帮我写一些测试用例来验证登录功能?

你好,这是Bing。我可以帮你写一些测试用例来验证登录功能。根据网上的资料1234,你可以从以下几个方面来设计测试用例:

功能测试:检查用户名、密码、验证码的输入和校验,以及登录按钮的点击和跳转 性能测试:检查登录界面的加载速度,以及不同情况下的响应时间 界面测试:检查登录界面的布局、样式、字体、颜色等是否符合设计要求 安全性测试:检查是否有防止SQL注入、暴力破解、跨站脚本等攻击的措施 兼容性测试:检查在不同的浏览器、操作系统、分辨率下是否能正常显示和使用 可用性测试:检查是否支持Tab和Enter键,以及提示语是否友好 你想要我给你具体的例子吗?

问:是的,请给我一些功能测试的例子。

好的,我可以给你一些功能测试的例子。根据网上的资料²³⁴,你可以按照以下的表格来编写测试用例:
在这里插入图片描述

这些是一些基本的功能测试用例。你还想要我给你其他方面的测试用例吗?

问:是的,更多用例

你想要我给你哪个方面的测试用例?是性能测试、界面测试、安全性测试、兼容性测试还是可用性测试?

问:性能测试

好的,我可以给你一些性能测试的例子。根据网上的资料¹²,你可以按照以下的表格来编写测试用例:
在这里插入图片描述

这些是一些基本的性能测试用例。你还想要我给你其他方面的测试用例吗?

源: 与必应的对话, 2023/3/16(1) 性能测试中如何编写测试用例 - 知乎. https://zhuanlan.zhihu.com/p/373180730 访问时间 2023/3/16. (2) 登录功能常用测试用例 - 肖兔—随遇而安 - 博客园. https://www.cnblogs.com/Happy-To-Lucky/p/14183788.html 访问时间 2023/3/16. (3) 登录测试用例 - 知乎. https://zhuanlan.zhihu.com/p/375249371 访问时间 2023/3/16.

问:用什么工具做性能测试呢?

性能测试工具有很多种,你可以根据你的需求和预算来选择。根据网上的资料¹²³⁴⁵,一些主流的性能测试工具有:

这些只是一部分性能测试工具。你还想要我给你其他方面的信息吗?

问:能给一个jmeter进行登录测试的例子吗

JMeter是一款基于Java开发的性能测试工具,可以对Web应用、数据库、FTP等进行压力测试,支持多种协议和插件,易于扩展和定制。³

要使用JMeter进行登录测试,你需要先配置好HTTP请求的参数,如协议、服务器名称或IP、端口号、路径等。然后你需要添加一个HTTP请求采样器,填写登录接口的URL和请求方法(通常是POST),以及登录所需的参数(如用户名和密码)。²⁴⁵

如果登录接口需要携带Cookie或Session信息,你还需要添加一个HTTP Cookie管理器或HTTP Header管理器来保存和发送这些信息。¹⁴

最后,你可以添加一个查看结果树或聚合报告来查看登录测试的结果,如响应时间、响应数据、错误率等。²⁴⁵

下面是一个JMeter进行登录测试的例子:

Thread Group
  - Number of Threads: 10
  - Ramp-Up Period: 10
  - Loop Count: 2
HTTP Request Defaults
  - Protocol: http
  - Server Name or IP: www.example.com
  - Port Number: 80
HTTP Cookie Manager
HTTP Request (Login)
  - Path: /login
  - Method: POST
  - Parameters:
    - name: username, value: testuser
    - name: password, value: testpass
View Results Tree

这个例子表示在10秒内模拟10个用户对www.example.com/login接口进行POST请求,发送用户名和密码参数,并保存Cookie信息。循环执行两次,共计20次请求,并查看结果树。

希望这个例子能对你有所帮助。

问:登录页面的安全测试怎么做?

登录页面的安全测试是指对登录页面的安全性进行检查,防止用户的信息被泄露或者被恶意攻击。²³⁴

登录页面的安全测试主要包括以下几个方面:

  • 用户名和密码是否通过加密的方式,发送给Web服务器,避免被截取或者篡改。¹
  • 登录成功后生成的Cookie,是否是httponly (否则容易被脚本盗取)。¹
  • 登录密码在数据库中不能明文显示,要使用哈希或者加密算法进行存储。⁴
  • 登录密码要隐文显示,不支持复制粘贴,避免被他人窥视或者复制。³⁴
  • 登录用户名需要限制输入大小写,避免因为大小写不一致而导致登录失败。⁴
  • 登录失败需要限制登录次数,设置验证码或者锁定账号等措施,防止暴力破解。²³⁴
  • 登录需要添加唯一识别标志(如CSRF Token),防止跨站请求伪造攻击。²⁴

这些是一些常见的登录页面安全测试点,你还有其他问题吗?

初步看来

生成的功能测试用例还是水平在线的,特别是用例都有描述和预期结果,起码生成的都是结构完备的测试用例。从功能覆盖率上说也没啥问题,基本的要点都有,而且异常情况也有比较多的覆盖。

在性能测试方面也没啥大问题,尽管直接拿来执行不太可能,不过测试的思路是有了的。

安全测试方面很惊艳,比我自己考虑的都要全面。

难度升级

登录页面太简单,来点复杂的。

问: 我有一个测试用例管理系统,系统里有一个创建测试用例的功能。创建页面上有3个字段,用例名称,测试步骤,预期结果,这三个字段都是必填的,还有一个创建按钮,如果所有必填项都完备的话,点击后会成功创建,否则会给出错误提示。请根据我的描述尽可能多的生成测试用例

你好,我是Bing。我可以帮助你生成一些测试用例,但是你需要提供更多的信息,比如测试目标、测试范围、测试环境等。根据你的描述,我猜测你的系统是一个基于web的测试用例管理系统¹²⁴⁵,如果是这样的话,你可以参考以下的一些测试用例:

  • 用例编号:TC001
  • 所属模块:创建测试用例
  • 测试标题:验证所有必填字段都完备时,可以成功创建测试用例
  • 重要级别:高
  • 前置条件:已登录系统,并进入创建页面
  • 测试输入:用例名称为“登录功能正常”,测试步骤为“1.打开浏览器;2.输入网址;3.输入用户名和密码;4.点击登录按钮”,预期结果为“登录成功并跳转到首页”
  • 操作步骤:
    • 1.在用例名称字段输入“登录功能正常”
    • 2.在测试步骤字段输入“1.打开浏览器;2.输入网址;3.输入用户名和密码;4.点击登录按钮”
    • 3.在预期结果字段输入“登录成功并跳转到首页”
    • 4.点击创建按钮
  • 预期结果:提示“创建成功”,并显示刚刚创建的测试用例
  • 用例编号:TC002
  • 所属模块:创建测试用例
  • 测试标题:验证缺少任意一个必填字段时,无法创建测试用例,并给出错误提示
  • 重要级别:高
  • 前置条件:已登录系统,并进入创建页面
  • 测试输入:
    • a)缺少用例名称,其他字段正常填写
    • b)缺少测试步骤,其他字段正常填写
    • c)缺少预期结果,其他字段正常填写
  • 操作步骤:
    • a)在用例名称字段不输入任何内容,在其他两个字段正常填写后,点击创建按钮
    • b)在测试步骤字段不输入任何内容,在其他两个字段正常填写后,点击创建按钮
    • c)在预期结果字段不输入任何内容,在其他两个字段正常填写后,点击创建按钮
  • 预期结果:
    • a)提示“请输入用例名称”,并且不会创建新的测试用例
    • b)提示“请输入测试步骤”,并且不会创建新的测试用例
    • c)提示“请输入预期结果”,并且不会创建新的测试用例

问:请补充更多用例

好的,我可以根据你的需求,再补充一些测试用例,但是你需要明确你的测试目标是什么,比如功能测试、性能测试、安全测试等。不同的测试目标,需要考虑的因素和场景也不同。¹²³⁴⁵

假设你的测试目标是功能测试,那么你可以参考以下的一些测试用例:

  • 用例编号:TC003
  • 所属模块:创建测试用例
  • 测试标题:验证输入非法字符时,无法创建测试用例,并给出错误提示
  • 重要级别:中
  • 前置条件:已登录系统,并进入创建页面
  • 测试输入:
    • a)在用例名称字段输入特殊字符或空格,在其他两个字段正常填写后,点击创建按钮
    • b)在测试步骤字段输入特殊字符或空格,在其他两个字段正常填写后,点击创建按钮
    • c)在预期结果字段输入特殊字符或空格,在其他两个字段正常填写后,点击创建按钮
  • 操作步骤:
    • a)在用例名称字段输入“@#$%^&*”,在其他两个字段正常填写后,点击创建按钮
    • b)在测试步骤字段输入“@#$%^&*”,在其他两个字段正常填写后,点击创建按钮
    • c)在预期结果字段输入“@#$%^&*”,在其他两个字段正常填写后,点击创建按钮
  • 预期结果:
    • a)提示“请输入有效的用例名称”,并且不会创建新的测试用例
    • b)提示“请输入有效的测试步骤”,并且不会创建新的测试用例
    • c)提示“请输入有效的预期结果”,并且不会创建新的测试用例
  • 用例编号:TC004
  • 所属模块:创建测试用例
  • 测试标题:验证超过最大长度限制时,无法创建测试用例,并给出错误提示
  • 重要级别:中
  • 前置条件:已登录系统,并进入创建页面;假设每个字段都有最大长度限制为1000个字符。
  • 测试输入:
    • a)在用例名称字段输入超过1000个字符,在其他两个字段正常填写后,点击创建按钮
    • b)在测试步骤字段输入超过1000个字符,在其他两个字段正常填写后,点击创建按钮
    • c)在预期结果字段输入超过1000个字符,在其他两个字段正常填写后,点击创建按钮
  • 操作步骤:
    • a)在用例名称字段输入“登录功能正常”重复200次,在其他两个字段正常填写后,点击创建按钮
    • b)在测试步骤字段输入“1.打开浏览器;2.输入网址;3.输入用户名和密码;4.点击登录按钮”重复50次,在其他两个字

表现惊艳

  • 不仅可以理解测试用例管理系统是什么,而且还把登录用例作为测试数据放在了用例里
  • 基本上功能测试的点都能覆盖到

不过因为用例管理系统里有很多领域相关的知识,比如用例编号应该有格式等,这些是bing的搜索结果里所缺失的,所以生成的用例偏common sense, 专业程度不够。但如果基于特定的领域去做训练的话,专业程度提升也是触手可得的事情。

我的看法

如果训练的材料足够多且精准,ChatGPT完全可以替代测试人员进行用例的编写,但是目前看来生成的用例还是需要人工去执行,所以点来点去的工作短期无法取代,不过后面AI的发展可能会从生成内容变成执行操作,因此未来的某一天点点点的工作也可能被取代。不过gpt生成的用例是否合理并且有无遗漏这点还是要专业人士来评判,所以测试老专家们大可不必担心,以后的测试行为可能变成:让AI写用例,老司机修改和补充用例,最后让初级和中级测试人员甚至是AI进行用例的执行和反馈。

除了写用例之外,测试同学还可以使用ChatGPT来进行自动化代码的生成,从而可以提高一些生产效率,所以短期来看,使用ChatGPT辅助进行自动化测试的生产力提升的操作还是可以期待一下的。这可以比较好的解决一些测试同学代码能力不足的问题,不过凡是都有两面性,尽管可以用AI来辅助做自动化测试,但是AI生成的代码如果有问题需要修改的话,还是需要很强的编程能力的。所以哪怕是辅助做自动化测试,本质上还是利好老司机。

中期看来AI将会成为强大的测试提效工具,比如生成一些测试文档,用例等。

从足够远的远期来看,最终大部分基于有限经验的进行测试的测试人员可能会被AI取代,剩下一些老司机进行更具创造性的测试工作。测试人员的规模可能会减少,但测试这个角色应该还会存在。

你的既有经验将被机器学习和传承,你的创造力才是立身之本。不论在任何时候,企业需要降本增效,员工需要增强自身核心竞争力,行业才能得到良性的发展。

如果你不希望一个人孤立无援的成长,可以从下方入口加入我们,有很多视频教程可以一起交流学习

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/qq_41248484/article/details/129628476

智能推荐

linux里面ping www.baidu.com ping不通的问题_linux桥接ping不通baidu-程序员宅基地

文章浏览阅读3.2w次,点赞16次,收藏90次。对于这个问题我也是从网上找了很久,终于解决了这个问题。首先遇到这个问题,应该确认虚拟机能不能正常的上网,就需要ping 网关,如果能ping通说明能正常上网,不过首先要用命令route -n来查看自己的网关,如下图:第一行就是默认网关。现在用命令ping 192.168.1.1来看一下结果:然后可以看一下电脑上面百度的ip是多少可以在linux里面ping 这个IP,结果如下:..._linux桥接ping不通baidu

android 横幅弹出权限,有关 android studio notification 横幅弹出的功能没有反应-程序员宅基地

文章浏览阅读512次。小妹在这里已经卡了2-3天了,研究了很多人的文章,除了低版本api 17有成功外,其他的不是channel null 就是没反应 (channel null已解决)拜托各位大大,帮小妹一下,以下是我的程式跟 gradle, 我在这里卡好久又没有人可问(哭)![image](/img/bVcL0Qo)public class MainActivity extends AppCompatActivit..._android 权限申请弹窗 横屏

CNN中padding参数分类_cnn “相同填充”(same padding)-程序员宅基地

文章浏览阅读1.4k次,点赞4次,收藏6次。valid padding(有效填充):完全不使用填充。half/same padding(半填充/相同填充):保证输入和输出的feature map尺寸相同。full padding(全填充):在卷积操作过程中,每个像素在每个方向上被访问的次数相同。arbitrary padding(任意填充):人为设定填充。..._cnn “相同填充”(same padding)

Maven的基础知识,java技术栈-程序员宅基地

文章浏览阅读790次,点赞29次,收藏28次。手绘了下图所示的kafka知识大纲流程图(xmind文件不能上传,导出图片展现),但都可提供源文件给每位爱学习的朋友一个人可以走的很快,但一群人才能走的更远。不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎扫码加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长![外链图片转存中…(img-Qpoc4gOu-1712656009273)][外链图片转存中…(img-bSWbNeGN-1712656009274)]

getFullYear()和getYear()有什么区别_getyear和getfullyear-程序员宅基地

文章浏览阅读469次。Date对象取得年份有getYear和getFullYear两种方法经 测试var d=new Date;alert(d.getYear())在IE中返回 2009,在Firefox中会返回109。经查询手册,getYear在Firefox下返回的是距1900年1月1日的年份,这是一个过时而不被推荐的方法。而alert(d.getFullYear())在IE和FF中都会返回2009。因此,无论何时都应使用getFullYear来替代getYear方法。例如:2016年用 getFullYea_getyear和getfullyear

Unix传奇 (上篇)_unix传奇pdf-程序员宅基地

文章浏览阅读182次。Unix传奇(上篇) 陈皓 了解过去,我们才能知其然,更知所以然。总结过去,我们才会知道我们明天该如何去规划,该如何去走。在时间的滚轮中,许许多的东西就像流星一样一闪而逝,而有些东西却能经受着时间的考验散发着经久的魅力,让人津津乐道,流传至今。要知道明天怎么去选择,怎么去做,不是盲目地跟从今天各种各样琳琅满目前沿技术,而应该是去 —— 认认真真地了解和回顾历史。 Unix是目前还在存活的操作系_unix传奇pdf

随便推点

ACwing 哈希算法入门:_ac算法 哈希-程序员宅基地

文章浏览阅读308次。哈希算法:将字符串映射为数字形式,十分巧妙,一般运用为进制数,进制据前人经验,一般为131,1331时重复率很低,由于字符串的数字和会很大,所以一般为了方便,一般定义为unsigned long long,爆掉时,即为对 2^64 取模,可以对于任意子序列的值进行映射为数字进而进行判断入门题目链接:AC代码:#include<bits/stdc++.h>using na..._ac算法 哈希

VS配置Qt和MySQL_在vs中 如何装qt5sqlmysql模块-程序员宅基地

文章浏览阅读952次,点赞13次,收藏27次。由于觉得Qt的编辑界面比较丑,所以想用vs2022的编辑器写Qt加MySQL的项目。_在vs中 如何装qt5sqlmysql模块

【渝粤题库】广东开放大学 互联网营销 形成性考核_画中画广告之所以能有较高的点击率,主要由于它具有以下特点-程序员宅基地

文章浏览阅读1k次。选择题题目:下面的哪个调研内容属于经济环境调研?()题目:()的目的就是加强与客户的沟通,它是是网络媒体也是网络营销的最重要特性。题目:4Ps策略中4P是指产品、价格、顾客和促销。题目:网络市场调研是目前最为先进的市场调研手段,没有任何的缺点或不足之处。题目:市场定位的基本参数有题目:市场需求调研可以掌握()等信息。题目:在开展企业网站建设时应做好以下哪几个工作。()题目:对企业网站首页的优化中,一定要注意下面哪几个方面的优化。()题目:()的主要作用是增进顾客关系,提供顾客服务,提升企业_画中画广告之所以能有较高的点击率,主要由于它具有以下特点

爬虫学习(1):urlopen库使用_urlopen the read operation timed out-程序员宅基地

文章浏览阅读1k次,点赞2次,收藏5次。以爬取CSDN为例子:第一步:导入请求库第二步:打开请求网址第三步:打印源码import urllib.requestresponse=urllib.request.urlopen("https://www.csdn.net/?spm=1011.2124.3001.5359")print(response.read().decode('utf-8'))结果大概就是这个样子:好的,继续,看看打印的是什么类型的:import urllib.requestresponse=urllib.r_urlopen the read operation timed out

分享读取各大主流邮箱通讯录(联系人)、MSN好友列表的的功能【升级版(3.0)】-程序员宅基地

文章浏览阅读304次。修正sina.com/sina.cn邮箱获取不到联系人,并精简修改了其他邮箱代码,以下就是升级版版本的介绍:完整版本,整合了包括读取邮箱通讯录、MSN好友列表的的功能,目前读取邮箱通讯录支持如下邮箱:gmail(Y)、hotmail(Y)、 live(Y)、tom(Y)、yahoo(Y)(有点慢)、 sina(Y)、163(Y)、126(Y)、yeah(Y)、sohu(Y) 读取后可以发送邮件(完..._通讯录 应用读取 邮件 的相关

云计算及虚拟化教程_云计算与虚拟化技术 教改-程序员宅基地

文章浏览阅读213次。云计算及虚拟化教程学习云计算、虚拟化和计算机网络的基本概念。此视频教程共2.0小时,中英双语字幕,画质清晰无水印,源码附件全课程英文名:Cloud Computing and Virtualization An Introduction百度网盘地址:https://pan.baidu.com/s/1lrak60XOGEqMOI6lXYf6TQ?pwd=ns0j课程介绍:https://www.aihorizon.cn/72云计算:概念、定义、云类型和服务部署模型。虚拟化的概念使用 Type-2 Hyperv_云计算与虚拟化技术 教改

推荐文章

热门文章

相关标签