将Parasoft和ChatGPT相结合会如何?

ChatGPT是2023年最热门的话题之一,是OpenAI训练的语言模型。它能够理解和生成自然语言文本,并接受过大量数据的训练,包括用各种编程语言编写的许多开源项目的源代码。

软件开发人员可以利用大量的知识库来协助他们的工作,因为它具有对源代码的语义理解的能力。开发人员可以使用 ChatGPT 根据正确的提示生成有用的代码。

编写代码是 ChatGPT 在软件开发中的一种应用,当然它在很多其他领域有应用。本文的重点是 ChatGPT 生成用于专业软件开发环境的代码。

市面上已经有可用的编码插件,例如 Github Copilot,它使用与 ChatGPT 相同的技术来帮助软件开发人员。这些插件可以分析开发人员正在编写的代码并生成供考虑的建议。

通过访问广泛的代码库,ChatGPT 可以编写准确的代码并提供有用的代码建议,从而使开发过程更快、更高效。

图片

ChatGPT 和代码生成

ChatGPT 和人工智能代码生成的前景是光明的,但也存在一些缺陷。让我们来看看优点和缺点。

ChatGPT 编写代码的优点

尽管使用ChatGPT生成代码还处于早期使用阶段,但专业的程序员已经意识到利用 ChatGPT 生成代码的优势。

  • 支持多种编程语言。 尽管 ChatGPT 很难准确回答它接受了多少种语言的训练,但当今使用的最流行的编程语言,它基本都支持。

  • 通过生成代码提高生产力,并提供更多功能,例如单元测试、自动化脚本、架构规划和功能实现的建议。

  • 与传统人工智能和机器学习 (ML) 工具相比,对源代码有更深入的语义理解。 ChatGPT 已经表明,通过正确的提示,它可以理解代码的功能和行为。它通过分析检查代码的逻辑可以识别潜在的边缘情况、边界条件和在表面上可能不明显的依赖关系。传统的人工智能工具仅限于较小的训练集和有限的输出。

  • 帮助不熟悉编程语言或目标环境的开发人员。ChatGPT 可以帮助刚接触项目的开发人员快速了解所使用的环境和语言。尽管存在一些不是很完美的地方,但这是一个学习代码的好机会。

ChatGPT 编写代码的缺点

使用 ChatGPT 编写代码有一些缺点,因为这个技术是新技术,并且生成的代码的来源尚不清楚。以下是在软件开发中使用 ChatGPT 的一些缺点。

  • 使用专有代码和提示信息时发生 IP 泄露。 用作 ChatGPT 提示的代码将成为训练集的一部分,并且可能可供其他用户使用。三星员工最近在向 ChatGPT 泄露专有代码时发现了这些风险。Copilot 等商业解决方案允许用户关闭使用其专有代码进行培训的选项。

  • 生成代码的出处。 ChatGPT 的训练数据是否包括专有代码或未经许可的开源代码?生成的代码是否需要归属或许可?目前还不清楚 ChatGPT 生成的代码来自哪里,因为它是基于从互联网上获取的内容。尽管训练数据主要是开源代码,但仍然需要了解许可要求。

  • 对编码提示的回答缺乏一致性。 根据设计,每次使用相同的提示时,每个答案都可能而且很可能会有所不同。

  • 质量和安全性令人担忧。因为训练中使用的开源数据中的错误和编写不当的代码可能会泄漏到 ChatGPT 的输出中,或者生成式 AI 模型可能会犯错误。ChatGPT 不会审查其答案的安全性或性能,它生成的代码甚至可能无法编译。

  • 开发人员可以接受其中存在不明显问题的代码。由于代码返回时格式整齐并有文档记录,因此很容易认为这是可以接受的。对生成的代码应用良好的代码质量流程(例如代码审查、静态分析和单元测试)以确保其按预期工作比以往任何时候都更加重要。

  • ChatGPT 的好坏取决于它的训练数据。当行业中的标准开发实践发生变化时(例如库 API),某些 ChatGPT 响应可能会包含过时的信息。

图片

利用 Parasoft 的技术克服 ChatGPT 的代码编写限制

Parasoft 目前正在积极研究协同效应,通过将 ChatGPT 等生成式 AI 模型的先进功能与 Parasoft 解决方案当前提供的深度软件测试自动化功能相结合,可以使客户受益。该研究主要集中在两个领域:

  1. 如何在自动化软件测试平台中利用 ChatGPT

  2. 如何使用该平台验证 ChatGPT 生成的代码

在 Parasoft 的自动化软件测试平台中利用 ChatGPT

