将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 成为更加有用的开发工具,同时降低风险并提高生产力。

图片

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

迁移学习、微调、计算机视觉理论(第十一次组会ppt)

@TOC 数据增广 迁移学习 微调 目标检测和边界框 区域卷积神经网络R—CNN

Kafka-配置Kerberos安全认证(JDK8、JDK11)

一、相关配置 1、JAAS 配置文件 KafkaClient {com.sun.security.auth.module.Krb5LoginModule requireduseKeyTabtruestoreKeytrueserviceName"kafka"keyTab"D:/code/demo/conf/kafka.service.keytab"principal"kafka/hdp-1"; }; 2、keytab 文…

3d软件动物生活习性仿真互动教学有哪些优势

软体动物是一类广泛存在于海洋和淡水环境中的生物,其独特的形态和生活习性给学生带来了新奇和有趣的学习主题,为了方便相关专业学科日常授课教学,web3d开发公司深圳华锐视点基于真实的软体动物,制作软体动物3D虚拟展示系统&#x…

在CSDN学Golang云原生(Kubernetes声明式资源管理Kustomize)

一,生成资源 在 Kubernetes 中,我们可以通过 YAML 或 JSON 文件来定义和创建各种资源对象,例如 Pod、Service、Deployment 等。下面是一个简单的 YAML 文件示例,用于创建一个 Nginx Pod: apiVersion: v1 kind: Pod m…

瓦瑟斯坦距离、收缩映射和现代RL理论

Wasserstein Distance, Contraction Mapping, and Modern RL Theory | by Kowshik chilamkurthy | Medium 一、说明 数学家们在考虑一些应用的情况下探索的概念和关系 - 几十年后成为他们最初从未想象过的问题的意想不到的解决方案。 黎曼的几何学只是出于纯粹的原因才被发现的…

动静态网页、Django创建表关系、Django框架的请求生命周期流程图

一、request对象的几个方法 在视图函数中写方法的时候,都会有一个形参requestdef index(request):passrequest.method # GET POST request.GET.get() # 它获取最后一个元素值 request.GET.getlist() # 获取到所有的request.POST.get() # 它获取最后一个元素值 req…

哈工大计算机网络课程局域网详解之:无线局域网

哈工大计算机网络课程局域网详解之:无线局域网 文章目录 哈工大计算机网络课程局域网详解之:无线局域网IEEE 802.11无线局域网802.11体系结构802.11:信道与AP关联 本节介绍一下平时经常使用的一个无线局域网技术,也就是通常我们使…

Vue2基础五、工程化开发

零、文章目录 Vue2基础五、工程化开发 1、工程化开发和脚手架 (1)开发 Vue 的两种方式 核心包传统开发模式:基于 html / css / js 文件,直接引入核心包,开发 Vue。工程化开发模式:基于构建工具&#xf…

CSS Flex 笔记

1. Flexbox 术语 Flex 容器可以是<div> 等&#xff0c;对其设置属性&#xff1a;display: flex, justify-content 是沿主轴方向调整元素&#xff0c;align-items 是沿交叉轴对齐元素。 2. Cheatsheet 2.1 设置 Flex 容器&#xff0c;加粗的属性为默认值 2.1.1 align-it…

Windows 找不到文件‘chrome‘。请确定文件名是否正确后,再试一次

爱像时间&#xff0c;永恒不变而又短暂&#xff1b;爱像流水&#xff0c;浩瀚壮阔却又普普通通。 Windows 找不到文件chrome。请确定文件名是否正确后&#xff0c;再试一次 如果 Windows 提示找不到文件 "chrome"&#xff0c;可能是由于以下几种原因导致的&#xff1…

Unity下如何实现低延迟的全景RTMP|RTSP流渲染

技术背景 Unity3D可以用于创建各种类型的的应用程序&#xff0c;包括虚拟现实、培训模拟器等。以下是一些可以使用Unity3D全景播放的场景&#xff1a; 虚拟现实体验&#xff1a;全景视频可以用来创建逼真的虚拟环境&#xff0c;使用户能够感受到身临其境的感觉&#xff1b;培…

LeetCode|backtracking|review:40. 131. 93. 47. 332. | 37. Sudoku Solver

