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

智能推荐

解决win10/win8/8.1 64位操作系统MT65xx preloader线刷驱动无法安装_mt65驱动-程序员宅基地

文章浏览阅读1.3w次。转载自 http://www.miui.com/thread-2003672-1-1.html 当手机在刷错包或者误修改删除系统文件后会出现无法开机或者是移动定制(联通合约机)版想刷标准版,这时就会用到线刷,首先就是安装线刷驱动。 在XP和win7上线刷是比较方便的,用那个驱动自动安装版,直接就可以安装好,完成线刷。不过现在也有好多机友换成了win8/8.1系统,再使用这个_mt65驱动

SonarQube简介及客户端集成_sonar的客户端区别-程序员宅基地

文章浏览阅读1k次。SonarQube是一个代码质量管理平台,可以扫描监测代码并给出质量评价及修改建议,通过插件机制支持25+中开发语言,可以很容易与gradle\maven\jenkins等工具进行集成,是非常流行的代码质量管控平台。通CheckStyle、findbugs等工具定位不同,SonarQube定位于平台,有完善的管理机制及强大的管理页面,并通过插件支持checkstyle及findbugs等既有的流..._sonar的客户端区别

元学习系列(六):神经图灵机详细分析_神经图灵机方法改进-程序员宅基地

文章浏览阅读3.4k次,点赞2次,收藏27次。神经图灵机是LSTM、GRU的改进版本,本质上依然包含一个外部记忆结构、可对记忆进行读写操作,主要针对读写操作进行了改进,或者说提出了一种新的读写操作思路。神经图灵机之所以叫这个名字是因为它通过深度学习模型模拟了图灵机,但是我觉得如果先去介绍图灵机的概念,就会搞得很混乱,所以这里主要从神经图灵机改进了LSTM的哪些方面入手进行讲解,同时,由于模型的结构比较复杂,为了让思路更清晰,这次也会分开几..._神经图灵机方法改进

【机器学习】机器学习模型迭代方法(Python)-程序员宅基地

文章浏览阅读2.8k次。一、模型迭代方法机器学习模型在实际应用的场景,通常要根据新增的数据下进行模型的迭代,常见的模型迭代方法有以下几种:1、全量数据重新训练一个模型,直接合并历史训练数据与新增的数据,模型直接离线学习全量数据,学习得到一个全新的模型。优缺点:这也是实际最为常见的模型迭代方式,通常模型效果也是最好的,但这样模型迭代比较耗时,资源耗费比较多,实时性较差,特别是在大数据场景更为困难;2、模型融合的方法,将旧模..._模型迭代

base64图片打成Zip包上传,以及服务端解压的简单实现_base64可以装换zip吗-程序员宅基地

文章浏览阅读2.3k次。1、前言上传图片一般采用异步上传的方式,但是异步上传带来不好的地方,就如果图片有改变或者删除,图片服务器端就会造成浪费。所以有时候就会和参数同步提交。笔者喜欢base64图片一起上传,但是图片过多时就会出现数据丢失等异常。因为tomcat的post请求默认是2M的长度限制。2、解决办法有两种:① 修改tomcat的servel.xml的配置文件,设置 maxPostSize=..._base64可以装换zip吗

Opencv自然场景文本识别系统(源码&教程)_opencv自然场景实时识别文字-程序员宅基地

文章浏览阅读1k次,点赞17次,收藏22次。Opencv自然场景文本识别系统(源码&教程)_opencv自然场景实时识别文字

随便推点

ESXi 快速复制虚拟机脚本_exsi6.7快速克隆centos-程序员宅基地

文章浏览阅读1.3k次。拷贝虚拟机文件时间比较长,因为虚拟机 flat 文件很大,所以要等。脚本完成后,以复制虚拟机文件夹。将以下脚本内容写入文件。_exsi6.7快速克隆centos

好友推荐—基于关系的java和spark代码实现_本关任务:使用 spark core 知识完成 " 好友推荐 " 的程序。-程序员宅基地

文章浏览阅读2k次。本文主要实现基于二度好友的推荐。数学公式参考于:http://blog.csdn.net/qq_14950717/article/details/52197565测试数据为自己随手画的关系图把图片整理成文本信息如下:a b c d e f yb c a f gc a b dd c a e h q re f h d af e a b gg h f bh e g i di j m n ..._本关任务:使用 spark core 知识完成 " 好友推荐 " 的程序。

南京大学-高级程序设计复习总结_南京大学高级程序设计-程序员宅基地

文章浏览阅读367次。南京大学高级程序设计期末复习总结,c++面向对象编程_南京大学高级程序设计

4.朴素贝叶斯分类器实现-matlab_朴素贝叶斯 matlab训练和测试输出-程序员宅基地

文章浏览阅读3.1k次,点赞2次,收藏12次。实现朴素贝叶斯分类器,并且根据李航《统计机器学习》第四章提供的数据训练与测试,结果与书中一致分别实现了朴素贝叶斯以及带有laplace平滑的朴素贝叶斯%书中例题实现朴素贝叶斯%特征1的取值集合A1=[1;2;3];%特征2的取值集合A2=[4;5;6];%S M LAValues={A1;A2};%Y的取值集合YValue=[-1;1];%数据集和T=[ 1,4,-1;..._朴素贝叶斯 matlab训练和测试输出

Markdown 文本换行_markdowntext 换行-程序员宅基地

文章浏览阅读1.6k次。Markdown 文本换行_markdowntext 换行

错误:0xC0000022 在运行 Microsoft Windows 非核心版本的计算机上,运行”slui.exe 0x2a 0xC0000022″以显示错误文本_错误: 0xc0000022 在运行 microsoft windows 非核心版本的计算机上,运行-程序员宅基地

文章浏览阅读6.7w次,点赞2次,收藏37次。win10 2016长期服务版激活错误解决方法:打开“注册表编辑器”;(Windows + R然后输入Regedit)修改SkipRearm的值为1:(在HKEY_LOCAL_MACHINE–》SOFTWARE–》Microsoft–》Windows NT–》CurrentVersion–》SoftwareProtectionPlatform里面,将SkipRearm的值修改为1)重..._错误: 0xc0000022 在运行 microsoft windows 非核心版本的计算机上,运行“slui.ex