ChatGPT 和 Parasoft 现有的软件测试自动化功能之间存在巨大的协同潜力。我们可以利用对基于 GPT 的模型中包含的代码的深入语义理解来增强 Parasoft 平台中已包含的测试产品,包括测试生成、静态分析和报告功能。具体来说,我们重点改进以下方面:

  • 生成针对静态分析违规的代码修复。Parasoft 已经拥有大量有关编码标准和静态分析违规的信息。我们应该能够使用该信息提示 ChatGPT 自动生成针对发现的代码违规的修复程序。

  • 生成智能的、语义感知的单元测试。 Parasoft 当前的单元测试生成功能经过优化,可覆盖尽可能多的代码路径,而无需创建冗余测试。我们希望能够将其与 ChatGPT 对代码的语义理解相结合,生成具有更好名称和一组输入值的测试,从而实现良好的代码覆盖率并包括真实情况的边界条件值。

  • 生成正向、负向和安全 API 测试场景。 Parasoft SOAtest 中的API 测试生成器在根据记录的流量创建功能 API 测试场景方面做得非常出色。但它的能力受到限制,只能针对其所看到的流量创建场景。通过利用 ChatGPT,我们希望生成 API 测试场景,以各种不同的方式(包括预期的和意外的)运行 OpenAPI 定义中包含的端点。

ChatGPT 和软件测试自动化的优势

  • 验证并确认生成的代码。团队必须使用软件测试自动化工具通过静态分析来分析ChatGPT生成的代码,并使用测试工具进行测试。生成的代码应该像任何其他开发的代码一样对待,甚至更仔细,以确保它满足项目的质量和安全目标。

  • 遵守编码标准。Parasoft 静态分析等解决方案可以确保 ChatGPT 生成的代码符合编码标准和最佳实践。他们可以根据预定义的规则和指南检查代码并标记任何违规行为。

  • 提高安全性。ChatGPT 生成的代码的安全性未知,并且漏洞和相关的软件缺陷可能隐藏在格式良好的输出中。像对待第三方或开源代码一样对待所有生成的代码。在集成到您的应用程序之前应该对其进行审查。

  • 提高生产率。 人工智能代码生成很可能成为一项重要的创新,有可能大幅提高生产力。例如,Parasoft 的单元测试生成技术具有高度可扩展性,可用于批量创建测试用例。此外,利用生成式人工智能的软件测试工具功能的改进带来了更多好处。这才是真正的双赢。

图片

总结

团队可以通过使用由生成式人工智能技术增强的软件测试自动化解决方案来提高测试质量,并最大限度地减少设计和运行测试所涉及的手动工作。在不久的将来,Parasoft 预计将发布其平台的增强功能,使用 ChatGPT 来帮助用户提高静态分析、单元测试和 API 测试的精度和有效性,这最终将更好地验证 ChatGPT 生成的和人工编写的代码。

为了最大化ChatGPT带来的好处,验证 ChatGPT 生成的代码并将其视为新开发的代码非常重要。Parasoft 等软件测试自动化工具可以帮助 ChatGPT 成为更加有用的开发工具,同时降低风险并提高生产力。

图片

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

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

相关文章

「预告」飞凌嵌入式邀您相约第13届配电技术应用论坛

2023年8月3日~5日,第十三届配电技术应用论坛即将在浙江杭州举行,飞凌嵌入式受邀参加。 作为助力快速实现“双碳”目标和新型电力系统建设,加强“双碳”目标下的智能配电网技术研发布局的主要会议,第十三届配电技术应用论坛将从政…

FPGA开发:按键消抖

按键是FPGA开发板上的重要交互元件,因为按键的内部的结构设计,在按下和松开按键时,按键会无法避免地产生机械抖动,因此要对按键输入进行特殊处理,否则可能会因为机械抖动产生意外的重复触发。 按键消抖有很多方法&…

C++设计模式之模板方法、策略模式、观察者模式

面向对象设计模式是”好的面向对象设计“,所谓”好的面向对象设计“指的是可以满足”应对变化,提高复用“的设计。 现代软件设计的特征是”需求的频繁变化“。设计模式的要点是”寻求变化点,然后在变化点处应用设计模式,从而更好地…

我的2023上半年总结

Hi~C站的小伙伴们好久不见哇!釉色终于回到C站,开始要输出了!这一篇文章是我的2023上半年的总结,以此,致敬那段迷茫但又不曾被辜负的时光。 文章目录 总括——你愿意花五分钟时间读读我的文章吗学习——制定目标&#…

【Matlab】基于粒子群优化算法优化BP神经网络的时间序列预测(Excel可直接替换数据)

