ChatGPT和百度文心一言写用例,谁更强?

news/2024/7/24 14:40:40/

文心一言发布的第一时间,就排队申请了邀请码,昨晚看了下,邀请码已经到手,索性就拿一个例子试了一下,看看哪个能够真正意义上的提高生产力,最简单的录制了个GIF动画如下:

问题:
你是一个软件测试工程师,得到一个需求:软件程序Helios会自动采集容器内的socket调用记录、ptrace调用记录、userfaultfd调用记录、connect调用记录、core_pattern调用记录。请根据软件测试方法,为上述需求写出测试点,验证Helios程序采集容器内功能的完整性,并写出测试用例,包括正常和异常场景,分别为每个用例输出python测试程序。

ChatGPT的回答:aa8859c8dd65337bd2e4601f46ad00c2.gif

百度文心一言的回答:
a11b97aaa7698427259600d8c0138a05.gif

以下是ChatGPT回复的内容:

建立测试计划:

  1. 验证Helios程序是否能够完整地采集容器内的socket调用记录

  2. 验证Helios程序是否能够完整地采集容器内的ptrace调用记录

  3. 验证Helios程序是否能够完整地采集容器内的userfaultfd调用记录

  4. 验证Helios程序是否能够完整地采集容器内的connect调用记录

  5. 验证Helios程序是否能够完整地采集容器内的core_pattern调用记录

  6. 验证Helios程序是否在容器内部运行稳定,不会发生系统崩溃等异常情况

设计测试用例 使用以下步骤检查每个测试点是否满足需求:

测试点1:验证Helios程序是否能够完整地采集容器内的socket调用记录

测试用例:

正常场景:步骤1:在容器内执行socket调用 步骤2:检查是否能够在采集结果中找到socket调用记录 预期结果:采集结果中包括所有的socket调用记录

异常场景:步骤1:在容器内关闭socket 步骤2:检查是否能够在采集结果中找到socket调用记录 预期结果:不应该有任何socket调用记录

测试点2:验证Helios程序是否能够完整地采集容器内的ptrace调用记录

测试用例:

正常场景:步骤1:在容器内执行ptrace系统调用 步骤2:检查是否能够在采集结果中找到ptrace调用记录 预期结果:采集结果中包括所有的ptrace调用记录

异常场景:步骤1:在容器内关闭ptrace 步骤2:检查是否能够在采集结果中找到ptrace调用记录 预期结果:不应该有任何ptrace调用记录

测试点3:验证Helios程序是否能够完整地采集容器内的userfaultfd调用记录

测试用例:

正常场景:步骤1:在容器内执行userfaultfd系统调用 步骤2:检查是否能够在采集结果中找到userfaultfd调用记录 预期结果:采集结果中包括所有的userfaultfd调用记录

异常场景:步骤1:在容器内关闭userfaultfd 步骤2:检查是否能够在采集结果中找到userfaultfd调用记录 预期结果:不应该有任何userfaultfd调用记录

测试点4:验证Helios程序是否能够完整地采集容器内的connect调用记录

测试用例:

正常场景:步骤1:在容器内执行connect系统调用 步骤2:检查是否能够在采集结果中找到connect调用记录 预期结果:采集结果中包括所有的connect调用记录

异常场景:步骤1:在容器内关闭connect 步骤2:检查是否能够在采集结果中找到connect调用记录 预期结果:不应该有任何connect调用记录

测试点5:验证Helios程序是否能够完整地采集容器内的core_pattern调用记录

测试用例:

正常场景:步骤1:在容器内执行core_pattern系统调用 步骤2:检查是否能够在采集结果中找到core_pattern调用记录 预期结果:采集结果中包括所有的core_pattern调用记录

异常场景:步骤1:在容器内关闭core_pattern 步骤2:检查是否能够在采集结果中找到core_pattern调用记录 预期结果:不应该有任何core_pattern调用记录

测试点6:验证Helios程序是否在容器内部运行稳定,不会发生系统崩溃等异常情况

测试用例:

正常场景:步骤1:在容器内执行正常操作 步骤2:检查容器是否运行稳定 预期结果:容器应该在正常操作下保持稳定且运行正常

异常场景:步骤1:在容器内执行一个异常操作 步骤2:检查容器是否发生崩溃等异常情况 预期结果:容器不应该发生崩溃等异常情况

以上测试点和测试用例都已经定义好了,只需要根据需求和预期结果使用Python写出测试代码即可。

追问ChatGPT:请给出你所提到的Python测试代码。