复习&#xff1a; 40. Combination Sum II [1,1,2,3]中&#xff0c;答案里有[1,1,2], 但是不能有两个[1,2,3] 131. Palindrome Partitioning 每个for都是在给定的start之后找一个palindrome。当start 93. Restore IP Addresses forloop每次loop都是在给定的start的后三个数…

干货 | 5个经典的模拟电路解析,电子人必看!

干货 | 5个经典的模拟电路解析&#xff0c;电子人必看&#xff01; 作为一个电子人&#xff0c;我们平时需要和不同的电路接触&#xff0c;但有一些电路图是经典的&#xff0c;值得我们永远记住。一、自举电路 此电路用在各种ADC之前的采样电路&#xff0c;可以让ADC实现轨到轨…

给APK签名—两种方式(flutter android 安装包)

前提&#xff1a;给未签名的apk签名&#xff0c;可以先检查下apk有没有签名 通过命令行查看&#xff1a;打开终端或命令行界面&#xff0c;导入包含APK文件的目录&#xff0c;并执行以下命令&#xff1a; keytool -printcert -jarfile your_app.apk 将 your_app.apk替换为要检查…

《2023中国开发者调查报告》探索2023中国开发者的技术创新与挑战:AIoT、云原生、国产数据库等领域的发展与前景

&#x1f337;&#x1f341; 博主猫头虎 带您 Go to New World.✨&#x1f341; &#x1f984; 博客首页——猫头虎的博客&#x1f390; &#x1f433;《面试题大全专栏》 文章图文并茂&#x1f995;生动形象&#x1f996;简单易学&#xff01;欢迎大家来踩踩~&#x1f33a; &a…

[论文阅读笔记24]Social-STGCNN: A Social Spatio-Temporal GCNN for Human Traj. Pred.

论文: 论文地址 代码: 代码地址 作者在这篇文章中直接用GNN对目标的轨迹时空特征进行建模, 并用时序CNN进行预测, 代替了训练难度较大和速度较慢的RNN类方法. 0. Abstract 行人轨迹预测是一个比较有挑战性的任务, 有着许多的应用. 一个行人的轨迹不仅是由自己决定的, 而且受…

[JavaScript游戏开发] 绘制冰宫宝藏地图、人物鼠标点击移动、障碍检测

系列文章目录 第一章 2D二维地图绘制、人物移动、障碍检测 第二章 跟随人物二维动态地图绘制、自动寻径、小地图显示(人物红点显示) 第三章 绘制冰宫宝藏地图、人物鼠标点击移动、障碍检测 文章目录 系列文章目录前言一、本章节效果图二、介绍2.1、准备地图素材2.2、封装地图上…

前端食堂技术周刊第 91 期:2023 npm 状态、TC39 会议回顾、浏览器中的 Sass、React 18 如何提高应用程序性能

美味值&#xff1a;&#x1f31f;&#x1f31f;&#x1f31f;&#x1f31f;&#x1f31f; 口味&#xff1a;茶椰生花 食堂技术周刊仓库地址&#xff1a;https://github.com/Geekhyt/weekly 大家好&#xff0c;我是童欧巴。欢迎来到前端食堂技术周刊&#xff0c;我们先来看下…

Spring核心概念、IoC和DI的认识、Spring中bean的配置及实例化、bean的生命周期

初始Spring 一、Spring核心概念1.1IoC(Inversion of Contral)&#xff1a;控制反转1.2IoC代码实现1.2DI代码实现 二、bean的相关操作2.1bean的配置2.1.1bean的基础配置2.1.2bean的别名配置2.1.3bean的作用范围配置 2.2bean的实例化 - - 构造方法2.3bean的实例化 - - 实例工厂与…

【软件测试】webdriver常用API演示(Java+IDEA+chrome浏览器)

1.元素定位方法 对象的定位应该是自动化测试的核心&#xff0c;要想操作一个对象&#xff0c;首先应该识别这个对象。一个对象就是一个人一样&#xff0c;他会有各种的特征&#xff08;属性&#xff09;&#xff0c;如比我们可以通过一个人的身份证号&#xff0c;姓名&#xf…