【Matlab】基于粒子群优化算法优化BP神经网络的时间序列预测(Excel可直接替换数据) 1.模型原理2.数学公式3.文件结构4.Excel数据5.分块代码5.1 fun.m5.2 main.m 6.完整代码6.1 fun.m6.2 main.m 7.运行结果 1.模型原理 基于粒子群优化算法(Pa…

nsq整体架构及各个部件作用详解

文章目录 前言 nsq的整体架构图 部件:nsqd 部件:nsqlookupd 部件:nsq连接库 部件:nsqadmin 前言 上两篇博客 centos环境搭建nsq单点_YZF_Kevin的博客-CSDN博客 linux环境搭建nsq集群_YZF_Kevin的博客-CSDN博客 我们讲了nsq是…

桥梁安全监测系统中数据采集上传用 什么?

背景 2023年7月6日凌晨时分,G5012恩广高速达万段230公里加80米处6号大桥部分桥面发生垮塌,导致造成2车受损后自燃,3人受轻伤。目前,四川省公安厅交通警察总队高速公路五支队十四大队民警已对现场进行双向管制。 作为世界第一桥梁…

Hadoop 之 Spark 配置与使用(五)

Hadoop 之 Spark 配置与使用 一.Spark 配置1.Spark 下载2.单机测试环境配置3.集群配置 二.Java 访问 Spark1.Pom 依赖2.测试代码1.计算 π 三.Spark 配置 Hadoop1.配置 Hadoop2.测试代码1.统计字符数 一.Spark 配置 环境说明环境版本AnolisAnolis OS release 8.6Jdkjava versi…

mac使用mvn下载node-sass 会Binary download failed, trying source

m1 上使用nvm 以下node的版本可以直接下载(Binary download,而不是 trying source)而不用切换mac cpu架构 zhiwenwenzhiwenwendeMBP cockpit % nvm install 14.15.5 Downloading and installing node v14.15.5... Downloading https://node…

Windows环境下git客户端中的git-bash和MinGW64

我们在 Windows10 操作系统下,安装了 git 客户端之后,可以通过 git-bash.exe 打开一个 shell: 执行一些 linux 系统里的命令: 注意到上图紫色的 MINGW64. Mingw-w64 是原始 mingw.org 项目的改进版,旨在支持 Window…

SpringCloud学习路线(12)——分布式搜索ElasticSeach数据聚合、自动补全、数据同步

一、数据聚合 聚合(aggregations): 实现对文档数据的统计、分析、运算。 (一)聚合的常见种类 桶(Bucket)聚合: 用来做文档分组。 TermAggregation: 按照文档字段值分组…

Flutter Windows通过嵌入Native窗口实现渲染视频

Flutter视频渲染系列 第一章 Android使用Texture渲染视频 第二章 Windows使用Texture渲染视频 第三章 Linux使用Texture渲染视频 第四章 全平台FFICustomPainter渲染视频 第五章 Windows使用Native窗口渲染视频(本章) 文章目录 Flutter视频渲染系列前言…

文心一言大模型测评

访问地址 文心一言服务请求地址:文心千帆大模型 (baidu.com) 新手可以先实名认证后再申请使用 测评 普通对话 这里先和他进行简单的问题讨论 编程相关 询问他有关代码的内容 确实可以生成代码,但不像chatgpt那样提供复制按钮 我们接下来让他生成…

LeetCode45.Jump-Game-II<跳跃游戏II>

题目: 思路: 从上次大神那里获得的灵感 这题问的是次数,那么我们需要确保 1,能否跳到终点 2,得到次数. 第一次条获得的是nums[0],那么第一个数就是我们第一次能跳跃的范围.每次在范围里获得最大值.并且次数加一.然后进入下一次范围;即可得到次数; 代码…

明晚直播:可重构计算芯片的AI创新应用分享!

大模型技术的不断升级及应用落地,正在推动人工智能技术发展进入新的阶段,而智能化快速增长和发展的市场对芯片提出了更高的要求:高算力、高性能、灵活性、安全性。可重构计算区别于传统CPU、GPU,以指令驱动的串行执行方式&#xf…

论文解读|Struck算法:基于结构化输出预测的自适应视觉目标跟踪框架

原创 | 文 BFT机器人 01 背景 本文的背景是关于自适应视觉目标跟踪的研究。在传统的跟踪方法中,通常采用基于检测的方式,即尝试学习一个分类器来区分目标对象和其周围的背景。然而,这种方法存在一些问题,例如需要手动选择特征和参…

深度神经网络基础——深度学习神经网络基础 Tensorflow在深度学习的应用

目录 一、二、Tesnsflow入门 & 环境配置 & 认识Tensorflow三、线程与队列与IO操作神经网络基础知识1.简单神经网络2.卷积神经网络卷积层新的激活函数-Relu池化层(Pooling)计算 案例:Mnist手写数字图片识别卷积网络案例 一、二、Tesnsflow入门 & 环境配置…

SQL AND OR 运算符

AND & OR 运算符用于基于一个以上的条件对记录进行过滤。 如果第一个条件和第二个条件都成立,则 AND 运算符显示一条记录。 如果第一个条件和第二个条件中只要有一个成立,则 OR 运算符显示一条记录。 下面是选自 "students" 表的数据&a…

java 支持jsonschema

入参校验产品化 schema_xsd可视化编辑器_个人渣记录仅为自己搜索用的博客-CSDN博客 jsonchema的生成 支持v4的jackson-jsonSchema GitHub - mbknor/mbknor-jackson-jsonSchema: Generate JSON Schema with Polymorphism using Jackson annotations jackson-module-jsonSchema …

阿里云NVIDIA A100 GPU云服务器性能详解及租用费用

阿里云GPU服务器租用费用表包括包年包月、一个小时收费以及学生GPU服务器租用费用,阿里云GPU计算卡包括NVIDIA V100计算卡、T4计算卡、A10计算卡和A100计算卡,GPU云服务器gn6i可享受3折,阿里云百科分享阿里云GPU服务器租用表、GPU一个小时多少…