以下是一个测试用例的代码样例,可以根据需求和预期结果进行相应的修改。其他测试用例的代码类似,可以使用类似的代码格式:

导入需要使用的模块

import subprocess

定义测试用例

def test_socket():# 在容器内执行socket调用subprocess.call(["docker", "exec", "container_name", "python", "-c", "import socket; s = socket.socket(); s.bind(('localhost', 1234)); s.listen(5);"])# 读取Helios程序采集的结果with open("helios_result.txt", "r") as file:helios_result = file.read()# 检查是否采集到了socket调用记录assert "socket.bind((\'localhost\', 1234))" in helios_resultassert "socket.listen(5)" in helios_result# 关闭socket连接subprocess.call(["docker", "exec", "container_name", "python", "-c", "s = socket.socket(); s.connect(('localhost', 1234)); s.close()"])# 读取Helios程序采集的结果with open("helios_result.txt", "r") as file:helios_result = file.read()# 检查是否没有采集到socket调用记录assert "socket.connect((\'localhost\', 1234))" not in helios_result

运行测试用例

test_socket()

在这个测试用例中,我们使用了Python的subprocess模块去控制Docker容器的内部执行,并读取Helios程序采集的结果,然后通过断言语句检查每个测试预期结果是否满足预期。需要注意的是,这个测试用例是以单个测试点为例的,其他测试用例的代码类似。

以下是百度文心一言的回复:

  1. 测试点:采集容器内的socket调用记录、ptrace调用记录、userfaultfd调用记录、connect调用记录、core_pattern调用记录。

  2. 正常场景:输出Helios程序采集到的数据,包括socket调用记录、ptrace调用记录、userfault fd调用记录、connect调用记录和core_pattern调用记录。

  3. 异常场景:当发现Helios程序没有输出相应的数据时,需要进行确认测试验证其完整性。

  4. 测试用例:

class TestHelio:  def test_collect(self):  # input = ["localhost:12345", "somehost2:23456", ...]  input = ["stdio-recv0*16+0*8[0x7ff00000,0x3f3fffff]\x00|i64 00=0x7ffffbe60d802'r;R>e$7fh!?o7i@2g~qz%^{y#w}vZYuDxqy&dV<u4BkcJQXp/Ia" \  
=\  
,82WNmrOtIjU1nSG67PvFg3kslIZCeAzubBu8IWdHKoRgcsLwRS5Il+ @9rprt) (11hkbsic9iqnt/ j28anE> pPy$ \l; xIdoSM - g' G? )bCu= +OTep / mWe + s1T /fA3< 6 !~ M- ]Q!  B "  expected = [  '127.0.0.1socklenght=32 addrtype=SocketAddr sockaddrLen=24 family=AFamily id=5 pid=52 time stamp=0x52f4e54a16c40 readahead cnt=0 writeback cnt=0 cpu占用率%dpcs freq msec num rx bytes tx bytes mi register select | 100000000 00000000000000 00000000 0007f000000 00442d304a5ff000 000000000000000166c91000 00000200064e9400020e6cbc5ab38f678f73ba922c38cbd7e92e588ad5b6ed414e4a3a208baac1dccdfe2ecd96ed34d562aa09a8cca3a55af4f45e768aea65ca37bb46db16ef2bf22e9bea39bcf375b347c001f579cd27ce15d18a80b8dc43ee63d923da73abc7d58`  ]  assert type(input) is list and len(input) > 0, str(input)  for i in range(len(input)):  res = util.getallsocketcallrecord(  int(input[i][31:25]),  int(input[i][26:28]),  int(input[i][29:30]),  int(input[i][23:22]),  int(input[i][21:20]),  int(input[i][19:18]),  int(input[i][17:16]),  int(input[i][15:14]),  int(input[i][13:12]),  int(input[i][11:10]),  int(input[i][9:8]),  int(input[i][7:6]),  int(input[i][5:4]),  int(input[i][3:2]),  int(input[i][1:0])  )  print(res)  def test_collect_failure(self):  # in

回复速度:ChatGPT明显快很多;

回复精准度上:ChatGPT明显是真正的理解了输入这段文字的意思,并且逐一做出了回复,而且回复的内容精准度较高,可以作为一个提效工具去使用,相比文心一言,做的回复就很粗糙,所以说只能是个小玩具,也可能是引导回答的方式不对。

虽然还有一定差距,但是百度已经很努力了,被强者牵引之后,相信百度能够很快赶上,精神可嘉,毕竟是第一个迎面而上的男人,希望文心一言一样也变强,变成一个强有力的提效工具。

回到软件测试人员甚至程序员会不会被替代这个问题上,很难说,如果不学习,还不到被AI提到就早已经被别人替代了,所以还是要坚持学习的;至少,当前还不会,因为将人工智能应用到不用人为干预就完成用例输出还需要一定的适应和转换成本,所以说学会如何借助人工智能把用例写的更好,这才是核心;

另外一点是可以借助ChatGPT更快速高效的写代码,当然前提是使用者懂代码,如果不懂代码,也不一定能够很好的利用起来,毕竟你也不知道AI给你的代码正确性如何,再或者你想修改代码,还是得知道代码怎么修改,整体而言,对懂代码的人、对懂测试用例的人,无论是ChatGPT还是文言一心,无疑都是好帮手,毕竟,强者恒强,借助人工智能去创新创造才是根本。


http://www.ppmy.cn/news/33743.html

相关文章

SaaS医学检验云LIS系统全套源代码,有演示,文档齐全

云LIS系统源码&#xff0c;实验室LIS系统源码。有演示&#xff0c;文档齐全 系统概述&#xff1a; 一套云LIS系统&#xff0c;SaaS服务&#xff0c;功能齐全&#xff0c;集齐前处理、检验、报告、质控、统计分析、两癌等模块&#xff0c;能够充分满足医院实验室、医院集团、独…

【前端学习记录】webpack学习之mini-css-extract-plugin插件

前言 最近在学习尚硅谷的webpack5课程&#xff0c;看到mini-css-extract-plugin这个插件的时候&#xff0c;感觉很有帮助&#xff0c;之前都没有在css这方面深入思考过&#xff0c;课程中的一些记录写在下面 为什么需要优化CSS Css 文件目前被打包到 js 文件中&#xff0c;当…

《扬帆优配》新增21亿订单,海风龙头获多路资金抢筹!

今天仅三个职业获主力资金净流入。 证券时报数据宝计算&#xff0c;今天沪深两市主力资金净流出295.18亿元&#xff0c;其间创业板净流出76.61亿元&#xff0c;沪深300成份股净流出92.15亿元。 申万一级职业中&#xff0c;今天传媒、电子、有色金属等6个职业上涨。25个跌落职业…

手撕数据结构—栈

Tips不得不再次提一下这个语法问题&#xff0c;当数组创建的时候&#xff0c;进行初始化的时候&#xff0c;分为全部初始化或者说部分初始化&#xff0c;对于不完全初始化而言&#xff0c;剩下的部分就全部默认为零。现在比如说你想对整型数组的1万个元素把它全部变成-1&#x…

用Pytorch构建一个喵咪识别模型

本文参加新星计划人工智能(Pytorch)赛道&#xff1a;https://bbs.csdn.net/topics/613989052 目录 一、前言 二、问题阐述及理论流程 2.1问题阐述 2.2猫咪图片识别原理 三、用PyTorch 实现 3.1PyTorch介绍 3.2PyTorch 构建模型的五要素 3.3PyTorch 实现的步骤 3.3.…

Mybatis(一):环境搭建

Mybatis&#xff08;一&#xff09;&#xff1a;环境搭建前言一、MyBatis简介1、MyBatis历史2、MyBatis特性3、MyBatis下载4、和其它持久化层技术对比二、搭建MyBatis1、开发环境2、创建maven工程2.1 打包方式&#xff1a;jar2.2 引入依赖3、创建MyBatis的核心配置文件4、创建m…

hash值——软件中的唯一标识符

在软件中&#xff0c;“ hash”这个词有多种含义&#xff0c;但是我们在这里讨论的是维基百科所谓的 “cryptographic hash function”.。 hash是什么 简而言之&#xff0c;hash是字母和数字的字符串&#xff0c;意味着通过一个较小的、唯一的代码来识别一组信息。您可能在其…

RapidAI/paddleocr_convert:PaddleOCR中模型快速转换为ONNX格式

目录RapidAI/paddleocr_convert使用步骤更新日志RapidAI/paddleocr_convert 本仓库主要是针对性地将PaddleOCR中推理模型转换为ONNX格式。注意&#xff1a; 输入&#xff1a;推理模型的url或者本地tar路径输出&#xff1a;转换后的ONNX模型如果是识别模型&#xff0c;需要提供对…

图形视图框架 事件处理(item)

在图形界面框架中的事件都是先由视图进行接收&#xff0c;然后传递给场景&#xff0c;再由场景传递给图形项。通过键盘处理的话&#xff0c;需要设置焦点&#xff0c;在QGraphicsScene中使用setFoucesItem&#xff08;&#xff09;函数可以设置焦点&#xff0c;或者图形项使用s…

技术分享 | PBM备份恢复

作者&#xff1a;张洪 爱可生南区 DBA 团队成员&#xff0c;主要负责mysql故障处理及相关技术支持。爱好旅游&#xff0c;摄影。 本文来源&#xff1a;原创投稿 *爱可生开源社区出品&#xff0c;原创内容未经授权不得随意使用&#xff0c;转载请联系小编并注明来源。 概述 Per…

下载并导入MySQL示例数据库employees

MySQL示例数据库employees一、下载employees数据库二、MySQL官方参考手册三、具体步骤3.1 下载test_db3.2 在test_db-master中打开cmd(进入test_db-master目录)3.3 run-install3.4 验证employee数据3.5 show databases\tables & select * from departments**3.6 select * f…

前端git必备技能,如何合并分支以及出现合并冲突后如何解决

文章目录一、合并分支二、可能出现的冲突和解决三、过程分享一、合并分支 注意&#xff0c;我们常说的master或main主干也可以理解为分支&#xff0c;可以是分支合并到主干&#xff0c;或分支合并到分支。 需求&#xff1a;cloudweb的2.6.0和2.6.1是并行开发的&#xff0c;现…

linux中写定时任务

场景&#xff1a;我们生产环境中有大量的日志记录&#xff0c;但是我们的磁盘没有太大&#xff0c;需要定时清理磁盘 文章目录crond 定时任务详解安装定时任务crontab服务启动与关闭crontab操作crontab 命令test.sh查看日志丢弃linux中的执行日志Linux进入nano模式方式一方式二…

【8】核心易中期刊推荐——人工智能与机器人

🚀🚀🚀NEW!!!核心易中期刊推荐栏目来啦 ~ 📚🍀 核心期刊在国内的应用范围非常广,核心期刊发表论文是国内很多作者晋升的硬性要求,并且在国内属于顶尖论文发表,具有很高的学术价值。在中文核心目录体系中,权威代表有CSSCI、CSCD和北大核心。其中,中文期刊的数…

【代码随想录-刷题学习JavaScript】day2-part02数组

继续数组的部分 977.有序数组的平方 &#xff0c;209.长度最小的子数组 &#xff0c;59.螺旋矩阵II 今天会有个小结 一、LeetCode977.有序数组的平方 文章讲解 视频讲解 二、LeetCode 209.长度最小的子数组 题目建议&#xff1a; 本题关键在于理解滑动窗口&#xff0c;这个滑动…

太强了,英伟达面对ChatGPT还有这一招...

大家好&#xff0c;我是 Jack。 今年可谓是 AI 元年&#xff0c;ChatGPT、AIGC、VITS 都火了一波。 我也先后发布了这几期视频&#xff1a; 这是一个大模型的时代&#xff0c;AI 能在文本、图像、音频等领域大放异彩&#xff0c;得益于大模型。而想要预训练大模型&#xff0c…

int *p = a、p = a、*p = a

int *p &a; //初始化一个int *类型指针&#xff0c;同时将变量a的地址存入p指针这里是一个特殊用法&#xff0c;仅在初始化变量的时候可以使用&#xff0c;应分为两个部分去进行理解。int *p; //初始化一个int * 类型指针pp &a; //将变量a的地址存入p指针&#xff0c…

基于深度学习的动物识别系统(YOLOv5清新界面版,Python代码)

摘要&#xff1a;动物识别系统用于识别和统计常见动物数量&#xff0c;通过深度学习技术检测日常几种动物图像识别&#xff0c;支持图片、视频和摄像头画面等形式。在介绍算法原理的同时&#xff0c;给出Python的实现代码、训练数据集以及PyQt的UI界面。动物识别系统主要用于常…

哈夫曼编码、哈夫曼树

已知一个文件中出现的各字符及其对应的率如下表所示。若采用定长编码&#xff0c;则该文件中字符的码长应为( )。若采用Huffman编码&#xff0c;则字符序列face的编码应为&#xff08; ) 字符abcdef频率4513121695码长决定了可以显示几位字符&#xff0c;题中一共有6位&#x…

【Linux】环境变量(基本概念 常见环境变量 测试PATH 环境变量相关命令)

文章目录环境变量基本概念常见环境变量测试PATH别的环境变量通过系统调用获取或设置环境变量环境变量相关命令export: 设置一个新的环境变量set: 显示本地定义的shell变量和环境变量unset: 清除环境变量通过代码如何获取环境变量环境变量 基本概念 环境变量(environment vari…